gpt4 book ai didi

c - 在 C 中通过引用传递 char 数组

转载 作者:太空狗 更新时间:2023-10-29 15:49:12 24 4
gpt4 key购买 nike

嗨,我真的无法理解这个问题。我基本上是想通过将输出数组作为参数传入来从函数返回一个 char 数组。这是我目前所拥有的:

函数:

int GetComputerName(char *name, char *ip_address){
*name = "testing";
return 0;
}

并调用它:

char comp_name[50];
GetComputerName(&comp_name, serverIP);
printf("\n\n name: %s\n\n", comp_name);

我已经尝试切换和交换 * 和 & 以查看什么会起作用,并且已经阅读了指针和其他内容,但我认为应该发生的事情和实际发生的事情是两件截然不同的事情,现在我想我很困惑我自己比我开始时更多!哈哈

谁能帮我解释一下正确的做法是什么?!

提前致谢 =)

最佳答案

这一行:

*name = "testing"; 

无效,因为您将指向“testing”的指针分配给了名称指向的 char。您需要将数据复制到缓冲区中。应该是:

int GetComputerName(char *name, char *ip_address){
strcpy(name,"testing");
return 0;
}

甚至更好(避免溢出):

int GetComputerName(char *name, size_t buff_len, char *ip_address){
strncpy(name,"testing", buff_len);
name[buff_len - 1] = '\0';
return 0;
}

并称它为:

GetComputerName(comp_name, sizeof(comp_name), serverIP);

关于c - 在 C 中通过引用传递 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10468573/

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