Branch=(struct Branch_type*)malloc((NB+1)sizeof(struct Branch_type));
大佬们 能不能给帮忙解释下协调语句
还有第二个是什么意思啊
Branch=(struct Branch_type * )malloc((NB+1) * sizeof(struct Branch_type));
这是一个指针数组的动态空间申请代码。申请了NB+1个 数据结构 Branch_type对象。sizeof是获得数据结构占用的内存大小,乘以对象的数量就是总共要申请的空间大小。malloc返回的是void *,因为这个函数是通用函数,只负责申请指定大小的字节空间,需要调用的人将void * 强制转换为自己的数据结构指针
malloc分配内存会返回一个void*指针,这个指针直接操作很不方便,需要转成你需要的类型
语句应该有错吧,应该是:Branch=(struct Branch_type*)malloc((NB+1) * sizeof(struct Branch_type));
就是分配(NB+1)个Branch_type对象内存
Branch=(struct Branch_type*)malloc((NB+1)*sizeof(struct Branch_type));
Branch 应该是一个struct Branch_type*类型的变量
malloc是申请内存空间,因为malloc返回的是void*类型,所以需要用(struct Branch_type*)强制转换一下
sizeof(struct Branch_type)计算1个结构体所占的内存大小,NB+1是所需的结构体个数
在C语言中,虽然在前面已经声明了Branch_type结构体,但是在用Branch_type类型的时候,
前面也要求带struct关键字,否则编译器会报错