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”;