程序出现段错误

nonego nonego 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一个c++primer的习题,4.35题。运行时是段错误,大家看看是怎么回事,用gdb调试可以看出是到最后cout时出现段错误
题目要求是输入几个字符串,然后用字符数组保存,然后把字符数组的指针存在一个字符指针数组里。
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
string s;
vector<string> vec;
while(cin>>s)
{
vec.push_back(s);
}
char **str=new char*[vec.size()];
for(vector<string>::iterator iter=vec.begin(),end=vec.end()
;iter!=end;iter++)
{
char *ss=new char[(*iter).size()+1];
for(string::size_type i=0;i!=((*iter).size());i++)
{
ss[i]=(*iter)[i];
}
ss[(*iter).size()]='\0';
*str=ss;
str++;
}
int size=vec.size();
for(int i=0;i<size;i++)
{
cout<<str[i]<<"";
// delete [] str[i];
}
cout<<endl;
delete [] str;
return 0;
}
...全文

相关推荐

qt的QTcpSocket在对端关闭后,程序就会崩溃(段错误).zip

在描述的问题中,当QTcpSocket的对端关闭连接时,我们的程序可能会发生段错误。段错误通常是由于程序试图访问非法内存地址,这可能是因为以下原因:1.

lj_70596

qt c++应用程序 进程崩溃 用于分析进程崩溃在哪一句代码,便于定位段错误,修改程序bug

在软件开发过程中,尤其是在使用C++和Qt框架开发应用程序时,经常需要面对进程崩溃问题。进程崩溃通常是由于程序中存在段错误或其它运行时错误,导致进程意外终止。

战斗强

qt c++应用程序进程崩溃后生成dmp文件,用于分析进程崩溃在哪一句代码,便于定位段错误,修改程序bug,不会自动拉起进程

当使用Qt C++开发应用程序时,程序可能会遇到各种运行时错误,其中比较严重的是段错误,也称为访问违规。段错误通常发生在程序试图访问其内存地址空间中未分配或不允许访问的区域时。

战斗强

Linux下的段错误产生的原因及调试方法

#### 一、段错误产生的原因1. **访问空指针**:当程序中的某个指针被设置为NULL或0,并且程序员在未检查其有效性的情况下就进行解引用操作时,就会触发段错误。

zdlsir

C语言段错误 总结 段错误整理

例如,如果程序在访问数组时越界访问,这可能会导致程序崩溃或出现不可预料的结果。此外,段错误还可能会带来安全隐患。如果攻击者可以控制程序的输入,他们可能会利用段错误来访问敏感信息或执行恶意代码。

maohuidong
评论 3
收藏 已收藏
分享
返回顶部
nonego
C++ 语言 65,214 成员 250,514 内容