您的位置:首页 > 编程语言 > C语言/C++

C语言练习题1

2016-12-13 22:25 232 查看
char *getmemory(void)

{

char p[] = “hello world”;

return p;

}

void test(void)

{

char *str = NULL;

str = getmemory();

printf(“%s\n”,str);   

}

请问运行Test会有什么样的结果?

A. 出错

B. 输出“hello world”

C. 输出空“”

D. 输出乱码

解析:char p[]创建空间在栈空间上,函数返回就则释放。因而srt指向的内存已经释放

char *p  = “abcd”; abcd是存储在静态数据区,函数返回不会释放。

char *p = (char *)malloc(10 * sizeof(char));创建空间在堆空间,程序员不释放则不会释放。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: