c++ new的使用
来源:互联网 发布:php文件管理系统 编辑:程序博客网 时间:2024/06/05 01:04
1. 针对现有内存使用new申请内存
class Student
{
public:
Student(int x = 0){x_ = x};
~Student(){};
private:
int x_;
};
int main()
{
char s[100];//此处为栈内存,
new(s)Student(2);//从数组s的首地址开始申请一个结构体所需内存 (此函数为调用Student的构造函数, 参数为2)
char *ptr = new ptr[100];
new(ptr + 4)Student;// 从指针ptr的第四个字节开始申请一个结构体所需内存(此函数为调用Student的构造函数, 无参)
return 0;
}
2. 申请内存失败的处理
new和malloc的不同之初是, C标准的malloc在申请内存失败时会直接返回NULL, 而new在失败时并不会返回空指针, 而是直接抛出异常
例子:char *ptr = new ptr[100];
①直接判断:
if (!ptr){...}//错误的做法, 因为new成功时返回指针判断无效, 失败时直接抛出异常, 判断仍然无效;
②捕获异常
try
{
char *ptr = (char *)new char[100];
}
catch (const std::bad_alloc& e)
{
std::cout << __FUNCTION__ << " : " << e.what() << '\n';
return -1;
}
③取消异常
- C#virtual,override,new的使用
- C++new和delete的使用
- C++new的用法
- C++new的用法
- C++new的用法
- C++new的用法
- C ++的new、delete
- C++new的用法
- C++new的用法
- c++new的用法
- c++:动态内存分配(new和delete的使用)
- c++: new, delete, malloc, free的匹配使用
- C++中new和delete的使用.c
- [C++] c++ new() 与new[]的区别
- C#new与不new的差别
- placement new的使用
- placement new 的使用
- new的使用
- MEGAMALL OpenCart 自适应主题模板 ABC-0692
- String ->date: 思想:把日期装换成字符串
- HTTP协议详解
- Android 我的第一个 NDK 程序 (AndroidStudio)
- JDBC连接Oracle数据库,查看表结构,调用存储过程
- c++ new的使用
- 你的理想在哪
- bzoj-1006 神奇的国度
- 黑马程序员-常用Java API介绍
- 在Eclipse中使用maven创建项目
- 数据结构之后缀数组
- js移动div改进(兼容)
- 高通平台msm8909 LK 实现LCD 兼容
- export http://blog.csdn.net/hikaliv/article/details/4474835