C语言练习题1
char *getmemory(void)
{
char p[] = “hello world”;
return p;
}
void test(void)
{
char *str = NULL;
str = getmemory();
printf(“%s\n”,str);???
}
請問運(yùn)行Test會有什么樣的結(jié)果?
A.?出錯
B.?輸出“hello world”
C.?輸出空“”
D.?輸出亂碼
解析:char p[]創(chuàng)建空間在??臻g上,函數(shù)返回就則釋放。因而srt指向的內(nèi)存已經(jīng)釋放
char *p ?= “abcd”; abcd是存儲在靜態(tài)數(shù)據(jù)區(qū),函數(shù)返回不會釋放。
char *p = (char *)malloc(10 * sizeof(char));創(chuàng)建空間在堆空間,程序員不釋放則不會釋放。
總結(jié)
- 上一篇: 网络OSI和TCP/IP参考模型
- 下一篇: typedef 函数指针的用法