C++代码编译中的分段错误(堆芯错误)消息 我是C++新手,尝试编译简单的C++程序。使用向量 #include <iostream> #include<vector> #include<string.h> #include<stdlib.h> #include<stdio.h> #define BUFSIZE 100 using namespace std; typedef struct AA{ int a; std::string a_str; }A; typedef struct BB{ int b; std::string b_str; vector<AA> Aobj; }B; int main() { B bobj; bobj.Aobj[0].a=4; bobj.Aobj[0].a_str="DICOM"; bobj.b_str="LDAP"; bobj.b_str="DICOM"; size_t ipos; ipos=bobj.Aobj[0].a_str.find("COM"); if(ipos!=string::npos) cout<<"String Found Successfully...."; else cout<<"String Not Found ...."; return 0; }

C++代码编译中的分段错误(堆芯错误)消息 我是C++新手,尝试编译简单的C++程序。使用向量 #include <iostream> #include<vector> #include<string.h> #include<stdlib.h> #include<stdio.h> #define BUFSIZE 100 using namespace std; typedef struct AA{ int a; std::string a_str; }A; typedef struct BB{ int b; std::string b_str; vector<AA> Aobj; }B; int main() { B bobj; bobj.Aobj[0].a=4; bobj.Aobj[0].a_str="DICOM"; bobj.b_str="LDAP"; bobj.b_str="DICOM"; size_t ipos; ipos=bobj.Aobj[0].a_str.find("COM"); if(ipos!=string::npos) cout<<"String Found Successfully...."; else cout<<"String Not Found ...."; return 0; },c++,linux,C++,Linux,当我编译程序时,它会显示一条错误消息 分段故障堆芯 使用Ubuntu OS < P>添加B.的构造函数,C++也不需要这样的结构类型DEFS。简单地 struct B { int b; std::string b_str; std::vector<A> Aobj; B() : Aobj(std::vector<A>(1)) {} }; 你需要做的是首先创建一个AA类型的对象,然后把它推到B的向量上 AA aa; aa.a = 4; aa

当我编译程序时,它会显示一条错误消息 分段故障堆芯 使用Ubuntu OS

< P>添加B.的构造函数,C++也不需要这样的结构类型DEFS。简单地

struct B {
    int b;
    std::string b_str;
    std::vector<A> Aobj;

    B() : Aobj(std::vector<A>(1)) {}
};

你需要做的是首先创建一个AA类型的对象,然后把它推到B的向量上

AA aa;
aa.a = 4;
aa.a_str = "hello world";
bobj.Aobj.push_back(aa);

编译器不应该以这种方式中断:您确定是编译器(例如g++)显示消息,而不是运行您的错误程序吗?