struct node {
char * name;
struct node * next;
};
struct node *head = NULL, *tail = NULL;
void push(const char *a) {
struct node* newgirl;
newgirl = (struct node*)malloc(sizeof(struct node));
if (newgirl != NULL) {
if (head == NULL) head = newgirl;
if (tail == NULL) tail = newgirl;
else tail->next = newgirl;
newgirl->next = NULL;
newgirl->name = (char*)a;
tail = newgirl;
}
}
代码如上 为什么每次执行push函数是都会把head更新一次。。。。 如图:
é¾è¡¨å建ç没é®é¢ï¼é®é¢åºå¨äºç»
ç»ç¹name èµå¼ä¸ãnameæ¯ä¸ªæéï¼æåä½ ä¼ å ¥çä¸ä¸ªå°åã
èè¿ä¸ªå°åå¯ä»¥è¯å®ï¼æ¯æ¬¡ä¼ å ¥å¼æ¯ä¸æ ·çï¼é£ä¹æ¯ä¸ªç»ç¹çnameé½æåäºåä¸å°åãæ¢å¥è¯è¯´ï¼åªè¦ä½ æ¹å以 ä¼ å ¥å°åå¤ç å符串ç å 容ï¼ææç»ç¹ç æéæåçå 容é½åæ¶åäºã
å¤çï¼
ä¿®æ¹node å®ä¹
struct node {
char name[20]; //<<<<<<<<<<<<<<<<<<<
struct node * next;
};
2. æ¹åèµå¼æ¹æ³
void push(const char *a) {
struct node* newgirl;
newgirl = (struct node*)malloc(sizeof(struct node));
if (newgirl != NULL) {
if (head == NULL) head = newgirl;
if (tail == NULL) tail = newgirl;
else tail->next = newgirl;
newgirl->next = NULL;
strcpy( newgirl->name ,a ) ; //<<<<<<<<<<<<<<<<<<<
tail = newgirl;
}
}