这段程序是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/16 03:49:04
int StackMemFull()
{
slink p; \slink为已定义的typedef struct指针类型\
if ((p=malloc(sizeof(StackNode)))==0)
return 1; (StackNode为已定义的typedef struct的变量类型\
else
{
free(p);
return 0;
}
}

这句 ((p=malloc(sizeof(StackNode)))==0) 什么意思

if ((p=malloc(sizeof(StackNode)))==0)

1.malloc()函数用来申请内存空间,
malloc(10)表示表示申请10个字节的内存

2.sizeof(StackNode)表示节点StackNode的大小

3.p=malloc(sizeof(StackNode))表示申请一个sizeof(StactNode)大小的内存空间,并使得p指向这块内存的首地址,如果失败p的值为空,也即是0

4.所以整个语句if ((p=malloc(sizeof(StackNode)))==0)
是为了判断内存分配成功与否

申请 分配内存失败!

p=malloc(sizeof(StackNode))

这是在动态申请一块用于保存一个StackNode类型变量的空间,并将地址返回给p。

(p=malloc(sizeof(StackNode)))==0

如果上面的分配失败,malloc()就会返回0(NULL)