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

Скопировать массив частично? - C++

Восстановить пароль Регистрация
 
vb_lord
2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
07.12.2011, 03:58     Скопировать массив частично? #1
Скопировать одномерный массив типа double целиком можно c помощью функции memcpy из memory.h:
C++
1
memcpy(first_array, second_array, sizeof(second_array));
А как скопировать в начало первого не весь второй массив, а
все элементы кроме нулевого?

Я понимаю так:
Количество байт для третьего параметра будет: sizeof(second_array)-sizeof(double).
Первый параметр остается: first_array.
Второй параметр станет: second_array+sizeof(double).

Вызов функции будет выглядеть так:
C++
1
memcpy(first_array, second_array+sizeof(double), sizeof(second_array)-sizeof(double));
Верно ли это?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2011, 03:58     Скопировать массив частично?
Посмотрите здесь:

C++ Как скопировать целочисленный массив?
C++ Скопировать двумерный массив
C++ Скопировать массив байт в структуру
Скопировать массив а в начало массива b C++
C++ Как скопировать массив?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.12.2011, 04:09     Скопировать массив частично? #2
Цитата Сообщение от vb_lord Посмотреть сообщение
А как скопировать в начало первого не весь второй массив, а
все элементы кроме нулевого
C++
1
memcpy(first_array, second_array + 1, sizeof(second_array) - sizeof(double));
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
07.12.2011, 05:30     Скопировать массив частично? #3
C
1
sizeof(second_array)
это если массив статический, а если динамический то
C
1
sizeof(type_t) * size
где size - размер массива
vb_lord
2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
07.12.2011, 12:09  [ТС]     Скопировать массив частично? #4
Цитата Сообщение от alkagolik Посмотреть сообщение
C
1
sizeof(second_array)
это если массив статический, а если динамический то
C
1
sizeof(type_t) * size
где size - размер массива
Выделене памяти происходит с помощью оператора new. Это я так понимаю динамический массив. Что такое type_t и size - в моем коде, приведенном выше, нет таких идентификаторов? Догадываюсь, что вместо type_t надо написать double, а вместо size - ту переменную, которая использовалась с оператором new, т.е. число элементов - правильно?
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
07.12.2011, 12:20     Скопировать массив частично? #5
Цитата Сообщение от vb_lord Посмотреть сообщение
Догадываюсь, что вместо type_t надо написать double, а вместо size - ту переменную, которая использовалась с оператором new, т.е. число элементов - правильно?
правильно
Yandex
Объявления
07.12.2011, 12:20     Скопировать массив частично?
Ответ Создать тему
Опции темы

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