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