2013-11-08 4 views
0

пусть говорят, что я эта структураНесовместимые типов при назначении символьного типа [] от типа междунара

struct person { 
    char last_name [10]; 
}; 
typedef struct person Person; 

И я заполняю эту структуру-объект с определенным именем

Person p; 
Person *ptrPerson = &p; 
strcpy(ptrPerson->last_name, "Johnson"); 

А потом я поставил это имя в массиве типа Лицо ... положить в первую позицию

Person queue[10]; 
queue[0] = *ptrPerson; 

Пока все хорошо.

queue[0].last_name = "-"; 

Я получаю следующее сообщение об ошибке компиляции::

ошибка: несовместимые типы при назначении типа там вместо Но как я аннулирует arraypostion после этого - - или, по крайней мере, поставить символ «» «символ [10]» из «межд» типа

+0

Где указано переменная first_name? –

+0

'first_name' не является членом' Person' – Kunal

+0

Я исправил это! –

ответ

2

queue[0].last_name = "-"; пытается присвоить адрес, возвращаемый "-".

Использование strcpy (queue[0].last_name ,"-");

1

Либо отслеживать, какие используются записи и которые являются «свободными». Или, если вы хотите очистить всю структуру, которую вы можете использовать, например. memset. Или, чтобы скопировать строку, которую вы уже используете, strcpy в одном месте, почему бы вам не использовать ее на другом?

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