函数返回值失效
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#if 1
char* getMen2() {char buf[64]; //臨時變量,棧區存放strcpy(buf, "abccddeeff");printf("buf:%s\n", buf);return buf; //此處并不是把內存塊64個字節return,而是把內存塊的首地址返回給tmp
}
char* getMen1(num) {char* p;p = (char *)malloc(sizeof(char)*num); //全局變量,程序結束時,操作系統釋放內存strcpy(p, "abccddeeff");return p;
}
void main()
{char* tmp = NULL;tmp = getMen2();printf("tmp:%s\n", tmp); //空間已經被釋放。輸出亂碼char* tmp1 = NULL;tmp1 = getMen1(10);printf("tmp1:%s\n", tmp1);
}
#endif
總結
- 上一篇: java基础代码实例_基础篇:详解JAV
- 下一篇: win7 vs2015配置qt5.11