gpt4 book ai didi

c - 了解声明、malloc 和这行 C 代码的其他部分

转载 作者:行者123 更新时间:2023-11-30 20:44:11 25 4
gpt4 key购买 nike

我刚刚开始使用 C 语言,遇到了一行我不理解的代码。有人能解释一下它的作用吗?

short int * work = (short int *) malloc(1000*16);

最佳答案

你不明白什么?该代码声明了一个 short int*,它是一个指向一个或多个 16 位(至少 16 位)有符号整数的指针。它将其初始化为由 malloc 返回的指针,该指针是一 block 足够大的内存块,可以容纳 1000 * 16 字节。

现在,他们为什么使用 1000 * 16?我不知道。通常,您会按照 num_elements * sizeof(element) 的方式进行分配,即 num_elements * sizeof(short int)

更规范地讲,使用 num_elements * sizeof(*work) 这样,如果您更改指针的类型,您的代码就不会中断。

另请注意 it is a bad idea to cast the return value of malloc in C .

关于c - 了解声明、malloc 和这行 C 代码的其他部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15103550/

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