@kentos

Почему крашится сортировка?

Почему может крашится сортировка?

void doSort()
{
   unsigned int StudentsCount = 0;
   Student * students = new Student[StudentsCount];
   int temp;
   float ResultMark;

   for (int i = 0; i < StudentsCount - 1; i++)
   {
      for (int j = 0; j < StudentsCount - 1; j++)
      {
         if (students[j].ResultMark > students[j + 1].ResultMark)
         {
            temp = students[j].ResultMark;
            students[j].ResultMark = students[j + 1].ResultMark;
            students[j + 1].ResultMark = temp;
         }
      }
   }
   
   for (int j = 0; j<StudentsCount; j++)
   {
      cout<<"Rezyltat sortirovki"<<students[j].ResultMark<<" ";
   }
   
   cout<<endl;
}

5cfed6d67c117615518207.jpeg
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега C++
software engineer
У вас пустой массив.
Никаких проверок на то, что массив пустой, и вы сразу пытаетесь обращаться к его элементам.
Ответ написан
Комментировать
myjcom
@myjcom Куратор тега C++
Дело даже не в том, что массив "неправильный"

Program received signal SIGSEGV, Segmentation fault.
if (students[j].ResultMark > students[j + 1].ResultMark)

kentos,
А теперь возник вопрос
unsigned int StudentsCount = 0;
чему равно (StudentsCount - 1)?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы