我有一个固定大小的整数指针数组,仅在需要时才想从堆中分配它,但是我似乎无法使以下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{
...
}
}
最佳答案
谢谢,BLUEPIXY和AnT。似乎没有其他解决方案,而是按照here所述初始化数组
for (i = 0; i < n; i++)
seqList[i] = NULL;