課程
/后端開發(fā)
/C++
/C++遠(yuǎn)征之離港篇
請(qǐng)問二維數(shù)組怎么申請(qǐng)和釋放內(nèi)存?謝謝
2015-12-10
源自:C++遠(yuǎn)征之離港篇 5-4
正在回答
char?**str?=?new?char*[100]; ?for?(int?i?=?0;?i?<?100;?i++) ??str[i]?=?new?char[100]; ?//這樣就申請(qǐng)好了二維字符數(shù)組了。 ?//釋放時(shí)也是類似 ?for?(int?i?=?0;?i?<?100;?i++) ?{ ??for?(int?j?=?0;?j?<?100;?j++) ??{ ???if?(str[i]!=?NULL) ???{ ????delete?str[i]; ???} ??} ??delete?str; ?}
Soardbjiao 提問者
前面的答案有個(gè)問題:str并不是傳統(tǒng)意義的二維數(shù)組。
二維數(shù)組一般這樣定義 int a[10][10]; ?這樣a中的100個(gè)元素在內(nèi)存中是連續(xù)存放的。
可以按照答案那樣寫的話,str指向的是char*數(shù)組,其中的100個(gè)char指針指向另外的100個(gè)char數(shù)組,也就是這10000個(gè)char并不是連續(xù)存放的!
很多時(shí)候會(huì)依賴于二維數(shù)組連續(xù)存放元素的特性而用指針來訪問整個(gè)數(shù)組空間,這種方法就不適用于str所指的數(shù)組了。
贊同一樓
申請(qǐng)內(nèi)存char *str = new char[100];
釋放內(nèi)存delete []str;????????????????str = NULL;
舉報(bào)
C++掃清通往面向?qū)ο蟮淖詈笠坏勒系K,將所有知識(shí)點(diǎn)融會(huì)貫通
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-12-10
2015-12-11
前面的答案有個(gè)問題:str并不是傳統(tǒng)意義的二維數(shù)組。
二維數(shù)組一般這樣定義 int a[10][10]; ?這樣a中的100個(gè)元素在內(nèi)存中是連續(xù)存放的。
可以按照答案那樣寫的話,str指向的是char*數(shù)組,其中的100個(gè)char指針指向另外的100個(gè)char數(shù)組,也就是這10000個(gè)char并不是連續(xù)存放的!
很多時(shí)候會(huì)依賴于二維數(shù)組連續(xù)存放元素的特性而用指針來訪問整個(gè)數(shù)組空間,這種方法就不適用于str所指的數(shù)組了。
2015-12-10
贊同一樓
2015-12-10
申請(qǐng)內(nèi)存char *str = new char[100];
釋放內(nèi)存delete []str;
????????????????str = NULL;