Да, все в порядке. malloc
вернет вам соответственно выровненную память. Однако просто присвоить произвольный указатель void *
переменной small_structure *
- , а не ОК. Это означает, что ваш конкретный пример в порядке, но что-то вроде:
int function(void *p)
{
small_structure *s = p;
return s->data[0];
}
нет! Если p
неправильно выровнен для указателя small_structure *
, вы только что вызвали неопределенное поведение.