Realloc - 分配时不兼容的类型

时间:2014-11-27 21:35:36

标签: c

是否可以重新分配如下定义的变量:char string[128]? 我有一段这样的代码:

...
count = strlen(string);
if ((string = realloc(string, (count + 2) * sizeof(char))) == NULL) {
    ...
}
...

和编译器说:"从类型'void *'"中分配类型'char [128]'时不兼容的类型。类似的操作适用于定义char *string

2 个答案:

答案 0 :(得分:3)

char string[128];定义了一个静态大小的char数组。没有必要为它分配内存,但另一方面,没有办法调整内存部分的大小。

要使用动态大小的数组,请在完成后使用char *string; string = malloc(128)string = realloc(string, newsize)free(string)

答案 1 :(得分:0)

char string[128];分配空间,因此string不是真正的指针。

如果你的字符串定义如下,它将起作用:char *string;

相关问题