內(nèi)存申請(qǐng)str(100)與str[100]的區(qū)別
有一點(diǎn)疑問,生成100個(gè)char內(nèi)型的內(nèi)存
char?*str=new?str[100];
是不是可以理解成生成了一個(gè)可以存放100個(gè)char內(nèi)型的數(shù)組,那既然是數(shù)組,strcpy(),是把"Hello Imooc"放在str數(shù)組的第幾個(gè)位置?隨機(jī)?
?要不就是生成100個(gè)長(zhǎng)度的char內(nèi)型
char?*str=new?str(100);
這樣strcpy()我還能理解 釋放內(nèi)存為
?delete?str;? ?str=NULL;
2016-11-01
char?*str=new char[100];的意思是在堆中申請(qǐng)100個(gè)char類型的內(nèi)存;
char?*str=new char(100);的意思是在堆中申請(qǐng)1個(gè)char類型的內(nèi)存,初始化為100;這兒加一句new會(huì)調(diào)用默認(rèn)初始化,char默認(rèn)初始化為'',所以char?*str=new char[100];這個(gè)就是100個(gè)''。
至于你的”是把"Hello Imooc"放在str數(shù)組的第幾個(gè)位置?隨機(jī)?”這個(gè)問題,是放在了數(shù)組的前面幾個(gè)位置,隨機(jī)就不可能了,效率也不允許這樣做。
僅供參考,互相學(xué)習(xí)!