Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с кодом на C++

Isturfore Ученик (215), на голосовании 4 месяца назад
На комментарии не обращайте внимания, проблема что я хочу добавить новый элемент в динамический массив, но он либо неправильно его выводит, либо неправильно его заполняет, ну вы поймете, https://text-host.ru/bez-zagolovka-10746
Голосование за лучший ответ
Татьяна Просветленный (36384) 5 месяцев назад
Для того чтобы корректно добавить элемент в динамический массив, необходимо правильно управлять памятью и корректно переносить элементы массива. Только исправленная версия функции Dobavit_Delo и изменения в основном коде:
 string* Dobavit_Delo(string *arr, string Vvod, int index, int size)  
{
string* arr3 = new string[size]; // Новый массив на 1 больше
for (int i = 0, j = 0; i < size - 1; ++i, ++j)
{
if (i == index)
{
arr3[j] = Vvod;
++j;
}
arr3[j] = arr[i];
}
if (index == size - 1)
{
arr3[size - 1] = Vvod;
}
delete[] arr; // Удаляем старый массив
return arr3; // Возвращаем новый массив
}

Основной код скину в виде ссылки:
Скачать

Основные изменения:

Исправлена логика функции Dobavit_Delo для правильного добавления элемента в массив.
В основном коде используется возвращаемый новый массив из Dobavit_Delo и обновляется размер массива после добавления нового элемента.
Похожие вопросы