函数中的字符常量,这段代码为什么会运行出错?

C语言 码拜 9年前 (2015-11-29) 815次浏览
f)Char* GetMemory(void){
Char p[] = “hello world”;
return 0;
}
void main(){
char* str = NULL;
str = GetMemory();
printf(“%s\n”,str);
}

这段代码的运行结果是什么?
为什么?

解决方案:5分
不确定
不要返回局部变量指针
你返回一个指向局部数组的指针,函数结束后,内存就销毁了,所以行为是不确定的
解决方案:4分
您的函数不是返回指针么,return 0是什么鬼,而且和楼上说的一样,不要返回局部指针
解决方案:13分
Char p[] = “hello world”;

以上这句代码,并不是字符串常量。
以下这句才是

Char *p = “hello world”;

其实

Char p[] = “hello world”;
等价于
Char p[12] = “hello world”;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明函数中的字符常量,这段代码为什么会运行出错?
喜欢 (0)
[1034331897@qq.com]
分享 (0)