面試的時候遇到這麼一道題,malloc分配0個位元組過後的記憶體情況?
我回來用gcc測試了一下,以供參考:
1 #include
2 #include
3 int main()
4 [root@localhost on]# gcc -o malloct malloct.c
[root@localhost on]# ./malloct
sizeof(a) = 0
a = 0xbfeda4d0
present p = (nil)
sizeof(p) = 4
sizeof(*p) = 4
current p = 0x85da008
總結:malloc過後分配了0個位元組的空間,但是存在這樣一樣指標p,具體這個指標指向**?我就不得而知了,也許上帝知道答案吧。
有其他的見解,歡迎討論。。。
malloc函式申請0位元組的問題
無意中看到這個問題。malloc函式若申請0位元組,它返回的將會是什麼?會不會仍然是null?在c語言深度剖析上看到這樣的解釋 申請0位元組的記憶體,函式並不返回null,而是返回乙個正常的記憶體位址。但是你卻無法使用這塊大小為0的記憶體,將此比喻成尺子上的某個刻度,說刻度本身並沒有長度,只有某兩個...
如何尋回可用空間0位元組硬碟的資料
磁碟打不開可用空間0位元組,是因為這個i盤的檔案系統內部結構損壞導致的。要恢復裡面的資料就必須要注意,這個盤不能格式化,否則資料會進一步損壞。具體的恢復方法看正文 工具 軟體 星空資料恢復軟體 步驟2 軟體執行後,直接雙擊需要恢復資料的盤 步驟3 程式會很快將找到的檔案,放到與要恢復盤同名的目錄中 ...
malloc分配空間的問題
include h include h int main memset p,0,sizeof p 使陣列中的每個值首先都為0 p 0 0 1 sum 1 x 0 y 0 while sum 按照蛇形賦值 printf 輸出n階矩陣 n for i 0 iprintf n goto loop retu...