a strange problem char * print_buf(){ char c[4] = "23"; return c;}void main(){ printf("%s",print_buf());}上面的代码为什么输出的是乱码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这乱码才怪...你的c都是栈空间里面的, print_buf()都退出来了, 去运气好就不出错, 运气不好就直接报地址错误了... -----------------------------是不是函数要返回指针的内容应该这样写:-----------------------------char * print_buf(char * buf){ char c[4] = "23"; strcpy(c,buf); return buf;}void main(){ char s[4]; printf("%s",print_buf(s));}------------------------------------那为什么我这样写也可以,难道是偶然?还是字符串常量存储的问题?谢谢。char * print_buf(){ return "123";}void main(){ printf("%s",print_buf());} strcpy(c,buf);写错了,是strcpy(buf,c); "123"是全局变量。char c[4] = "23";中,c是临时变量,"23"仍然也是全局变量。这样写是可以的,你上面有问题:char * print_buf(char * buf){ char c[4] = "23"; strcpy(buff, c); return buf;}void main(){ char s[4]; printf("%s",print_buf(s));} OnSetCursor()问题求解? 请问在用BCG创建的多文档中如何创建非BCG的工具栏?? 如何实现把doc文件转成pdf文件 gzip能够加密数据吗? 关于阿拉伯版的版面编排 怎么在程序一打开的时候,combobox就会显示我编辑的字符??? vc环境下用malloc()函数如何用 为什么我的程序设断点总是提示不行,还有,为什么没有语句提示? 控制台程序认win32函数吗? 初学者的问题:我该如何下手,请高手指点 关于托盘问题.. 请教如何把背景颜色代码改成图片背景显示?
是不是函数要返回指针的内容应该这样写:
-----------------------------char * print_buf(char * buf)
{
char c[4] = "23";
strcpy(c,buf);
return buf;
}
void main()
{
char s[4];
printf("%s",print_buf(s));
}------------------------------------
那为什么我这样写也可以,难道是偶然?还是字符串常量存储的问题?谢谢。char * print_buf()
{
return "123";
}
void main()
{
printf("%s",print_buf());
}
是全局变量。char c[4] = "23";
中,c是临时变量,"23"仍然也是全局变量。这样写是可以的,你上面有问题:
char * print_buf(char * buf)
{
char c[4] = "23";
strcpy(buff, c);
return buf;
}
void main()
{
char s[4];
printf("%s",print_buf(s));
}