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的新手。
答案 0 :(得分:3)
您不能分配给数组,只能在定义上初始化它。
然而,你可以复制到一个数组:
strcpy(temp->next->name, temp->name);
strcpy(temp->name, element);
了解strcpy
here。