C++中new和delete用法
来源:互联网 发布:2016无限申请淘宝小号 编辑:程序博客网 时间:2024/05/20 04:30
学习了C++有半年了,中途看了又忘忘了又看。现在我开始学习Java,虽然说两种语言之间的语法基本是差不多的,但还是有很多的区别,从今天开始写博文,总结两种语言的用法,希望真的能够促进我的学习!
C++总new和delete的用法总结:
new的操作是为了在内存中开辟新的内存空间,用起来还是比较简单的,需要注意的是new指令返回的是指向新建对象的指针。
int *p=new int;int *p=new int[3];int **p=new int[3][3];delete是和new配套使用的,用于释放new开辟的内存空间
典型用法:
delete p;delete [] p;
今天在编写一个小程序用于验证C++和java的new用法区别时,遇到一个问题:
#include<iostream>using namespace std; int main() { int *p = new int[3]; for(int i=0;i!=3;++i) { *(p+i)=i; } int i=0; while((i++)!=3) { cout<<*p++; } cout<<"\n";delete p;delete [] p; delete [] p; return 0; }
当然输出程序报错,检查原因,发现是
cout<<*p++;
这一句出了问题,这里改动了p指针的指向位置,导致delete释放了位置的空间。
改正为:
cout<<*(p+i-1)
恢复正常。
这是要注意的问题,不能随便改动初始地址指针的指向(反正要保证delete的开始位置不是位置空间,比如说,要是能能够在delete运行之前把p的位置改回去,其实也是可以的),用累加器倒是个不错的主意。
第一次写博客,感觉写的东西都不能完全表达自己的想法啊。
还有这个程序编辑到底在哪里啊,找了半天找不到,郁闷!!!!!
0 0
- C/C++中new/new[]和delete/delete[]的用法比较
- C++:new和delete的用法
- C++中new和delete的用法
- C++中 new和delete的用法
- C++中new和delete的用法
- C++中new和delete用法
- C++中new和delete的用法
- c++中new和delete的用法
- C++中new和delete的用法
- new和delete用法
- C++:new和delete
- new和delete【C++】
- c/c++笔试题——C++中 new/delete 概念和用法总结
- c/c++笔试题——C++中 new/delete 概念和用法总结
- new和delete的用法
- new和delete的用法
- C++中 new/delete 概念和用法总结
- C++中new和delete的用法注意。
- 各种距离汇总
- ObjC的initialize和init
- 蓝桥杯 算法训练 出现次数最多的整数
- URAL 1385 Interesting Number
- JAVA 枚举类型
- C++中new和delete用法
- RatingBar简单介绍
- iOS新浪微博客户端开发(4)——自定义微博Cell的实现
- 【MOOC】程序设计入门-C 语言 作业汇总
- 第二周阅读程序(1)
- 当ListView有Header时,onItemClick里的position不正确
- 把数组排成最小数
- hdu1068 二分图的最大独立集
- grub rescue