Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 November 26

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
Олег
void deleteStudent(student * & students, int & size, int i) {
 student * tmp = 0;
 if(size > 1) tmp = new student[size-1];
 size--;
 for(int j = 0; j < size; j++)
   tmp[j] = students[j<i?j:j+1];
 if (size) delete [] students;
 else delete students;
 students = tmp;
}
а что ты пытаешься сделать?
источник

О

Олег in IT KPI C/C++ ХВ (не UB)
Переслано от Олег
удалить элемент
источник

О

Олег in IT KPI C/C++ ХВ (не UB)
Переслано от Олег
массива
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
порядок важен?
источник

О

Олег in IT KPI C/C++ ХВ (не UB)
да
источник

A

András in IT KPI C/C++ ХВ (не UB)
просто перезапиши наступні елементи на місце цього
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
ок, найди его, запиши в тмп
потом сделай сдвиг и удали тмп
источник

О

Олег in IT KPI C/C++ ХВ (не UB)
я так и делаю
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
при этом помни о кепесити
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
чтото не видно по коду
источник

О

Олег in IT KPI C/C++ ХВ (не UB)
free(): invalid pointer
Aborted (core dumped)
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
там чтото страшное
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Олег
void deleteStudent(student * & students, int & size, int i) {
 student * tmp = 0;
 if(size > 1) tmp = new student[size-1];
 size--;
 for(int j = 0; j < size; j++)
   tmp[j] = students[j<i?j:j+1];
 if (size) delete [] students;
 else delete students;
 students = tmp;
}
Почему if (size) после цикла?
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Типа
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Если размер нулевой?
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
или отрицательный
источник

О

Олег in IT KPI C/C++ ХВ (не UB)
да если был 1 елемент
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Олег
да если был 1 елемент
Тогда почему проверка после цикла?
источник

О

Олег in IT KPI C/C++ ХВ (не UB)
то удаляем без []
источник

TL

Tony Lutsenko in IT KPI C/C++ ХВ (не UB)
Сделай её снаружи
источник