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

伊莉討論區

搜索
發表文章前請先閱讀相關版規尊貴會員無限看帖不用回覆認識好友、聊天,分享生活趣事
rionoffice上原亞衣fc2催眠旬果
千戀萬花變身器初恋ショ夜店夏のナン负面情绪異形病棟

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

[繁]戰國妖狐20-

hololive English 2nd

[繁]曾經、魔法少女和

[簡]全職高手 第三季1

[繁]身為VTuber的我因

[繁]神之塔 第二季07-
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 1493|回復: 5
打印上一主題下一主題

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

帖子
29
積分
-9 點
潛水值
29282 米
跳轉到指定樓層
樓主
發表於 2011-12-24 01:25 AM|只看該作者|倒序瀏覽
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
不好意思  因為想了兩三天實在是不懂 所以才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
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

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來處理...
瀏覽完整內容,請先 註冊登入會員
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

  尊貴會員

大綿羊 超級大耗呆

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

帖子
802
積分
2980 點
潛水值
27720 米
3
發表於 2011-12-24 07:10 PM|只看該作者
本帖最後由 Force[TW] 於 2011-12-24 07:22 PM 編輯
Q: 要如何驗證malloc(size)"不會"立即配置size大小的記憶體
在下不知原PO確切的問題, 以下僅就我所知回答. ...
aaystx 發表於 2011-12-24 02:10 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
...
瀏覽完整內容,請先 註冊登入會員
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

Rank: 2Rank: 2

帖子
65
積分
231 點
潛水值
23520 米
4
發表於 2011-12-24 10:05 PM|只看該作者
回復
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
Force[TW]


感謝Force[TW]的解答
那我也想知道原PO問題的答案, 還有這能夠在code裡面用如原PO那樣*p = 100這樣的statement看出來嗎?好像只能看出能不能改變indeterminate的memory而已, 如果p是NULL pointer的話, assign不會成功...
瀏覽完整內容,請先 註冊登入會員
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

Rank: 2Rank: 2

帖子
643
積分
967 點
潛水值
10169 米
5
發表於 2011-12-25 10:36 AM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
承 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

使用道具檢舉

ohha0221 該用戶已被刪除
6
發表於 2011-12-26 02:21 AM|只看該作者
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
本帖最後由 ohha0221 於 2011-12-26 02:32 AM 編輯

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

你說的應該是指 OS的"執行時寫入" 的行為吧?
現代的OS再配置記憶體時, 不會真的馬上配一大塊記憶體出來,...
瀏覽完整內容,請先 註冊登入會員
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

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

Powered by Discuz!

© Comsenz Inc.

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