Получение следующего предупреждающего сообщения:
database.c:15:19: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
ptr->LastName[0] = NULL;
^
database.c:16:26: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
ptr->FirstMiddleName[0] = NULL;
^
Я пытался использовать указатели несколькими разными способами, но я не очень хорошо их понимаю и не могу понять, как этого избежать.
#include <stdio.h>
int main() {
struct employee {
char LastName[30];
char FirstMiddleName[35];
float Salary;
int YearHired;
};
struct employee employees[20];
struct employee *ptr, person;
ptr = &person;
ptr->LastName[0] = NULL;
ptr->FirstMiddleName[0] = NULL;
ptr->Salary = -1;
ptr->YearHired = -1;
printf("%i", person.YearHired);
printf("%s", person.LastName[0]);
for(int i = 0; i < 20; i++) {
employees[i] = person;
//printf("%i\n", i);
}
printf("%c", employees[3].LastName[0]);
}
Я хотел бы инициализировать массив из 20 «сотрудников» с начальными значениями, чтобы числовые значения были установлены на -1, а строки содержали нулевой символ в качестве нулевого символа.Вместо этого я получаю вышеупомянутое предупреждение, и если я заменяю NULL-назначение буквой, на которой написано «Ошибка сегментации (ядро сброшено)».