当我尝试编译以下代码时,出现错误
test.c: In function 'main':
test.c:16: error: incompatible types in assignment
代码是..
#include <stdio.h>
#include <ctype.h>
#include <string.h>
typedef struct {
char name[20];
struct planet* next;
} planet;
int main(int argc, char *argv[])
{
planet *p, *start, *first, *second, *third;
strcpy(start->name, "Suthan");
start->next = *first;
}
最佳答案
1) 为您的指针分配一些内存。
planet *start, *first; these are uninitialized pointers.
start->next // that's dereferencing an uninitialized pointer.
2) 您正在将 start->next(指向行星的指针)设置为 first
的引用指针。这就是你错误的根源。
start->next = *first; // should be = first;
3) 移动 typedef 名称以消除您看到的警告。
typedef struct planet{
char name[20];
struct planet* next;
};
关于c编程,链表错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13808146/