я пытаюсь динамически выделять массив структуры в других структурах здесь сегмент кодадинамического выделения массива структуры указателей
Я не получаю никаких синтаксические ошибок, но я получаю ошибку сегментации, когда я пытаюсь введите 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);
}
какой ужасный микс из C и C++ – 2013-03-08 17:20:54
есть причина, почему вы используете 'malloc' вместо' new'? Как правило, если вы программируете на C++, вы хотите использовать C++. – Cornstalks
Начните с того, что вы пишете C или C++. Если вы пишете C, не используйте 'cin' или' cout' и не возвращайте return из 'malloc'. Если вы пишете C++, не используйте 'malloc' вообще и используйте' std :: vector' вместо вашей домашней прокатки. –