LINUX.ORG.RU

обратится к массиву char как к DWORD'у


0

0

В Ячейки массива char, допустим [30]-[33] необходимо записать значение переменной типа DWORD.

если так:

buff_out[30] = DWORD_VAR

или так buff_out[30] = (DWORD)DWORD_VAR

то запись идёт только в 30-ю ячейку.

если так:

DWORD *ptr; ptr = &buff_out[30];

то компилятор выдает сообщение о несоответствии типов.

IDE: Borland C++.

Подскажите пример кода, пожалуйста.

★★
Ответ на: комментарий от ananas

ptr = &buff_out + 30;

Тоже самое:

E2034 Cannot convert 'char * *' to 'unsigned long *'

Zak ★★
() автор топика

unsigned long* ptr = reinterpret_cast<unsigned long*>( buff_out + 30 );
*ptr = your_unsigned_long_value;

devinull ★★
()

Сразу видно кто либит C а кто C++ :)

unsigned long* ptr = reinterpret_cast<unsigned long*>( buff_out + 30 );
*ptr = your_unsigned_long_value;

devinull (*) (14.07.2005 20:17:18)

*((DWORD *)(buff_out+30))=DWORD_VAR;

или

memcpy(buf_out+30, (void *)&DWORD_VAR, sizeof(DWORD_VAR));

fghj (*) (14.07.2005 16:34:19)

stalcker
()
Ответ на: комментарий от stalcker

>Сразу видно кто либит C а кто C++ :)

Высокие чувства здесь не причем, просто на каждом языке надо писать так, к в нем принято. То что предлагает fghj написано на СИ, хоть и компилируется С++.

devinull ★★
()

> IDE: Borland C++.

Оно еще живо?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.