请教:这是检测结构指针错误的最优方法吗? 这个倒是第一次见,学习, 你先判一个 p == NULL的错误吧。大概理解你的意思了,可以自己封一个函数,类似于 IsIntMember()之类的,判断各个结构. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那是异常捕获 可以判空或用ASSERT 你那个是SEH,直接对指针进行判断,是否为NULL等等 最好先判断明显的错误,不可预知的再调用__try{}__except()块比如int Add(Test* p){ int i; if ( p == NULL) return 0; __try { i = p->a; } __except(EXCEPTION_EXECUTE_HANDLER) { //do... return 0; } //do... return 1;} struct Test{ struct Test2 { struct Test3 { int a; }t2; }t1;};int Add(Test* p){ int i; __try { i = p->t1.t2.a; } __except(EXCEPTION_EXECUTE_HANDLER) { printf("wrong"); } printf("right"); getchar(); return 0;}终极问题如上。这种情况下加上判空是不是会浪费CPU? 使用VC中的mscomm控件接收GPS星历信息,编程问题 对话框问题 VC2008编译出的程序不能在其他机器上直接运行吗? 求SKIN++ BUILDER 如何在WIN32环境下编程获得某个文件目录下的所有文件 珠海金山公司的回复----简历 我在做帮助文档的时候遇到问题了,Debug下没问题,Realse就出错了; 如何使得在LISTBOX中, 最后添加的行, 在最顶上出现, ?? 现在是最后添加的行在最下边. 控件焦点的问题 什么地方有purify内存监测下载!!! 双缓存画图内存释放问题 请问这样的界面,用VC++如何实现
可以判空或用ASSERT
__try
{
}
__except()
块
比如
int Add(Test* p)
{
int i; if ( p == NULL)
return 0; __try
{
i = p->a;
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
//do...
return 0;
}
//do...
return 1;
}
{
struct Test2
{
struct Test3
{
int a;
}t2;
}t1;
};int Add(Test* p)
{
int i;
__try
{
i = p->t1.t2.a;
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
printf("wrong");
}
printf("right");
getchar();
return 0;
}
终极问题如上。
这种情况下加上判空是不是会浪费CPU?