第七篇:C/C++动态内存的分配问题
来源:互联网 发布:手机拍照翻译软件 编辑:程序博客网 时间:2024/05/29 08:35
- //二维数组动态数组分配和释放
- //数组指针的内存分配和释放
- //方法一
- char (*a)[N];//指向数组的指针
- a = (char (*)[N])malloc(sizeof(char [N]) * m);
- free(a);
- //方法二
- char **a;
- int i;
- a = (char **)malloc(sizeof(char *) * m);//分配指针数组
- for(i=0; i<m; i++)
- a[i] = (char *)malloc(sizeof(char) * n);//分配每个指针所指向的数组
- for(i=0; i<m; i++)
- free(a[i]);
- free(a);
- //方法三
- char **a;
- int i;
- a = (char **)malloc(sizeof(char *) * m);//分配指针数组
- a[0] = (char *)malloc(sizeof(char) * m * n);//一次性分配所有空间
- for(i=1; i<m; i++)
- a[i] = a[i-1] + n;
- free(a[0]);
- free(a);
- //指针数组的内存分配和释放
- //方法一
- char* a[M];//指针的数组
- int i;
- for(i=0; i<M; i++)
- a[i] = (char *)malloc(sizeof(char) * n);
- for(i=0; i<M; i++)
- free(a[i]);
- //方法二
- char* a[M];//指针的数组
- int i;
- a[0] = (char *)malloc(sizeof(char) * M * n);
- for(i=1; i<M; i++)
- a[i] = a[i-1] + n;
- free(a[0]);
C++
- //二维数组动态数组分配和释放
- //数组指针的内存分配和释放
- //方法一
- char (*a)[N];//指向数组的指针
- a = new char[m][N];
- delete[] a;
- //方法二
- char **a;
- a = new char* [m];//分配指针数组
- for(int i=0; i<m; i++)
- a[i] = new char[n];//分配每个指针所指向的数组
- 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[n];
- 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];
//以上方法很详细,基本上可以解决所的问题
//NEW和DELETE需要配对使用,避免内存泄露
0 0
- 第七篇:C/C++动态内存的分配问题
- C++/C动态内存分配的区别
- C/C++中动态内存分配问题
- c 动态内存分配
- c动态内存分配
- C动态内存分配
- 【C++】动态内存分配
- C动态内存分配
- C动态内存分配
- C动态内存分配
- C---动态内存分配
- C的内存分配问题
- c的内存分配问题
- C的内存分配问题
- C语言的动态内存分配
- C和C++动态内存的分配
- C语言的动态内存分配函数
- C语言的动态内存分配
- actionbar的下阴影线如何消除
- ActivityGroup返回键获取焦点处理
- Sql Server的存储过程基本知识
- LeetCode题解:Rectangle Area
- Valid Parentheses
- 第七篇:C/C++动态内存的分配问题
- Spring中控制反转实例
- javascript递归与闭包
- Android读取SD卡内容
- Java基础学习总结—Java对象的序列化和反序列化
- 16进制颜色代码记忆规律/
- iOS新手必看之全貌
- Android 文件操作总结
- TCP长连接与短连接的区别