我有一个固定大小的整数指针数组,仅在需要时才想从堆中分配它,但是我似乎无法使以下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;

10-04 17:06