关于strcpy的问题
#include <iostream>#include <string.h>
union ID
{
char id_char;
long id_num;
};
int main()
{
ID id_val;
strcpy(id_val.id_char, "zyl");
std::cout << "ID1 is " << id_val.id_char << "\n";
id_val.id_num = 19911103;
std::cout << "ID2 is " << id_val.id_num << "\n";
return 0;
}
这段程序运行后出错,显示error C2664: 'strcpy' : cannot convert parameter 1 from 'char' to 'char *'
这是怎么回事,应该怎么改??? char是一个字符,不是字符串,
要改成字符串的话,应该申明成
char id_char,不够再加长 Croper 发表于 2019-2-25 21:45
char是一个字符,不是字符串,
要改成字符串的话,应该申明成
char id_char,不够再加长
还是不对,还是显示cannot convert parameter 1 from 'char' to 'char *' 你这是没保存吧,我这儿是没问题的,
把你改过的代码贴上来 union ID
{
char* id_char;
long id_num;
};
改成这样 灰色的天空 发表于 2019-2-26 19:42
改成这样
是不是没有分配空间? 本帖最后由 灰色的天空 于 2019-2-27 15:34 编辑
ALifeTime 发表于 2019-2-27 10:22
是不是没有分配空间?
额,忘记分配空间了,我
再把strcpy()那一句变成id_val.id_char="zdd";这样就不用再手动分配空间了,系统就自动会分配空间在栈上。 string copy 用的时候要指针类型!
因为他是把一个短数组的地址copy到另一个长数组!
页:
[1]