//
更多原创“uC/OS-II学习笔记之:系列”基础及嵌入式相关知识详解,请访问可乐虎博客:
相信不会让您失望!!
//
//定义一个结构体类型
typedef struct SeqStack
{
ElementType array[STACK_SIZE];
ElementType top;
}SEQSTACK;
一、当定义一个结构体类型后,在未定义结构体变量之前,系统是否会为其分配内存空间?
答:定义一个具体的结构体类型,仅是在本程序中增加了一种数据类型,系统并不会为其分配空间。
只有当使用所定义的结构体类型定义了变量后,系统才会为所定义的变量分配相应内存空间。
二、
(1)SEQSTACK *pS;//定义一个指向结构体的指针
(2)pS = (SEQSTACK *)malloc(sizeof(SEQSTACK));
问:为什么要使用malloc为结构体类型指针分配内存空间?
答:1)定义的结构体指针只是说明这个指针是指向这个结构体的,但系统并未给它分配内存空间,
这就类似于声明,只是告诉系统这个指针是干什么用的,但它指向地址是未知的。
2)SEQSTACK *pS;//pS本身占用4