第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求助大佬,請問內(nèi)存分配(Memory Allocate) 問題,具體如下~

求助大佬,請問內(nèi)存分配(Memory Allocate) 問題,具體如下~

慕勒3428872 2021-12-31 06:22:21
跪求高手解惑,小菜鳥在此謝過!1)malloc.h這個頭文件除了malloc()函數(shù),里面還包含realloc() calloc()這幾個函數(shù)嗎?2)在某次編程實(shí)踐我關(guān)于 分配200字節(jié)(或25塊整形空間)寫了三種形式:int *p1 = (int *) malloc( 200 ); //VC++6.0環(huán)境下int占4字節(jié),此行相當(dāng)于分配25塊int空間int *p2 = (int *) calloc( 25, sizeof( int ) ); //直接分配25塊int空間int *p3 = (int *) malloc( sizeof( int ) ); //先分配1塊整形空間p3 = (int *)realloc( p3, 200 ); /* 再用realloc函數(shù)把一塊整形空間改換成200字節(jié)空間,即:把一塊整形空間改換成25塊整形空間(VC++6.0編譯環(huán)境) */請 眾多高手 幫我解惑:我的這三種寫法邏輯上對嗎,如果不對應(yīng)該怎么改?(暫不考慮內(nèi)存安全問題)我的意思是malloc函數(shù)與realloc函數(shù)還有calloc函數(shù)有什么異同點(diǎn)?3)關(guān)于同一段動態(tài)分配內(nèi)存重復(fù)釋放的問題:我在A函數(shù)分配了一段內(nèi)存:int *p = (int *) malloc( sizeof( int ) );現(xiàn)在&p作為實(shí)參傳遞進(jìn)入B函數(shù),進(jìn)行了一些操作,完事以后在B函數(shù)將指針變量p指向的空間free掉了,但是由于粗心,在B函數(shù)執(zhí)行完成后返回A函數(shù)又執(zhí)行了一次free(p);這個程序執(zhí)行時顯示“××.exe已停止工作”(環(huán)境是Win7旗艦版SP1),這個是程序自己執(zhí)行的時候出了問題,還是被操作系統(tǒng)做掉了?以上問題在線跪求高手解答,謝過!
查看完整描述

2 回答

?
三國紛爭

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個贊

1)malloc.h 是的,VC 6.0 用 #include <stdlib.h> 就可以了。
2)寫法都對。用 malloc 或 calloc 與個人習(xí)慣 有關(guān)(各人喜歡,c語言歷史有這2函數(shù))。realloc 用于 隨時可以 增加 動態(tài)分配 或 減小 動態(tài)分配 空間。另2個函數(shù)無此功能。
3) 加條件判斷做釋放: if ( p) free(p);

查看完整回答
反對 回復(fù) 2022-01-03
?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個贊

1 include stdlib.h instead
2 calloc 分配m個n字節(jié)的內(nèi)存空間,該內(nèi)存空間被置0
malloc 分配制定直接長內(nèi)存空間,空間內(nèi)容未置0
realloc 中如果第一個指針為NULL,等效malloc,如果第一個指針不為空,但是size=0,等效free,指針
,大小都不為0則重新根據(jù)內(nèi)存分配算法挑選合適內(nèi)存
3 double free 是有可能造成core dump的,free 后置NULL即可,即使free(NULL)也不會出問題,
if(NULL!=p){free(p);p=NULL;} a better way !!!

查看完整回答
反對 回復(fù) 2022-01-03
  • 2 回答
  • 0 關(guān)注
  • 234 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號