當前位置:
首頁 >
C++数组(一维、二维、三维)的动态分配new、初始化memset和释放delete
發布時間:2024/4/15
40
豆豆
生活随笔
收集整理的這篇文章主要介紹了
C++数组(一维、二维、三维)的动态分配new、初始化memset和释放delete
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【原文】http://blog.csdn.net/shanzhizi/article/details/7835752
數組的動態分配、初始化和釋放經常用到,這里總結一下,尤其是二維數組
一維數組
一維數組的動態分配,初始化和撤銷都好說,幾乎每一本C++教材都會做出詳細的說明。具體如下:動態分配:?int *array=new int [n];
初始化:memset(array,0,n*sizeof(array)); ? ? ? (也可以利用一個for循環對其賦值初始化)
撤銷:delete [] array;
二維數組
下面來說二維數組的。 動態分配:二維數組(n行m列)利用new來進行動態分配實際上相當于對n個m元數組進行動態分配,只不過我們不能一味的按照動態分配一維數組的方法來進行這項操作。MSVC目前還沒有這般的人性化,具體應該這樣做:
[cpp]?view plaincopy
如果把一維數組初始化辦法照搬過來就會發現對于動態分配的二維數組并不適用。這就要理解到memset這個函數三個參數的含義。MSDNhttp://blog.csdn.net/shanzhizi對memset的描述如下:
Sets buffers to a specified character.
void *memset( void *dest, int c, size_t count );
可見memset只能作用于一個一維數組void *dest,因此最好的辦法就是和二維數組的動態分配結合起來,new一個,memset一個。我的理解是memset只作用于一塊連續的內存空間,而動態開辟的空間不一定是連續的,所以具體寫法如下:
[cpp]?view plaincopy
撤銷: [cpp]?view plaincopy
三維數組
類似于二維數組,用一個例子說明: [cpp]?view plaincopy總結
以上是生活随笔為你收集整理的C++数组(一维、二维、三维)的动态分配new、初始化memset和释放delete的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV实现Mat与vector,M
- 下一篇: C++常用方法笔记资料