我正在尝试使用 realloc 函数将输入字符存储在动态数组中。当我使用它而不调用 free 方法来释放使用后的内存时,一切都很好。但是当我将它与免费方法一起使用时,运行时错误就来了。这是我的代码片段。
int main(){
char *message ;
int len = 0 ;
char c ;
while((c=getchar()) != '\n'){
message = realloc(message,(len+1)*sizeof(char)) ;
message[len++] = c ;
}
message = realloc(message, (len+1)* sizeof(char));
message[len]='\0' ;
printf("Message is %s\n",message);
free(message) ;
return 0 ;
}
任何人都可以弄清楚这一点。因为我需要同时使用这两种方法.. 谢谢!!!!