Сегментация C ++. Структуры

Я только начинаю изучать c ++, и это первый фрагмент кода, который я сделал со структурами, но когда я запускаю его, я получаю ошибку сегментации. Я собираю его в Linux с G ++. Может кто-нибудь увидеть, где ошибка, я понимаю, что вызывает ошибку сегментации, но я не могу увидеть, что вызывает эту ошибку.

Вся помощь приветствуется.

#include <iostream>
using namespace std;

struct people
{
string forename;
string lastname;
int age;
};

int main()
{
int num_numbers; //ask the user how many numbers the sequence will contain
cout << "Enter how people will be entered : \n";
cin >> num_numbers; // stores the user input

people peoples[num_numbers];

for(int x = 0; x < num_numbers; x++)
{
cout<<"Enter forename "<< x <<":\n";
cin >> peoples[x].forename;
cout<<"Enter surname "<< x <<":\n";
cin >> peoples[x].lastname;
cout<<"Enter age "<< x <<":\n";
cin >> peoples[x].age;
}

for(int i = 0; i<= num_numbers; i++)
{
cout << peoples[i].forename;

cout << peoples[i].lastname;

cout << peoples[i].age;
}

//delete[] peoples;
}

1

Решение

Во-первых, это:

people peoples[num_numbers];

Это нестандартное расширение. Во-вторых, здесь:

for(int i = 0; i<= num_numbers; i++)
//             ^^^^^^^^^^^^^^^

Вы выходите за пределы, потому что массив с размером num_numbers имеет индексы из 0 в num_numbers - 1,

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]