动态分配的标准写法(new, delete; malloc, free)
2012-04-30 12:15
330 查看
1、可能有的人涉及到动态分配只用到下面的这句:
漏洞百出,不想多说。
(补充一句,上面用的是new的plain new用法)
2、自己总结了一下动态分配的写法(当然还有其他写法),以后就这么写了:
扩展阅读:林锐
http://blog.sina.com.cn/s/blog_446b43c10100d7ci.html
#include <iostream> using namespace std; int main(void) { int *p; p = new int(1); // 1 cout << *p << endl; int *q; q = (int *)malloc(sizeof(int)); *q = 1; cout << *q << endl; return 0; }
漏洞百出,不想多说。
(补充一句,上面用的是new的plain new用法)
2、自己总结了一下动态分配的写法(当然还有其他写法),以后就这么写了:
#include <iostream> using namespace std; int main(void) { int *p = NULL; p = new(nothrow) int(1); // 1 if (p == NULL) { // 2 cerr << "Allocate failed!" << endl; exit(OVERFLOW); } cout << *p << endl; delete p; // 3 p = NULL; // 4 /*----------------------------------------------------*/ int *q = NULL; q = (int *)malloc(sizeof(int)); // 1 if (q == NULL) { // 2 cerr << "Allocate failed!" << endl; exit(OVERFLOW); } *q = 1; cout << *q << endl; free(q); // 3 q = NULL; // 4 return 0; }
扩展阅读:林锐
http://blog.sina.com.cn/s/blog_446b43c10100d7ci.html
相关文章推荐
- 动态分配的标准写法(new, delete; malloc, free)
- 动态分配的标准写法(new, delete; malloc, free)
- 动态内存分配- new/delete 和malloc/free的区别
- c/c++ 补漏之动态内存分配,malloc,free,new delete (一)
- 内存分配方式,堆区,栈区,new/delete/malloc/free
- C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free
- 在C++动态库中释放调用动态库程序中生成的指针new和delete 或 malloc和free
- C/C++内存分配方式,栈区堆区 new/delete/malloc/free
- C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free
- C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free .
- C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free(转)
- 内存分配方式,堆区,栈区,new/delete/malloc/free
- malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存
- C++中malloc/free与new/delete的区别及内存分配失败错误处理
- C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free
- 内存分配方式,堆区,栈区,new/delete/malloc/free
- 动态内存开辟C语言和C++,new与delete,malloc和free,operator new 和operator delete
- C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free
- C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free
- C/C++ 内存分配:malloc/calloc/realloc/free和new/delete