我有一个固定大小的整数指针数组,我只想在需要时从堆中分配,但我似乎无法使以下的NULL检查工作。 malloc永远不会先被调用。
int* seqList[n];
for (int i = 0; i < q; i++) {
int type, x, y;
scanf("%d", &type);
scanf("%d", &x);
scanf("%d", &y);
if (type == 1) {
if (seqList[x] != NULL) {
int size = sizeof(seqList[x])/sizeof(int*);
seqList[x] = realloc(seqList[x], (size + 1)*sizeof(int*));
seqList[x][size] = y;
}
else {
seqList[x] = malloc(sizeof(int*));
}
}
else{
...
}
}
答案 0 :(得分:1)
谢谢,BLUEPIXY和AnT。似乎没有任何其他解决方案,但是如上所述初始化数组here
for (i = 0; i < n; i++)
seqList[i] = NULL;
答案 1 :(得分:-1)
你必须将它初始化为'NULL'以NULL检查指针数组。
int* seqList[n] = {NULL};
或
for ( i =0 ; i < n ; i++)
seqList[i] = NULL;