Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
1 / 1 / 2
Регистрация: 29.09.2016
Сообщений: 111
1

Memcpy и копирование структур с указателями

30.11.2016, 18:56. Показов 6384. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.

Есть структура:
C++
1
2
3
4
5
6
7
8
struct ClientInfo
{
    const char* szUid;
    const char* szName;
    const char* szSurname;
    const char* szDate;
    const char* szMoney;
};
Тут я выделяю новый массив структур, копирую, старый удаляю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ClientInfo* AddStruct(ClientInfo* pObj, const size_t& recordsCount, size_t& arrSize)
{
    arrSize = 0 == arrSize ? 50 : arrSize * 2;
 
    ClientInfo* tempObj = new ClientInfo[arrSize];
 
    if (pObj != nullptr && recordsCount > 0)
    {
        memcpy(tempObj, pObj, recordsCount * sizeof(ClientInfo));
 
        delete[] pObj;
    }
 
    return tempObj;
}
в memcpy копируются указатели.

Как сделать так, чтобы копировались не указатели, а то, на что указывают указатели (используя memcpy)?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2016, 18:56
Ответы с готовыми решениями:

Копирование массива из структуры с использованием memcpy()
Здравствуйте. Помогите с задачкой. Есть структура. Произвольная. И массив. Например: typedef...

Memcpy, buffer overflow. Может ли возникнуть ошибка в функции memcpy
Бывает ли на практике такое, что код #define size 1000; // some value int x, y; /* ... */...

Работа с указателями на массив структур
Доброе время суток! Возникла такая проблема: после запуска программы выходит ошибка *** stack...

Копирование структур
Есть структура struct GPSPoint { bool Full;//если записана и точность 1 bool...

1
18842 / 9841 / 2408
Регистрация: 30.01.2014
Сообщений: 17,284
30.11.2016, 19:08 2
Цитата Сообщение от ChipChop Посмотреть сообщение
Как сделать так, чтобы копировались не указатели, а то, на что указывают указатели (используя memcpy)?
Копировать через memcpy то, на что указывают указатели (при этом, естественно, надо знать размер того, на что они указывают и выделить память, конечно же).

Добавлено через 2 минуты
Или ты хочешь, чтобы memcpy магическим образом разобралась, что нужно выделить память, пройти по указателям и скопировать все, что по ним находится?
memcpy просто копирует заданный блок памяти, ничего больше: байты из одного места, копируются в другое.
Для умного и сложного копирования есть конструкторы копирования.
1
30.11.2016, 19:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2016, 19:08
Помогаю со студенческими работами здесь

Копирование массива структур
Подскажите пожалуйста, как скопировать массив структур. К примеру альфа скопировать в бета ...

Копирование в массив структур
Добрый день , программный код должен копировать вывод структуры stat в массив класса , и выводить...

Копирование одного динамического массива структур в другой
есть структура struct Katalog{ int num_tov; int date; }; создаю динамический массив...

ArrayList, скорость копирования больших структур, копирование по ссылке
Добрый день, Возникла следующая ситуация, в программе есть ArrauList на базе сложной и громосткой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru