VC编程过程中遇到的问题
2013-03-14 17:47
260 查看
1.2013年3月14日 星期四
BUG:在程序中调用某个含有自定义结构体类型的参数的函数,程序出现BUG。
原因:通过查看调用堆栈,发现是由于调用的该自定义结构体里面某个指向某段内存的变量被析构了。按原先意图是不应该调用析构函数的,后面查看 函数声明,发现对于该结构体参数,使用的值传递,导致函数退出时使用的析构函数。
解决办法:最简单的改为引用传递,问题解决。
深层次的解决办法,是为该自定义结构体 创建合适的拷贝构造函数。
示例:
BUG:在程序中调用某个含有自定义结构体类型的参数的函数,程序出现BUG。
原因:通过查看调用堆栈,发现是由于调用的该自定义结构体里面某个指向某段内存的变量被析构了。按原先意图是不应该调用析构函数的,后面查看 函数声明,发现对于该结构体参数,使用的值传递,导致函数退出时使用的析构函数。
解决办法:最简单的改为引用传递,问题解决。
深层次的解决办法,是为该自定义结构体 创建合适的拷贝构造函数。
示例:
class S { char* a; s(){ a = NULL); ~s(){ if(a!= NULL) { delete[] a,; a= NULL}} } 创建并定义函数 void FUN1(S a); 在某处使用, FUN1(a ) ; 程序运行过程中会报错。 创建拷贝构造函数是深层次的解决办法。
相关文章推荐
- 自己在CODING过程中遇到的问题以及解决(C/VC)
- Matlab 与 VC++ 混合编程过程详解(含问题部分解答)
- 【Java】编程过程中遇到的中文编码问题
- Unity知识四:Unity编程过程中遇到的小问题(持续更新)
- QT4编程过程中遇到的问题及解决办法
- 编程过程中遇到的问题汇总1
- VC编程遇到的零碎问题
- Java编程过程中遇到的问题记录
- vc6.0转vc2010编程中遇到的问题
- VC 使用过程中所遇到的一些问题,汇总在这里,希望对后来者有些许帮助
- 如何在窗口创建的同时更新List控件内容,在编程过程中遇到的问题
- c++(c语言)编程过程中遇到的细微问题总结(持续更新)
- 编程过程中遇到的问题汇总2
- MR并行算法编程过程中遇到问题的思考
- vc编程中遇到一个编译问题,原来是少了LIB文件 (ZT)
- QT4.8.5编程过程中遇到的问题及解决办法
- 初学JavaWeb编程过程中遇到的一些问题记录
- 在编程过程中遇到的各种小问题
- 使用Visual Studio编程过程中遇到的若干问题及解决建议
- MFC编程过程中遇到的兼容性问题