创建结点 与 分配内存 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:editorToolmain.c [Warning] assignment makes pointer from integer without a cast

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

原文地址:https://www.cnblogs.com/rsapaper/p/10542989.html