Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с memcpy функцией 
V
    Опции темы
Ak47black
  Дата 22.2.2010, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



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

char buffer[20];
argv[4] - аргумент командной строки

нужно скопировать в память адрес который начинается с buffer[2] из argv[4], при этом значение сколько байт нужно скопировать находится по buffer[1].
Вот так попробовал
Код

memcpy((void*)buffer[2], argv[4], (unsigned int)buffer[1]);

получаю EAccessViolation
PM MAIL   Вверх
Alexeis
Дата 22.2.2010, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 4
Всего: 459



Ak47black, адрес не может храниться в одном байте. Что-то напутал.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
mes
Дата 22.2.2010, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Alexeis @  22.2.2010,  22:24 Найти цитируемый пост)
адрес не может храниться в одном байте. 


Цитата(Ak47black @  22.2.2010,  21:52 Найти цитируемый пост)
в память адрес который начинается с buffer[2] 




--------------------
PM MAIL WWW   Вверх
Alexeis
Дата 22.2.2010, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 4
Всего: 459



mes, мож я чего не понимаю, но (void*)buffer[2] это же байт приведенный к указателю.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
mes
Дата 23.2.2010, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Alexeis @  22.2.2010,  22:44 Найти цитируемый пост)
но (void*)buffer[2] это же байт приведенный к указателю. 

угу, в примере выражено, не то что спрашивается.. думаю требуется
Код

*(void**)&test[2]

но мое уточнение относилось не к примеру smile
хотя я согласен что задание не полное, потому как не указано кол-во отведенных байт (размер), а без этого дать правильный ответ проблематично.




Это сообщение отредактировал(а) mes - 23.2.2010, 00:22


--------------------
PM MAIL WWW   Вверх
GoldFinch
Дата 23.2.2010, 00:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



memcpy(buffer+2, argv[4], (unsigned int)buffer[1]);
PM MAIL ICQ   Вверх
Ak47black
Дата 23.2.2010, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



Код

memcpy(buffer+2, argv[4], (unsigned int)buffer[1]); 

Работает!  smile 
Эххх.. надо по проще смотреть на вещи оказывается.
Спасибо Вам за помощь.

Добавлено @ 01:05
Цитата

Ak47black, адрес не может храниться в одном байте. Что-то напутал. 

smile 

Это сообщение отредактировал(а) Ak47black - 23.2.2010, 01:05
PM MAIL   Вверх
bsa
Дата 24.2.2010, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Ak47black, если не секрет, зачем пытаешься создать паскалевский string? Может лучше использовать std::string, он более универсален и способен хранить строки значительно превышающие 255 символов.
 
PM   Вверх
Ak47black
Дата 24.2.2010, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



Цитата

Ak47black, если не секрет, зачем пытаешься создать паскалевский string? 

Моя старая привычка, которая появилась от Delphi  smile 
PM MAIL   Вверх
bsa
Дата 24.2.2010, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(Ak47black @  24.2.2010,  16:52 Найти цитируемый пост)
Моя старая привычка, которая появилась от Delphi
Избавляйся от нее как можно скорее.

PM   Вверх
Ak47black
Дата 24.2.2010, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



bsa,  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.