程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 程序猿之---C語言細節22(函數返回指針注意事項(懸空指針)、查看進程可以分配的內存大小)

程序猿之---C語言細節22(函數返回指針注意事項(懸空指針)、查看進程可以分配的內存大小)

編輯:關於C語言

程序猿之---C語言細節22(函數返回指針注意事項(懸空指針)、查看進程可以分配的內存大小)


主要內容:函數返回指針注意事項<懸空指針>、查看進程可以分配的內存大小

#include  

char * favorite_fruit()
{
	static char fruit[] = "apple";  // 不加static的話這個函數還回的指針以及懸空,因為在函數退出時fruit組數被銷毀
	                                // 加了static後fruit數組分配在數據段裡,而不是堆棧中,生命期和程序一樣長,函數退出時變量
									// 依然有效 
	return fruit;
}
int main()
{
	char *a = favorite_fruit();
	printf("%s\n",a);
	
	/*
	 *	查看你的進程能分配多大內存 
	 *  總共分配的內存量取決於系統配置的 
	 */
	int MB = 0;
	
	while(malloc(1 << 10)) ++KB;  
	printf("Allocated %d KB total\n", KB);
	
	return 0;
}

輸出:


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved