关于malloc的问题
有人能给我解释一下这部分代码吗?如果我错了,请纠正我关于malloc的问题,c,malloc,sizeof,C,Malloc,Sizeof,有人能给我解释一下这部分代码吗?如果我错了,请纠正我 int *longest = malloc(sizeof(int)); *longest =0; 这是否意味着: 返回一个指针,指向大小为4字节的内存块的开头(对于32位机器)?为什么不直接编写malloc(4) 对于第二行,它是否意味着最长的是一个4字节块的指针,从0开始 是的,它有足够的内存存储一个int。您应该避免显式地假设给定的大小—这会使将来移植到其他平台成为一场噩梦。你自己发现的-sizeof(int)不会总是到处都是4 否,
int *longest = malloc(sizeof(int));
*longest =0;
这是否意味着:
int
。您应该避免显式地假设给定的大小—这会使将来移植到其他平台成为一场噩梦。你自己发现的-sizeof(int)
不会总是到处都是4longest
指向。*
这里是解引用操作符,它非正式地说“我想处理这个指针指向的东西”这是C还是C++?你应该在这个问题中包含一个标签或另一个标签,以使其清晰,并使其显示在搜索等中。此外,如果是C++,则应该使用<代码>新< /Cord>。只是一个小的附加项,对于那个特定的分配情况,甚至有更好的习惯用法:<代码> int *最长=Maloc(siZeof(*最长));代码>这避免了重复类型,因此,如果某一天类型发生了更改,则所有操作仍然是一致的。