C语言 malloc() + 结构体指针定义结构体变量

        之前在学习链表的过程中,笔者认为新节点必须如下定义:

struct Node *p;
struct Node {
	int val;
	p pNext;
};

int main()
{
	Node Node1;
	Node Node2;
	Node Node3;
	……
}

        看了老师的例程,发现老师定义了结构体数据类型之后,在main()函数中没有定义过结构体变量,而是使用结构体指针来定义链表的新节点。

        随后笔者做了如下测试:

#include <stdio.h>

typedef struct num {
	int age;
	int sid;
} num1;

struct num *p;

int main() {
	p = (struct num *)malloc(sizeof(num1));

	p->age = 10;
	p->sid = 20;

	printf("%d   %d\n", p->age, p->sid);
	return 0;
}

        发现一开始定义了【结构体类型】以及【结构体类型指针】后,在main()中仅需要使用malloc()为结构体指针开辟空间,即可创建结构体变量,并且可以用结构体指针来对结构体成员进行操作。

        某种程度来说,可以使用【结构体类型指针】+【malloc()】来创建新的结构体变量。

        另外,以下使用typedef 代码中,其实进行了两个操作:

typedef struct num {
	int age;
	int sid;
} num1;

        1.定义了一个结构体数据类型num
        2.用【num1】替换了struct num,在接下来的代码中可以使用num1 来定义结构体

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值