gpt4 book ai didi

任何使用 malloc 的指针都可以被视为数组吗?

转载 作者:太空狗 更新时间:2023-10-29 16:10:25 26 4
gpt4 key购买 nike

所以,我现在正在学习 C,并希望对某些事情进行一些澄清。

我了解到,如果我们想创建一个动态数组,我们可以使用以下代码行:

int *arr = malloc(10 * sizeof(int));

我知道,在这种情况下,arr 是一个指针,它被分配为相当于一个 10 个整数的数组(以字节为单位)。我也明白你可以把 arr 当作一个数组(从 arr[0] 到 arr[9])。

这是否意味着所有分配内存的指针都可以视为一个数组?

是否可以将其视为数组?

int *single = malloc(sizeof(int)); 

或者这可以被视为一个数组吗?

int *half = malloc(sizeof(int) * 1.5)

最佳答案

  • 忽略数组大小,是的,所有指针都可以使用数组(这意味着您可以对它们进行索引)。
  • 元素的数量应该是一个整数,并为有效访问截断(即 1.5 表示 1 个项目)。
  • 您从 malloc 请求字节数,这是项目大小的倍数是有道理的。
  • 您应该阅读有关指针运算的内容。
  • 数组名称也可以用作指针(例如,*array),但您不能为它们赋值或修改它们(例如,++array)。

关于任何使用 malloc 的指针都可以被视为数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46108244/

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