首页 文章

在C中为结构分配指针的问题

提问于
浏览
0

这是我在程序中遇到的错误:

[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 回答

  • 1

    当我们声明数组时,它的变量名实际上已经是指向它的地址的指针 .

    所以当你表演时

    adbook=&AddressBook;
    

    这就像是指向指向AddressBook的指针的地址 . 这是无效的分配 . (有点像将指针指向指针(**)指向单个指针(*)) .

    这可以通过在分配指针时删除“&”运算符来轻松解决 . 进行中 :

    adbook=AddressBook;
    

    这只是意味着“指向AdressBook的位置 .

    快乐的编码!

相关问题