gpt4 book ai didi

c++将char数组传递给函数并更改它

转载 作者:太空狗 更新时间:2023-10-29 20:26:48 26 4
gpt4 key购买 nike

我尝试做一个可以改变指定字符数组内容的函数

void change_array(char *target)
{
target="hi";
}

int main()
{
char *a[2];
change_array(a[1]);
cout<<*(a[1]);
}

但是 a[1] 的内容停留在 0x0(void)

最佳答案

首先,您的函数有传递给它的指针的拷贝,因此在调用方看不到任何效果。如果要修改函数参数,传递一个引用:

void change_array(char*& target) { ... }
// ^

其次,您不能/不应该将非常量指针绑定(bind)到字符串文字。请改用 const char*

void change_array(const char*& target) { ... }
// ^^^^^ ^

int main()
{
const char* a[2];
change_array(a[1]);
cout<<*(a[1]);
}

关于c++将char数组传递给函数并更改它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com