C++动态数组分配与释放
2014-07-01 19:17
302 查看
//一维的
string *pa = new string[10];//默认构造函数进行了初始化,为空
int *pa = =new int[10];//内置类型的对象,没有进行初始化
int
*pa = =new int[10]();//初始化为0
delete [] pa;
允许动态分配空数组
size_t n = get_size();
int *p = new int
;
for (int* q = p;q !=p+n;++q)
//创建数组
//二维数组动态数组分配和释放
//数组指针的内存分配和释放
//方法一
char (*a)
;//指向数组的指针
a = new char[m]
;
delete[] a;
//方法二
char **a;
a = new char* [m];//分配指针数组
for(int i=0; i<m; i++)
a[i] = new char
;//分配每个指针所指向的数组
for(i=0; i<m; i++)
delete[] a[i];
delete[] a;
//指针数组的内存分配和释放
//方法一
char **a;
a = new char* [m];
a[0] = new char[m * n];//一次性分配所有空间
for(int i=1; i<m; i++)
a[i] = a[i-1] + n;//分配每个指针所指向的数组
delete[] a[0];
delete[] a;
//方法二
char* a[M];//指针的数组
for(int i=0; i<M; i++)
a[i] = new char
;
for(i=0; i<M; i++)
delete[] a[i];
//方法三
char* a[M];//指针的数组
a[0] = new char[M*n];
for(int i=1; i<M; i++)
a[i] = a[i-1] + n;
delete[] a[0];
转自:http://blog.csdn.net/huazhigang/article/details/11745551
动态数组的赋值:
memset
Sets buffers to a specified character.
void*memset(void*dest,intc,size_tcount);
可见memset只能作用于一个一维数组void*dest,因此最好的办法就是和二维数组的动态分配结合起来,new一个,memset一个。具体写法如下:
int **array;
array=new int *[10];
for(int i=0;i<10;i++)
{
array[i]=new int [5];
memset(array[i],0,5*sizeof(int));
}
转自http://hi.baidu.com/jian_fei_yang/item/cf49006f5d53620aa0cf0ffe
string *pa = new string[10];//默认构造函数进行了初始化,为空
int *pa = =new int[10];//内置类型的对象,没有进行初始化
int
*pa = =new int[10]();//初始化为0
delete [] pa;
允许动态分配空数组
size_t n = get_size();
int *p = new int
;
for (int* q = p;q !=p+n;++q)
//创建数组
//二维数组动态数组分配和释放
//数组指针的内存分配和释放
//方法一
char (*a)
;//指向数组的指针
a = new char[m]
;
delete[] a;
//方法二
char **a;
a = new char* [m];//分配指针数组
for(int i=0; i<m; i++)
a[i] = new char
;//分配每个指针所指向的数组
for(i=0; i<m; i++)
delete[] a[i];
delete[] a;
//指针数组的内存分配和释放
//方法一
char **a;
a = new char* [m];
a[0] = new char[m * n];//一次性分配所有空间
for(int i=1; i<m; i++)
a[i] = a[i-1] + n;//分配每个指针所指向的数组
delete[] a[0];
delete[] a;
//方法二
char* a[M];//指针的数组
for(int i=0; i<M; i++)
a[i] = new char
;
for(i=0; i<M; i++)
delete[] a[i];
//方法三
char* a[M];//指针的数组
a[0] = new char[M*n];
for(int i=1; i<M; i++)
a[i] = a[i-1] + n;
delete[] a[0];
转自:http://blog.csdn.net/huazhigang/article/details/11745551
动态数组的赋值:
memset
Sets buffers to a specified character.
void*memset(void*dest,intc,size_tcount);
可见memset只能作用于一个一维数组void*dest,因此最好的办法就是和二维数组的动态分配结合起来,new一个,memset一个。具体写法如下:
int **array;
array=new int *[10];
for(int i=0;i<10;i++)
{
array[i]=new int [5];
memset(array[i],0,5*sizeof(int));
}
转自http://hi.baidu.com/jian_fei_yang/item/cf49006f5d53620aa0cf0ffe
相关文章推荐
- C++:多维数组的动态分配(new)和释放(delete)
- C++:多维数组的动态分配(new)和释放(delete)
- C++:多维数组的动态分配(new)和释放(delete)
- C++:多维数组的动态分配(new)和释放(delete)
- C++:多维数组的动态分配(new)和释放(delete)
- C++:多维数组的动态分配(new)和释放(delete)
- C和C++动态内存分配和释放的区别
- C++内存分配及变长数组的动态分配
- c语言中内存的动态分配与释放(多维动态数组构建)
- C和C++动态内存分配和释放的区别
- c与c++分别是怎样动态分配和释放内存的,有什么区别?
- C++动态分配数组/向量(一维,二维)
- C与C++动态分配,释放内存的区别
- C++动态分配指针数组
- c++动态分配空间 释放空间
- C程序中高维数组的动态分配与释放
- C++动态分配三级指针的内存与释放
- c++中动态分配数组
- 鸡啄米:C++编程入门系列之三十二(数组、指针和字符串:动态内存分配和释放)
- C/C++二维数组的动态分配及参数传递