C:从类型char分配给类型char[]时,类型不兼容* struct name{ 字符名[256]; 结构名称*下一步; }; 无效显示(结构名称*头){ 结构名称*ende=头部; int i=1; printf(“\n名称列表:\n”); while(ende!=NULL){ printf((%d)%s),i,ende->name); 结束=结束->下一步; i++; } } void bubblesort(结构名称*头){ 结构名称*block,*temp; 字符更改[256]=“”; for(block=head;block->next!=NULL;block=block->next){ 对于(临时=头部;临时->下一步!=NULL;临时=临时->下一步){ 如果(临时->下一步==NULL) 打破 如果(临时->下一步->名称[0]名称[0]){ char*element=temp->next->name; printf(“元素:%s”,元素); 临时->下一步->名称=临时->名称; temp->name=元素; } } } }

C:从类型char分配给类型char[]时,类型不兼容* struct name{ 字符名[256]; 结构名称*下一步; }; 无效显示(结构名称*头){ 结构名称*ende=头部; int i=1; printf(“\n名称列表:\n”); while(ende!=NULL){ printf((%d)%s),i,ende->name); 结束=结束->下一步; i++; } } void bubblesort(结构名称*头){ 结构名称*block,*temp; 字符更改[256]=“”; for(block=head;block->next!=NULL;block=block->next){ 对于(临时=头部;临时->下一步!=NULL;临时=临时->下一步){ 如果(临时->下一步==NULL) 打破 如果(临时->下一步->名称[0]名称[0]){ char*element=temp->next->name; printf(“元素:%s”,元素); 临时->下一步->名称=临时->名称; temp->name=元素; } } } },c,C,我不知道为什么当我想在temp->next->name中从temp->name写入时会出现编译器错误!有人能解释我为什么会出现以下错误:“当从char*分配给char[256]类型时,类型不兼容”,以及我如何解决我的问题吗? 我是C的新手。您不能分配给数组,只能根据定义对其进行初始化 但是,您可以复制到阵列: struct name { char name[256]; struct name* next; }; void Display(struct name *head) {

我不知道为什么当我想在temp->next->name中从temp->name写入时会出现编译器错误!有人能解释我为什么会出现以下错误:“当从char*分配给char[256]类型时,类型不兼容”,以及我如何解决我的问题吗?
我是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;
            }
        }
    }
}

阅读。

您不能分配给数组,只能根据定义对其进行初始化

但是,您可以复制到阵列:

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

阅读。

您不能分配给数组,只能根据定义对其进行初始化

但是,您可以复制到阵列:

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

阅读。

您不能分配给数组,只能根据定义对其进行初始化

但是,您可以复制到阵列:

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;
            }
        }
    }
}
了解