006--C++动态内存(简介)
2015-10-24 22:49
295 查看
(1)使用new为一个数据对象获得并指定分配内存的通用格式:
typeName * pointer_name=new typeName;
(2)使用delete释放内存
delete pointer_name;
需要注意的是,delete释放的是pointer_name所直线的数据对象的内存。同时delete适用于释放用new申请的内存。
C++的标准指出,不要尝试释放已经释放的内存,同时也不能使用delete来释放声明变量所获得的内存。
int age=23;
int * page=&age;
delete page; //这是不合法的操作
注意:使用delete的关键在于,将它用于new分配的内存。这并不意味着要使用用于new的指针,而是用于new的地址。
int * ps=new int;
int * pq=ps;
delete pq;
一般来说,不要创建两个指向同一个内存块的指针,因为这将增加错误的删除同一内存块两次的可能性。
typeName * pointer_name=new typeName;
(2)使用delete释放内存
delete pointer_name;
需要注意的是,delete释放的是pointer_name所直线的数据对象的内存。同时delete适用于释放用new申请的内存。
C++的标准指出,不要尝试释放已经释放的内存,同时也不能使用delete来释放声明变量所获得的内存。
int age=23;
int * page=&age;
delete page; //这是不合法的操作
注意:使用delete的关键在于,将它用于new分配的内存。这并不意味着要使用用于new的指针,而是用于new的地址。
int * ps=new int;
int * pq=ps;
delete pq;
一般来说,不要创建两个指向同一个内存块的指针,因为这将增加错误的删除同一内存块两次的可能性。
相关文章推荐
- C++在命令行中回车实现默认输入
- c语言之指针理解一
- C++
- occcont.cpp 925
- C/C++ sort 函数的用法
- assert
- C++输入流cin方法详解
- C++设计模式之策略模式
- C++读取INI配置文件
- C++primer学习:拷贝控制(7):对象移动
- VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的
- C/C++中<>和“”的区别
- C语言生成随机数
- C++用数组存放数据
- C++ 数组array与vector的比较
- C语言中switch case语句的嵌套
- 1042. 字符统计(20)
- 【C++】define的用法注意
- [C++] How to prevent memory leaks
- 用宏换参