有人能向我解释一下这部分代码吗?如果我错了,请纠正我。
int *longest = malloc(sizeof(int));
*longest =0;
这是否意味着:
- 是否返回一个指针指向大小为4字节的内存块的开头(对于32位机器)?为什么不写
malloc(4)
呢 - 对于第二行,这是否意味着最长的是4字节块的指针,从0开始
-
是的,它的内存刚好足够一个
int
。您应该避免明确假设给定的大小——这会使将来移植到其他平台成为一场噩梦。你自己发现了——sizeof(int)
不会总是到处都是4。 -
否,这会将值0分配给
longest
所指向的新分配的内存。这里的*
是解引用操作符,它非正式地说"我想处理这个指针指向的东西"。