【发布时间】:2016-04-24 09:25:48
【问题描述】:
我有这个功能:
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
我知道它已经被分配了,为什么不能在这个函数中重新分配呢?
【问题讨论】:
-
因为它增加了指针。
-
废话!我应该 a) 不增加指针还是 b) 有办法解决这个问题吗?
-
它移动每个字符。
-
我知道增加指针会改变地址,使我能够重新分配/释放它。我增加指针以删除任何前导空格。我应该在这里做什么?
-
@MortalMan remove leading whitespaces
标签: c pointers memory malloc realloc