【发布时间】:2016-04-24 14:02:59
【问题描述】:
当我使用 malloc 时如何更改其他函数中的字符串?
in main:
char *myString;
changeString(myString);
changeString(char *myString){
myString = malloc((size) * sizeof(char));
myString[1] = 'a';
}
谢谢
【问题讨论】:
-
但是我应该如何改变函数内部的指针,因为我试过了,它没有用..
-
我不想退货
-
我在互联网上搜索过这个,但它不起作用或没有直接描述..
-
您的函数在一块全新的内存上运行,该内存分配并存储在局部变量
myString中。这对调用者的字符串没有影响。此外,它会造成内存泄漏。对新分配内存的唯一引用是myString局部变量,该变量在函数终止时消失。对此有很多疑问:为什么在 C 函数中修改变量对调用者的变量没有影响。