找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
尊貴會員無限下載附件伊莉需要你的贊助和支持搞笑、娛樂、精彩的影片讓你看
三上悠亜三上vr新竹銀魂流出
rf刀劍江湖ガキにも狩魔領主幼女交易街のssis 498

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[簡]重啟人生的千金小

✡ 斗破苍穹 年番/鬥

(10月新番)[繁]魔王20

[簡]成為名留歷史的壞

[繁]在地下城尋求邂逅

✌ 國漫【凡人修仙传
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 1498|回復: 5
打印上一主題下一主題

[作業]要如何驗證malloc(size)不會立即配置size大小的記憶體[複製鏈接]

帖子
29
積分
-9 點
潛水值
29312 米
跳轉到指定樓層
樓主
發表於 2011-12-24 01:25 AM|只看該作者|倒序瀏覽
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
不好意思  因為想了兩三天實在是不懂 所以才PO上網問問各位大大
(GNU C)

要如何驗證malloc(size)不會立即配置malloc(size)  size大小的記憶體

#include<stdio.h>
#inlcude<stdlib.h>

int main()
{
     int *p;

 p = (int*)malloc(sizeof(int));         //狀況一 作業系統尚未配置記憶體空間 僅virtual memory address...
瀏覽完整內容,請先 註冊登入會員
分享分享0收藏收藏0支持支持0

使用道具檢舉

Rank: 2Rank: 2

帖子
65
積分
231 點
潛水值
23520 米
頭香
發表於 2011-12-24 02:10 PM|只看該作者
Q: 要如何驗證malloc(size)"不會"立即配置size大小的記憶體
在下不知原PO確切的問題, 以下僅就我所知回答.
1. 根據apue p.189, 「ISO C specifies three functions for memory allocation  1. malloc, which allocates a specified number of bytes of memory. The initial value of the memory is indeterminate」, 以及「All three return: non-null pointer if OK, NULL on error」
2. 如果是檢查是否成功分配成功, 在C語言中可以使用assert(p!=NULL); 一旦失敗, 程式直接terminate, 並且說明是第幾行出錯, 可以include <assert.h>. 而在C++可以使用throw 和 catch來處理...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

  尊貴會員

大綿羊 超級大耗呆

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
802
積分
2980 點
潛水值
27720 米
3
發表於 2011-12-24 07:10 PM|只看該作者
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。
本帖最後由 Force[TW] 於 2011-12-24 07:22 PM 編輯
Q: 要如何驗證malloc(size)"不會"立即配置size大小的記憶體
在下不知原PO確切的問題, 以下僅就我所知回答. ...
aaystx 發表於 2011-12-24 02:10 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
...
瀏覽完整內容,請先 註冊登入會員
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

Rank: 2Rank: 2

帖子
65
積分
231 點
潛水值
23520 米
4
發表於 2011-12-24 10:05 PM|只看該作者
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
回復
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
Force[TW]


感謝Force[TW]的解答
那我也想知道原PO問題的答案, 還有這能夠在code裡面用如原PO那樣*p = 100這樣的statement看出來嗎?好像只能看出能不能改變indeterminate的memory而已, 如果p是NULL pointer的話, assign不會成功...
瀏覽完整內容,請先 註冊登入會員
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。

使用道具檢舉

Rank: 2Rank: 2

帖子
643
積分
967 點
潛水值
10169 米
5
發表於 2011-12-25 10:36 AM|只看該作者
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
承 aaystx 所言...
在呼叫 malloc 後 判斷 回傳值是否為 NULL
if (p==NULL)
{
   /// malloc failed.
}

又假若 malloc 失敗
在執行 *p = 100; 時
應該就會的到 segmentation fault




短信請留E-Mail or goto my space :)
http://blog.eyny.com/space.php?uid=8893386
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

ohha0221 該用戶已被刪除
6
發表於 2011-12-26 02:21 AM|只看該作者
本帖最後由 ohha0221 於 2011-12-26 02:32 AM 編輯

回復
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
frank1234206

你說的應該是指 OS的"執行時寫入" 的行為吧?
現代的OS再配置記憶體時, 不會真的馬上配一大塊記憶體出來,...
瀏覽完整內容,請先 註冊登入會員
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部