社区
C++ 语言
帖子详情
C++内存申请
PcrazyC
2008-12-08 01:53:11
有时候需要自己动态输入需要申请的内存大小,当内存不足时应该提示一下,想用TRY...CATCH来实现,但应该捕捉哪个异常呢?
try{
...}
catch(...)//这里应该是什么?
{}
...全文
242
13
打赏
收藏
C++内存申请
有时候需要自己动态输入需要申请的内存大小,当内存不足时应该提示一下,想用TRY...CATCH来实现,但应该捕捉哪个异常呢? try{ ...} catch(...)//这里应该是什么? {}
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
PcrazyC
2008-12-09
打赏
举报
回复
__try和__exception ?
能不能举个例子?
leiXure
2008-12-09
打赏
举报
回复
std::bad_alloc
楼主还可看看 Win32 SEH 相关文章
jiww03
2008-12-09
打赏
举报
回复
是__try {}__except(){}
dufutang
2008-12-09
打赏
举报
回复
受益非浅高手共同提高
Zark
2008-12-09
打赏
举报
回复
8楼的sample
// exceptions_try_except_Statement.cpp
// Example of try-except and try-finally statements
#include <stdio.h>
#include <windows.h> // for EXCEPTION_ACCESS_VIOLATION
#include <excpt.h>
int filter(unsigned int code, struct _EXCEPTION_POINTERS *ep) {
puts("in filter.");
if (code == EXCEPTION_ACCESS_VIOLATION) {
puts("caught AV as expected.");
return EXCEPTION_EXECUTE_HANDLER;
}
else {
puts("didn't catch AV, unexpected.");
return EXCEPTION_CONTINUE_SEARCH;
};
}
int main()
{
int* p = 0x00000000; // pointer to NULL
puts("hello");
__try{
puts("in try");
__try{
puts("in try");
*p = 13; // causes an access violation exception;
}__finally{
puts("in finally. termination: ");
puts(AbnormalTermination() ? "\tabnormal" : "\tnormal");
}
}__except(filter(GetExceptionCode(), GetExceptionInformation())){
puts("in except");
}
puts("world");
}
jackzhhuang
2008-12-08
打赏
举报
回复
相比用bad_alloc,我更喜欢用__try和__exception
党出现内存不足时,指针就会指向NULL,这个时候若使用指针就会产生异常,进而跳到__exception处理,省去判断,也比较保险。
SearchLife
2008-12-08
打赏
举报
回复
在嵌入式编程中应该用得多一些吧
SearchLife
2008-12-08
打赏
举报
回复
抛出bad_alloc异常,如果你设置了new_handler,则不断调用之,直到内存分配成功。
jiww03
2008-12-08
打赏
举报
回复
new..==NULL就行了
jiww03
2008-12-08
打赏
举报
回复
try..catch不能捕获内存异常
ysuliu
2008-12-08
打赏
举报
回复
如果你在linux下,去查一下 man new
如果你在windows下,去看msdn的 new操作符
看看他们失败了会抛出什么异常,一查就出来了。。你应该充分利用这些系统提供的帮助,不仅能最快解决问题,也能提高自己的能力。。
Mougou
2008-12-08
打赏
举报
回复
bad_alloc
taodm
2008-12-08
打赏
举报
回复
你在什么操作系统下编程?自己真的亲自遇到过内存不足?
C++
内存
申请
、
内存
释放
本文总结了
C++
中
内存
申请
与释放的几个关键规则,包括检查malloc或new返回的NULL指针、初始化
内存
、防止数组越界、正确配对释放
内存
以及释放后设指针为NULL避免野指针。通过示例介绍了new操作
申请
内存
和释放
内存
的注意事项。
Window C/
C++
内存
申请
本文介绍了
C++
内存
申请
的类型,包括数据区、栈和堆
内存
。着重阐述了 Windows 平台下
C++
堆
内存
的
申请
方式,如 malloc、new 等,其中 malloc 是标准库函数,new 是
C++
关键字,其他为 Windows API。还说明了各方式的使用方法、回收方式及特点,如不同模式下的
内存
填充情况等。
CPP {
申请
内存
,释放
内存
,new,delete,std::malloc,std::free}
本文围绕CPP的
内存
申请
与释放展开,介绍了new和std::malloc的相关内容。new一次性
申请
和逐个
申请
内存
的空间不同,猜测逐个
申请
会造成
内存
碎片。std::malloc在
C++
中应少用,因不调用构造函数,用于容器会产生野指针问题,还介绍了std::free释放
内存
的方法。
C++
动态
内存
的
申请
和释放
本文介绍了
C++
中动态
内存
的
申请
与释放,包括关键字new和delete的使用,以及释放
内存
后的常见错误,如重复释放
内存
和释放非堆
内存
。特别提到了Dev-
C++
中释放
内存
后的潜在问题和注意事项。,
C++
如何
申请
动态
内存
本文围绕
C++
动态
内存
展开,介绍了使用`new`和`delete`关键字
申请
和释放动态
内存
的方法,分析了`new[]`后不用`delete[]`的影响,阐述了`delete[]`的原理及它如何确定析构函数调用次数,最后建议使用
C++
11后的智能指针避免使用错误。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章