我需要在数组中保留链表的数量。我已经遵循了类似的问题,但对实现感到困惑,无法正确分配数组。我调试,发现并简化了我的问题:数组的大小始终为1
,而不是N
。结果,我在尝试使用节点时遇到了分段错误。简化代码:
typedef struct Node {
int data;
struct Node *next;
} node;
int main(int argc, char** argv)
{
node **array;
int N = 5;
array = (node **)calloc(N,sizeof(node*));
printf("Size of array = %d", sizeof(array)/sizeof(array[0]));
return 0;
}
输出是:
Size of array = 1
当我将数组的静态大小用作node *array[5]
时,输出为:
Size of array = 5
感谢您的建议。