Форум программистов, компьютерный форум CyberForum.ru

Не правильная работа memcpy с вектором - параметром функции - C++

Восстановить пароль Регистрация
 
DKOI
 Аватар для DKOI
24 / 24 / 1
Регистрация: 08.09.2010
Сообщений: 136
28.02.2011, 13:11     Не правильная работа memcpy с вектором - параметром функции #1
Есть функция

C++
1
2
3
4
5
6
7
8
int
InitX( CUSTOMVERTEX InVertexes[], int VertexCount )
{
    //...
    void* pBV;
    memcpy(pBV, &InVertexes, sizeof(InVertexes));
    //...
}
В основной программе описан вектор
C++
1
CUSTOMVERTEX Vertexes[10]; //(CUSTOMVERTEX - стурктура)
В программе вызывается
C++
1
InitX( Vertexes, 10 );
Просматривая дебагером обнаружил, что в *pDV лежит не Vertexes, как то ожидается, а какая-то муть.
Если использовать
C++
1
memcpy(pBV, &InVertexes[0], sizeof(InVertexes));
то правильно копируется ровно первое поле нулевого вектора, а дальше то же самое что и в первом варианте. Однако если InVertexes описывается внутри функции или глобально, то в *pDV лежит ровно то, что ожидается. Подскажите пожалуйста, как справиться с такой бедой. Вариант с глобальным вектором - не применим, так как функция должна быть независимой.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2011, 13:11     Не правильная работа memcpy с вектором - параметром функции
Посмотрите здесь:

C++ Насчёт функции memcpy()
C++ Работа с вектором
Работа с вектором C++
C++ Ипользование const с указателем, параметром функции
C++ Работа с вектором из класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bobrovskii
57 / 57 / 3
Регистрация: 22.01.2011
Сообщений: 187
28.02.2011, 17:38     Не правильная работа memcpy с вектором - параметром функции #2
DKOI,
C
1
memcpy(pBV, &InVertexes[0], sizeof(CUSTOMVERTEX) * VertexCount);
DKOI
 Аватар для DKOI
24 / 24 / 1
Регистрация: 08.09.2010
Сообщений: 136
28.02.2011, 18:41  [ТС]     Не правильная работа memcpy с вектором - параметром функции #3
Спасибо!
bobrovskii
57 / 57 / 3
Регистрация: 22.01.2011
Сообщений: 187
28.02.2011, 18:45     Не правильная работа memcpy с вектором - параметром функции #4
Рости Большой
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
01.03.2011, 03:18     Не правильная работа memcpy с вектором - параметром функции #5
C++
1
2
    void* pBV;
    memcpy(pBV, &InVertexes, sizeof(InVertexes));
запись куда производится ?
Yandex
Объявления
01.03.2011, 03:18     Не правильная работа memcpy с вектором - параметром функции
Ответ Создать тему
Опции темы

Текущее время: 20:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru