lhlm1994 发表于 2017-11-20 11:03:31

malloc返回的是指针还是指针的内容?

int* p;
p = (int *) malloc (sizeof(int));//这里是p{:5_94:}


教学视频里又有一个


*T = (BiThrNode *)malloc(sizeof(BiThrNode))//用的又是*t

BngThea 发表于 2017-11-20 11:18:11

当然是指针
下面那个可能是指向指针的指针

ba21 发表于 2017-11-20 11:37:21

指针,也就是地址。malloc 申请到内存块的首地址

闪电猫网络 发表于 2017-11-22 08:39:58

是指针,申请到的堆空间的首地址,
他是不是写的是
int *T = (BiThrNode *)malloc(sizeof(BiThrNode));
或者另外一种情况就是T是一个二级指针,那*T也是一个指针了。

lhlm1994 发表于 2017-11-22 11:17:22

闪电猫网络 发表于 2017-11-22 08:39
是指针,申请到的堆空间的首地址,
他是不是写的是
int *T = (BiThrNode *)malloc(sizeof(BiThrNode));
...

大神们说的应该是对的,*t可能也是一个针。
如果去了()里面的*, 变成*T = (BiThrNode )malloc(sizeof(BiThrNode)),这个*T是不是就成内容了?可是它下面接着写(*T)->date=e   内容怎么可以用“->”而不是要用(*T).data   ??

lhlm1994 发表于 2017-11-22 11:18:23

闪电猫网络 发表于 2017-11-22 08:39
是指针,申请到的堆空间的首地址,
他是不是写的是
int *T = (BiThrNode *)malloc(sizeof(BiThrNode));
...

大神们说的应该是对的,*t可能也是一个针。
如果去了()里面的*, 变成*T = (BiThrNode )malloc(sizeof(BiThrNode)),这个*T是不是就成内容了?可是它下面接着写(*T)->date=e   内容怎么可以用“->”而不是要用(*T).data   ??

恍恍惚惚 发表于 2017-11-22 12:16:19

*T是一个指向指针的指针,相当于是二级指针,*T就是一级指针,指针是可以用"->"的,函数采用"."。

THA 发表于 2017-11-22 23:43:27

是指针,申请到的堆空间的首地址

闪电猫网络 发表于 2017-11-23 15:15:17

lhlm1994 发表于 2017-11-22 11:18
大神们说的应该是对的,*t可能也是一个针。
如果去了()里面的*, 变成*T = (BiThrNode )malloc(sizeof ...

如果按你说的,下边的代码有(*T)->date=e.
那说明T在这里是个二级指针.
我是担心你忽略了前面的int 定义.
页: [1]
查看完整版本: malloc返回的是指针还是指针的内容?