【发布时间】:2011-09-17 06:08:34
【问题描述】:
当我们运行这段代码时,它运行正常,并在屏幕上打印string constant:
char *someFun(){
char *temp = "string constant";
return temp;
}
int main(){
puts(someFun());
}
但是当我们运行下面类似的代码时,它不会工作并且会在屏幕上打印一些垃圾:
char *someFun1(){
char temp[ ] = "string";
return temp;
}
int main(){
puts(someFun1());
}
这背后的原因是什么?本质上,这两个函数都做类似的事情(即返回一个“字符串”),但它们的行为仍然不同。这是为什么呢?
【问题讨论】:
标签: c string pointers dangling-pointer