我有这样的
我的结构看起来像这个
typedef struct something
{
int randomData;
int **array;
}SOMETHING;
阵列已分配
SOMETHING *ANYTHING= calloc(sizeof(SOMETHING),sizeof(int));
ANYTHING->array = calloc(someSizeParamater,sizeof(SOMETHING));
int key = 5;
在一个代码中,我希望在array[index]
中这样做,我放入了一些int值:
ANYTHING->array[index]=key;
但它说,如果出现错误,你知道如何解决这个问题吗?编译器自己重新键入它,但我想知道如何正确地将值分配给struct。
一旦我做了ANYTHING->array[0][index] = key;
程序崩溃,无法正常工作,因为它在给定的警告下工作。
array
类型为int**
,它是一个指针(即指向另一个指针,指向指向指向int
的指针(。
[]
运算符取消引用(一次(。
因此,执行array[...]
会评估array
指向的内容,也就是上面提到的int*
,您的代码试图在此处为其分配一个int
:
ANYTHING->array[index]=key;
您绝不会想将int
分配给int*
,分配给指向int
的指针。