创建结点 与 分配内存 Function to create a Node. Allocates memory for a new node. 主动申请内存 链表 指针的写法
Self Referential Data Structure in C - create a singly linked list http://www.how2lab.com/programming/c/link-list1.php
#include <stdio.h>
typedef struct st {
int data;
struct st* s;
} alias;
alias *createNode() {
alias *new;
new=(alias *)malloc(sizeof(alias));
return new;
}
int main() {
alias a,*b;
b=createNode();
a.data=123;
b->data=456;
a.s=b;
printf("%d,",a.data);
printf("%d,",a.s->data);
return 1;
}
注意:
typedef struct st {
int data;
struct st *s;
} alias;
typedef struct st {
int data;
struct st* s;
} alias;
同
alias* createNode() {
alias *new;
new=(alias *)malloc(sizeof(alias));
return new;
}
alias *createNode() {
alias *new;
new=(alias *)malloc(sizeof(alias));
return new;
}
同
#include <stdio.h>
typedef struct st {
int data;
struct st* s;
} alias;
alias *createNode() {
alias *new;
new=(alias *)malloc(sizeof(alias));
return new;
}
int main() {
alias a,*b;
b=createNode();
a.data=123;
b->data=456;
a.s=b;
printf("%d,",a.data);
printf("%d,",a.s->data);
alias *c;
c=createNode();
c->data=789;
(*b).s=c;
printf("%d,",a.s->s->data);
return 1;
}
#include <stdio.h>
int* createInt() {
int *new;
new=(int *)malloc(sizeof(int));
return new;
}
int main() {
int *a;
int *b;
a=createInt();
b=createInt();
*a=123;
*b=456;
printf("%d,",*a);
printf("%d,",*b);
return 1;
}
#include <stdio.h>
int* createInt() {
int *new;
new=(int *)malloc(sizeof(int));
return new;
}
int main() {
int *a;
int* b;
a=createInt();
b=createInt();
*a=12;
*b=34;
printf("%d,",*a);
printf("%d,",*b);
return 1;
}
对指针变量的赋值

以下未报错
#include <stdio.h>
int* createInt() {
int *new;
new=(int *)malloc(sizeof(int));
return new;
}
int main() {
int *a;
/*
int* b;
a=createInt();
b=createInt();
*/
a=12;
/*
*b=34;
printf("%d,",*a);
printf("%d,",*b);
*/
printf("CAN!,");
return 1;
}
报

15 3 D:\editorTool\main.c [Warning] assignment makes pointer from integer without a cast

4 13 D:\editorTool\main.c [Warning] incompatible implicit declaration of built-in function 'malloc'


浙公网安备 33010602011771号