使用 malloc 时如何更改其他函数中的字符串?
in main:
char *myString;
changeString(myString);
changeString(char *myString){
myString = malloc((size) * sizeof(char));
myString[1] = 'a';
}
谢谢
最佳答案
C 中的参数是按值传递的。因此,要修改函数中的变量,您必须将指针传递给它。例如,int *
到 int
,以及 char **
到 char *
。
void changeString(char **myString){
// free(*myString); // add when myString is allocated using malloc()
*myString = malloc(2);
(*myString)[0] = 'a';
(*myString)[1] = '\0';
}
关于在其他函数中使用 malloc 更改字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36824117/