struct Student* a = (struct Student*)malloc(3 * sizeof(struct Student));//相当于struct Student a[3]
时间: 2024-01-03 08:04:25 浏览: 119
这是一个动态分配内存的语句,用于在堆上为结构体类型 `Student` 分配一块连续的内存空间,大小为 `3` 个 `Student` 结构体的大小总和。而 `struct Student a[3]` 则是在栈上为结构体类型 `Student` 分配一块连续的内存空间,大小同样为 `3` 个 `Student` 结构体的大小总和。两者的本质区别在于内存分配方式不同,前者是动态分配,需要手动释放内存;后者是静态分配,随着函数调用结束会自动释放内存。
阅读全文