社区
C++ 语言
帖子详情
为什么会程序会崩溃
xuejinn
2007-09-17 03:50:58
void getMemory(char *p)
{
p = new char[100];
}
void test()
{
char *str = NULL;
getMemory(str);
strcpy(str,"helloword");
cout<<str<<endl;
}
...全文
98
3
打赏
收藏
为什么会程序会崩溃
void getMemory(char *p) { p = new char[100]; } void test() { char *str = NULL; getMemory(str); strcpy(str,"helloword"); cout<<str<<endl; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuejinn
2007-09-17
打赏
举报
回复
多谢
lovewhzlq
2007-09-17
打赏
举报
回复
毛病出在函数getMemory中。编译器总是要为函数的每个参数制作临时副本,指针参数p的副本是 _p,编译器使 _p = p。如果函数体内的程序修改了_p的内容,就导致参数p的内容作相应的修改。这就是指针可以用作输出参数的原因。在本例中,_p申请了新的内存,只是把_p所指的内存地址改变了,但是p丝毫未变。所以函数getMemory并不能输出任何东西。事实上,每执行一次getMemory就会泄露一块内存,因为没有用free释放内存。
qhfu
2007-09-17
打赏
举报
回复
void getMemory(char *&p) //因为是传值
{
p = new char[100];
}
void test()
{
char *str = NULL;
getMemory(str);
strcpy(str,"helloword");
cou
为什么
程序
会
崩溃
4.1.1 为什么
程序
会
崩溃
第4章
程序
崩溃
处理 有人说C语言是低级语言。这一部分是因为应用
程序
的内存管理大部分需要由
程序
员来实现。虽然这种方法非常有用,但是也给
程序
员增加了很多麻烦。 也有人说,C语言是相对较小且容易学习的语言。然而,只有不考虑标准C语言库的典型实现时,C语言才比较小。这个库相当庞大,很多
程序
员认为C语言是易用语言,那是因为他们还没有遇到指针。
程序
崩溃
的常见原因
常出现
程序
崩溃
的几种状况
程序
崩溃
对于
程序
猿来说,时经常出现的问题,如果你都没有出现过,那大佬快收下我的膝盖吧。
程序
崩溃
一般都发生在运行时期,而
崩溃
的原因一般都是
程序
猿的失误所导致的,在这里我就总结了这几种
程序
崩溃
的 读取未赋值的变量 这个错误一般是由于
程序
猿粗心大意,没有给变量初始化和赋值,导致该变量的值为脏值。 函数栈溢出 函数栈溢出一般是由两种情况引起的: 1、定义了一个体积太大的局部变量或...
qt关于
程序
崩溃
qt
程序
崩溃
最常见的应该是内存溢出,这是编程习惯造成的, 比如:用Qlist的时候,没有检查Qlist.size()的大小,直接就.at()了,这样就造成
程序
崩溃
。 还有就是指针为NULL,结果做为参数或者直接操作使用。也
会
造成
程序
崩溃
。 所以任何函数,只要带有参数。一定要对参数进行判断,特别是指针或者引用。 接下来介绍一种奇葩的
程序
崩溃
现象。 第一步,我们在ui界面上添加一个按钮Qpu
C++ 那些情况可能导致C++
程序
崩溃
内存泄漏:如果您的
程序
没有正确释放动态分配的内存,则可能导致内存泄漏,并且在内存用尽时可能
会
导致
程序
崩溃
。栈溢出:如果您在
程序
中递归调用函数,并且每次调用时向栈中添加大量数据,则可能导致栈溢出并且
程序
崩溃
。多线程竞争:如果您的
程序
中使用多个线程,并且这些线程之间存在竞争条件,则可能导致
程序
崩溃
。不正确的类型转换:如果您在
程序
中使用了不正确的类型转换,这可能导致
程序
崩溃
。重复删除同一个对象:如果您在
程序
中多次删除同一个对象,这可能导致
程序
崩溃
。
程序
崩溃
的原因及处理方法
初学C语言/C++
程序
的编写时,可能经常
会
遇到
程序
崩溃
的现象。一般来说,
程序
崩溃
是由于内存操作不当引发的。但是具体来讲,由哪些原因可以导致
程序
崩溃
呢?以及当
程序
崩溃
时该如何找到错误的位置呢?本教程即是讲解这个问题。 本文的视频讲解在 C/C++学习指南(补充篇)- 单步调试 的第7,8节课。 一、
程序
崩溃
的定位 先给出一个例子,该代码有致命bug,运行时将使
程序
崩溃
。在VC中输入以下代码: //...
C++ 语言
64,642
社区成员
250,580
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章