有人可以向我解释这部分代码吗?如果我错了,请纠正我。
int *longest = malloc(sizeof(int));
*longest =0;
这是否意味着:
malloc(4)
?答案 0 :(得分:6)
是的,它为一个int
提供了足够的内存。你应该避免明确假设一个给定的大小 - 这将成为将来移植到其他平台的噩梦。你自己发现了它 - sizeof(int)
并不总是四处都是。
不,这会将值0分配给新分配的内存,longest
指向该内存。这里的*
是解除引用操作符,它非正式地说“我想使用这个指针指向的东西”。