Incompatible types char and char* - C (СИ)

Формулировка задачи:

Привет. В процессе ознакомления с языком Си и в частности со структурами, на моем пути встретилась такая ошибка.
Кликните здесь для просмотра всего текста
incompatible types char and char*
Ошибка возникает в следующем коде:
struct st
{
    int i;
    char ch[255];
};
int main(void)
{
    struct st arr[2];
    
    arr[0].ch="Ivanov";
Пытался использовать указатель и функцию malloc
struct st
{
    int i;
    char *ch;
};
int main(void)
{
    struct st arr[2];
    arr[0].ch=(char*) malloc(7);
    arr[0].ch="Ivanov";
В итоге компилятор об ошибке больше не сообщает но сама программа во время выполнения вылетает в appcrash; -Заранее извиняюсь если вопрос глупый.

Код к задаче: «Incompatible types char and char* - C (СИ)»

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);
}

5   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ