函数-C内部的动态realloc



我似乎在函数内部重新分配数组内存时遇到了问题。每当代码到达realloc时,它就会由于Segmentation错误而关闭。

我主要调用malloc:

char* coded_message = (char*) malloc(BASE_LENGTH * sizeof(char));
read_input(&coded_message, &original_message, &char_counter);

然后将其传递给一个函数,该函数正在读取输入,如果需要,则重新分配内存。所以我的功能是这样的:

int read_input(char** coded_message){
...
*coded_message = (char*) realloc(*coded_message, (counter + REALLOC_LENGTH) * sizeof(char));
...
}

C使用传递值。函数参数是按值传递给被调用函数的,因此对参数所做的任何更改都不会反射回调用方

在这种情况下,从函数read_input(),对original_message的赋值(realloc()的返回值(将不会反映回调用方main()

换句话说,您可以更改read_input指向的内容,可以更改,但read_input本身不能更改。如果要更改指针本身,则需要将指针传递给该指针。

相关内容

  • 没有找到相关文章

最新更新