проблема назначения указателя на структуру в C - PullRequest
0 голосов
/ 09 декабря 2018

Это ошибка, которую я получаю в своей программе:

[Error] cannot convert 'struct(*)[5] ' to 'struct* {aka Contact*}' in assignment

Когда я пытаюсь это сделать:

typedef struct Contact{
    char FName[];
    char LName[];
} cont;                                                                    

cont AddressBook[SIZE];                                                   

int main(){ 
    cont *adbook = (cont *)calloc (SIZE, sizeof(cont));
    adbook=&AddressBook
}

Как я могу помочьадрес моего массива структур для моего указателя ???

Надеюсь, вы мне поможете.

1 Ответ

0 голосов
/ 09 декабря 2018

Когда мы объявляем массивы, это имя переменной на самом деле уже является указателем, указывающим его адрес.

Поэтому, когда вы выполняете

adbook=&AddressBook;

Это все равно, что указывать точку на адресуказатель, который указывает на адресную книгу.Это неверное назначение.(Что-то вроде назначения Указателя на Указатель (**) для одного Указателя (*)).

Эту проблему легко решить, удалив оператор «&» при назначении указателя.Делая это:

adbook=AddressBook;

Это просто означало бы "Укажите местоположение AdressBook.

Счастливого кодирования!

...