Чтение недопустимых данных
Уже пару часов ломаю голову над этой ошибкой, и совсем не понимаю в чём конкретно она заключается. "C6385: Чтение недопустимых данных из "temp": доступный для чтения объём равен "size"*4, однако считать можно только "8" байт" Реализовать хотел функцию для добавления указателя на структуру после указанного индекса
struct Performer {
char name[10];
char surname[10];
};
void addAfter(Performer** array, int array_size, Performer performer, int index_to_add_after)
{
int size = array_size + 1;
Performer** temp = new Performer * [size];
for (int i = 0; i < size; i++) {
temp[i] = new Performer;
}
*temp[size - 1] = performer;
for (int i = 0; i < array_size; i++) {
*temp[i] = *array[i]; // Здесь VS показывает эту ошибку
}
for (int i = size - 1; i > index_to_add_after; i--) {
swap(array, i - 1, i);
}
delete[] array;
array = new Performer * [size];
for (int i = 0; i < size; i++) {
array[i] = new Performer;
*array[i] = *temp[i];
}
delete[] temp;
}
Заранее большое спасибо за содействие
edit: Решение нашёл, всё работает как и хотелось
void addAfter(Performer** array, int array_size, Performer performer, int index_to_add_after)
{
array[array_size] = new Performer;
*array[array_size] = performer;
for (int i = array_size; i > index_to_add_after; i++) {
swap(array, i - 1, i);
}
}
Ответы (1 шт):
Автор решения: CaptainMars
→ Ссылка
Я нашёл решение проблемы, хотелось бы закрыть вопрос
void addAfter(Performer** array, int array_size, Performer performer, int index_to_add_after)
{
array[array_size] = new Performer;
*array[array_size] = performer;
for (int i = array_size; i > index_to_add_after; i++) {
swap(array, i - 1, i);
}
}
Не знаю как до этого написал столь глупый код, видимо слишком устал и забыл что массив то я делал динамический...