C:从类型char *分配类型char []时不兼容的类型

时间:2014-03-11 19:38:57

标签: c

struct name {
    char name[256];
    struct name* next;
};

void Display(struct name *head) {
    struct name *ende = head; 
    int i = 1;
    printf("\nList of names:\n");
    while(ende != NULL) {
        printf("(%d) %s", i, ende->name);
        ende = ende->next;
        i++;
    }
}

void bubblesort(struct name *head) {
    struct name *block,*temp;
    char change[256] = "";
    for(block = head; block->next != NULL; block = block->next) {
        for(temp = head; temp->next != NULL; temp = temp->next) {
            if(temp->next == NULL)
                break;
            if(temp->next->name[0] < temp->name[0]) {
                char *element = temp->next->name;
                printf("ELEMENT: %s", element);
                temp->next->name = temp->name;
                temp->name = element;
            }
        }
    }
}

当我想在temp-&gt; next-&gt; name中写入temp-&gt; name时,我不知道为什么会出现编译器错误!任何人都可以向我解释为什么我得到以下错误:“从char *分配类型char [256]时不兼容的类型”以及我如何解决我的问题? 我是C的新手。

1 个答案:

答案 0 :(得分:3)

您不能分配给数组,只能在定义上初始化它。

然而,你可以复制到一个数组:

strcpy(temp->next->name, temp->name);
strcpy(temp->name, element);

了解strcpy here