C++ strcpy

voidTest(void){char*str=NULL;strcpy(str,“helloworld”);printf(str);}为什么出错啊str为什么不能是NUL... void Test(void)
{
char *str = NULL;
strcpy(str, “hello world”);
printf(str);
}
为什么出错啊 str为什么不能是NULL
展开
 我来答
L_o_o_n_i_e
2010-04-13 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5234万
展开全部
char *str; 是指针,你未让它指向某char 数组,也未给它分配字符串存放单元。所以不能使用。

小程序:
char *str; // 不初始化为 NULL
strcpy(str, “hello world”);
printf(str);
可以正确运行。程序大了就不一定能行。

这样可以:
char s[20];
char *str=NULL;
str =s; // 让它指向s
strcpy(str, "hello world");
printf(str);

这样可以:
char *str=NULL;
str = (char *) malloc(20); // 分配单元
strcpy(str, "hello world");
printf(str);
zhangteng627
2010-04-13 · TA获得超过1095个赞
知道小有建树答主
回答量:1923
采纳率:0%
帮助的人:1467万
展开全部
str被你弄成了空,你能把字符串放到一个没有地址的地方?

你得定义一个字符串数组。当然这个数组就是个指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
真孤078
2010-04-16 · 超过16用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:38.2万
展开全部
应该不是这个问题吧,“hello world“是一个字符串,而你定义的str是一个字符变量,你应该定义成string str才行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式