Incompatible types char and char* - C (СИ)
Формулировка задачи:
Привет. В процессе ознакомления с языком Си и в частности со
Ошибка возникает в следующем коде:
Пытался использовать указатель и функцию malloc
В итоге компилятор об ошибке больше не сообщает но сама программа во время выполнения вылетает в appcrash;
-Заранее извиняюсь если вопрос глупый.
структурами
, на моем пути встретилась такая ошибка.
incompatible types char and char*
Листинг программы
- struct st
- {
- int i;
- char ch[255];
- };
- int main(void)
- {
- struct st arr[2];
- arr[0].ch="Ivanov";
Листинг программы
- struct st
- {
- int i;
- char *ch;
- };
- int main(void)
- {
- struct st arr[2];
- arr[0].ch=(char*) malloc(7);
- arr[0].ch="Ivanov";
Решение задачи: «Incompatible types char and char*»
textual
Листинг программы
- struct st
- {
- long int i;
- char ch[];
- };
- int main(void)
- {
- setlocale (LC_ALL, "");
- struct st arr[2];
- strcpy(arr[0].ch, "Ю.Гагарин");
- arr[0].i=1961;
- strcpy(arr[1].ch, "Г.Титов");
- arr[1].i=1961;
- strcpy(arr[2].ch, "Д.Гленн");
- arr[2].i=1962;
- int i;
- for(i=0; i<3; i++)
- {
- if(arr[i].i>1961)
- {
- printf("%s\n",arr[i].ch);
- printf("%i\n",arr[i].i);
- }
- }
- return (0);
- }
Объяснение кода листинга программы
- В начале кода объявляется структура
st
, которая содержит два поля:i
типаlong int
иch
типаchar[]
. - В функции
main
создается массив структурarr
размером 2, который заполняется данными о космонавтах. - В цикле
for
происходит проверка значения поляi
каждой структуры массиваarr
. Если значение больше 1961, то выводятся значения полейch
иi
этой структуры. - В конце функции
main
возвращается значение 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д