LINUX.ORG.RU

Можно, только сегфолт словишь. Нужно malloc'ом память выделить:

void *buf = malloc(sizeof(unsigned long) + sizeof(unsigned short));

И не забыть потом освободить с помощью free(buf);

С другой стороны, зачем так делать, если можно описать структуру?

gentoo_root ★★★★★
()

А кто будет buf инициализировать?

Тип buf уже описан (char*). Что означает «расчитывает тип»?

На default (x86) архитектуре будет работать. В общем случае buf может быть инициализирован на невыровненное место и в этом случае будут глюки для других архитектур.

io ★★
()
Ответ на: комментарий от gentoo_root

gentoo_root

С другой стороны, зачем так делать, если можно описать структуру?

Я хз, пытаюсь разобраться в чужом коде.

хм т.е. получается где-то должна быть структура.

andreykyz ★★
() автор топика
Ответ на: комментарий от andreykyz

Может и есть где-то, а может и нет. Может просто область памяти выделяется и используется, как программисту заблагорассудится.

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

Всем спасибо за ответы. Нашёл всё-таки:

if( !(buf = malloc(size)) )

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