我正在尝试在另一个结构中动态分配结构数组这里是代码段
我没有收到任何语法错误,但是一旦我尝试输入 str1 就会出现分段错误
有人可以解释为什么会出现分段错误,以及在这种情况下动态分配内存中会发生什么
struct A {
string str1;
string str2;
}
struct B {
int count;
A* A_array;
}
void GetB (B** b)
{
*b = (B*) malloc(1*sizeof(B));
cout << "Enter count";
cin >> (**b).count;
(**b).A_array = (A*) malloc((**b).count*sizeof(A));
cout << "Enter str1";
cin >> (**b).A_array[0].str1;
cout << "Enter str2";
cin >> (**b).A_array[0].str2;
}
int main(){
B* b;
GetB(&b);
}