【发布时间】:2020-05-31 15:51:04
【问题描述】:
我想知道这两行有什么区别:
queue* f=(queue*)malloc(sizeof(queue));
queue* f=(queue*)malloc(sizeof(queue*));
队列的定义如下:
typedef struct queue
{
int arr[N];
int tail;
}queue;
提前致谢!
【问题讨论】:
-
所谓的“重复”是关于铸造的,但这里的关键问题是大小。投票重新开放。
-
@NateEldredge 是,但第一个答案解释了为什么在这种情况下你不应该使用这两种形式,而是
malloc(sizeof *f) -
@NateEldredge:是的,我怀疑有人看到另一个问题是相关的,因为我在答案中链接了它,但它根本不是重复的。
-
但是好吧,你有一个完美的副本:stackoverflow.com/questions/24363427/…
-
@bruno 因为当时我没有足够的积分给他最好的答案,但现在我有,谢谢你提醒我
标签: c pointers dynamic-memory-allocation