在其他函数中使用 malloc 更改字符串

标签 c string pointers malloc

使用 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/

相关文章:

c - 在 linux 环境下查找 c 代码中的内存泄漏

c++ - 无法成功返回我通过在字符串上调用 c_str() 创建的 const char*。 (C++)

c - 字符串指针作为 C 中的参数?

python - 从库返回的 ctypes 结构

c - 段错误(核心转储)错误消息

ruby - 有没有办法用 %w 创建一个像字符串这样的符号数组?

c - 结构指针设置值

c++ - C argv指针类型

c - C 中的 TDD 测试。通过交换和排序测试吗?

c - 在声明中搜索我的名字!在c程序中使用字符串函数