malloc分配0位元組的空間的秘密

2021-05-27 05:55:18 字數 452 閱讀 6834

面試的時候遇到這麼一道題,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...