The correct way to initialize a dynamic pointer to a multidimensional array
2024-08-26 00:25:48
From:https://stackoverflow.com/questions/18273370/the-correct-way-to-initialize-a-dynamic-pointer-to-a-multidimensional-array
Let's start with some basic examples.
When you say int *P = new int[4];
new int[4];
calls operator new function()- allocates a memory for 4 integers.
- returns a reference to this memory.
to bind this reference, you need to have same type of pointer as that of return reference so you do
int *P = new int[4]; // As you created an array of integer
// you should assign it to a pointer-to-integer
For a multi-idimensional array, you need to allocate an array of pointers, then fill that array with pointers to arrays, like this:
int **p;
p = new int*[5]; // dynamic `array (size 5) of pointers to int`
for (int i = 0; i < 5; ++i) {
p[i] = new int[10];
// each i-th pointer is now pointing to dynamic array (size 10)
// of actual int values
}
Here is what it looks like:
To free the memory
For one dimensional array,
// need to use the delete[] operator because we used the new[] operator
delete[] p; //free memory pointed by p;`For 2d Array,
// need to use the delete[] operator because we used the new[] operator
for(int i = 0; i < 5; ++i){
delete[] p[i];//deletes an inner array of integer;
} delete[] p; //delete pointer holding array of pointers;
Avoid memory leakage and dangling pointers!
最新文章
- 从抽象谈起(三):AOP编程和ASP.NET MVC
- solr导入mysql数据库
- 抓包工具__Windows
- 转:关于视频H264编解码的应用实现
- 20150323--MVC
- 【PHPsocket编程专题(实战篇③)】构建基于socket的HTTP请求类
- 如何配置Spring的XML文件及使用
- Python学习笔记——进阶篇【第九周】———线程、进程、协程篇(队列Queue和生产者消费者模型)
- 关于iOS自定义控件:在view上实现事件和代理
- poptest老李谈分布式与集群 1
- 利用CSS3实现鼠标悬停在图片上图片缓慢缩放的两种方法
- Anaconda换源小记
- CSS粘住固定底部的5种方法
- hdu 4407 容斥原理
- mysql开发常用小结
- Ogre 渲染目标解析与多文本合并渲染
- Linux内核分析-分析Linux内核创建一个新进程的过程
- 为My97DatePicker日期插件设置默认日期
- HADOOP/HDFS Essay
- xampp本地服务器+HBuilder配置php环境