我有两个结构,一个是链表。
typedef struct Mark{
int people;
Node *nodeyy;
}Mark
typedef struct Node{
struct node next;
int value;
}Node
如果我为节点分配了内存,那么就说
Node *node1=malloc( sizeof(struct Node));
我还为书签分配了内存,比如说
Mark *mark1=malloc( sizeof(struct Mark));
我想让mark1中的指针nodeyy指向与node1相同的东西,我该怎么做?
我认为
mark1->nodeyy=node1;
肯定是错的。
答案 0 :(得分:1)
现在正确:
您必须初始化指针或将其指向您知道不会超出范围的现有变量。但是因为node1是动态分配的,所以你只需要将一个指针指向另一个指针,这会创建一种对node1指向的新分配内存的引用。
mark1->nodeyy = node1;
在此语句之后,mark1-> nodeyy和node1指向malloc返回的内存位置(sizeof(Node))。
答案 1 :(得分:1)
将struct Mark中的int *更改为Node *
typedef struct Mark{
int people;
Node *nodeyy;
}Mark
然后你可以做
mark -> nodeyy = (Node *) malloc(sizeof(Node))