2013-11-10 3 views
1

Я столкнулся с проблемой с typedefs.Несовместимые типы при назначении типа 'typedef из типа' uint8_t '

typedef char cool_array_t[ARRAY_SIZE]; 

cool_array_t* out; 
// do stuff with out 
cool_array_t test = *out; 

Ошибка я получаю следующее:

incompatible types when assigning to type ‘cool_array_t’ from type ‘char *’

Я попытался изгонял к cool_array_t, но он дает следующее сообщение об ошибке:

error: cast specifies array type

+0

'memcpy (& test, out, sizeof test);' – chux

ответ

2

Вы не можете присвоить массивы. Вам необходимо использовать memcpy или обертывание struct.

struct cool_array_t { 
    char data[ARRAY_SIZE]; 
}; 

struct cool_array_t* out; 
// do stuff with out 
struct cool_array_t test = *out; 
+0

+1 для 'struct'. – chux

Смежные вопросы