在不同函数中分配的 realloc 指针

Realloc pointer that is malloced in different function

我有这个功能:

static void unfoldLines(char **pbuff, char **lines, int foldCount) {
    int i, j;

    for(i = 1; i <= foldCount; i++) {
        removeEOL(lines[i]);
        for(j = 0; j < strlen(lines[i]); j++) {
            while(isspace(lines[i][j])) {
                lines[i]++;
            }
        }
    }

    lines[1] = realloc(lines[1], sizeof(char) * (strlen(lines[1]) +
                strlen(lines[2]) + 1));
    exit(0);
}

lines 并且它的指针已在先前的函数中分配。当我尝试重新分配行 [1] 时,出现此错误:

malloc: *** error for object 0x7fcec0404fe1: pointer being realloc'd was not allocated

我知道它已经分配了,为什么不能在这个函数中重新分配它?

lines[1] 在 for-loop 中递增。您应该保留从 malloc() 编辑的 return 的原始指针,并将它们与 realloc().

一起使用

此外,realloc() 可能会失败,因此您应该将 realloc() 的 return 值存储在一个临时指针中,只有在成功时才将其传输到原始指针。