2012-09-27 4 views
-4

Я хотел бы выполнить тот же результат, что и с memcpy, без использования memcpy.Поиск способа выполнения memcpy без использования memcpy

Вот код, который я хотел бы изменить вне memcpy.

memcpy((char *) &(serv_addr.sin_addr.s_addr), 
    (char *)(server->h_addr), server->h_length); 

Есть ли способ сделать это?

+2

Почему вы пытаетесь это сделать? –

+0

memcpy вызывает ошибку, и для исправления мне придется переустановить ОС. – user1601045

+0

И ответ, конечно, «да». 'memcpy' - довольно тривиальная функция для переопределения себя. –

ответ

2

Вы можете перекодировать memcpy с помощью цикла for. Если компилятор предоставляет встроенные функции, вы можете их использовать. Gcc имеет __builtin_memcpy. Но самое главное, что вы, вероятно, ошибаетесь в этом, memcpy используется повсюду и не может быть ошибкой.

0

Просто дикая догадка: вы нашли этот код где-то в Интернете, и случайно отменили параметры в memcpy() вызова:

memcpy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, 
    server->h_length); 

Просто включите их обратно, ваша ошибка времени выполнения исчезнет.