gpt4 book ai didi

c - 关于malloc的问题

转载 作者:行者123 更新时间:2023-12-04 10:26:51 25 4
gpt4 key购买 nike

有人可以向我解释这部分代码吗?如果我错了,请纠正我。

int *longest = malloc(sizeof(int)); 
*longest =0;

这是否意味着:

  1. 返回一个指针,指向一个大小为 4 字节的内存块的开头(对于 32 位机器)?为什么不直接写 malloc(4)
  2. 第二行是不是表示longest是一个4字节 block 的指针,从0开始?

最佳答案

  1. 是的,它为一个 int 获取了足够的内存。你应该避免明确地假设一个给定的大小——这会让将来移植到其他平台成为一场噩梦。您自己发现了它 - sizeof(int) 并不总是到处都是 4。

  2. 不,这会将值 0 分配给新分配的内存,这是由 longest 指向的。这里的 * 是解引用运算符,它通俗地说“我想处理这个指针指向的东西”。

关于c - 关于malloc的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11765671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com