gpt4 book ai didi

c++通过参数将值传递给char数组

转载 作者:行者123 更新时间:2023-11-30 02:02:09 26 4
gpt4 key购买 nike

class Link{       
char name[];
Link *next;
};

Link::Link(char pname[]){
next=NULL;
name[]=pname;
};

Link 类中为 name[] 创建对象时,如何分配传递的值 (pname)?

最佳答案

通常,您会使用 std::string 来存储字符串:

class Link{       
std::string name;
Link *next;
};

Link::Link(char const pname[]) : next(NULL), name(pname) {}

如果您有充分的理由嵌入一个字符数组而不是让标准字符串类为您处理内存分配,那么您需要像这样的东西:

class Link{       
char name[I_HOPE_THIS_IS_BIG_ENOUGH];
Link *next;
};

Link::Link(char const pname[]) : next(NULL) {
name[sizeof name - 1] = 0;
std::strncpy(name, pname, sizeof name);
if (name[sizeof name - 1] != 0) {
throw std::runtime_error("Whoops! My buffer was too small.");
}
}

关于c++通过参数将值传递给char数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13533142/

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