C&C++   发布时间:2022-04-13  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了内存动态管理--C++中new的常见使用方法(仅关注使用)及与malloc的区别大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

C++中new的常见使用方法(仅关注使用)及与malloc的区别

 

C++中new返回值为内存块的地址,所以使用方法一般为      type *p = new的语句

 

new语句:

1. new type(变量/常值) 分配这种类型的一个大小的内存空间,并以括号中的值来初始化这个变量; 判断这种变量或常值的所属类型,分配一个该类型的内存空间,并用括号内内容初始化该值,返回内存地址;例如:int *m_Age = new int(agE);  这里类型是int,所以m_Age类型是int*,age的类型也应该是int。最后应delete m_Age


2. new type[n] 分配这种类型的n个大小的内存空间,并用默认构造函数来初始化这些变量;
例如: char* p=new char[6]; strcpy(p,"Hello");  申请连续的内存空间(6个char大小)首地址返回给字符串指针p。 char* p = new char 默认一个。。。delete [] p; 若不加[]则释放首地址一个该类型单位的内存。


3. 当使用New运算符定义一个多维数组变量或数组对象时,它产生一个指向数组第一个元素的指针,返回的类型保持了除最左边维数外的所有维数。

例如:int *p1 = new int[10]; 返回的是一个指向int的指针int* 。

int (*p2)[10] = new int[2][10]; new了一个二维数组, 去掉最左边那一维[2], 剩下int[10], 所以返回的是一个指向int[10]这种一维数组的指针int (*)[10].        

int (*p3)[2][10] = new int[5][2][10]; new了一个三维数组, 去掉最左边那一维[5], 还有int[2][10], 所以返回的是一个指向二维数组int[2][10]这种类型的指针int (*)[2][10].

C++中用new动态创建二维数组的格式一般是这样: TYPE (*p)[n] = new TYPE [][n]; 其中,TYPE是某种类型,N是二维数组的列数。采用这种格式,列数必须指出,而行数无需指定。在这里,p的类型是TYPE*[n],即是指向一个有N列元素数组的指针。

 4.指针 = new 类名

父类指针 = new 子类名; (父类指针指向子类对象,使用多态) 相当于 使用New创建了一个对象,并创建父类指针指向这个对象,最后应delete父类指针。

 

 

 

new与malloc使用的区别:

内存动态管理--C++中new的常见使用方法(仅关注使用)及与malloc的区别

 

大佬总结

以上是大佬教程为你收集整理的内存动态管理--C++中new的常见使用方法(仅关注使用)及与malloc的区别全部内容,希望文章能够帮你解决内存动态管理--C++中new的常见使用方法(仅关注使用)及与malloc的区别所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: