sách gpt4 ăn đã đi

c - malloc(sizeof(int)) vs malloc(sizeof(int *)) vs (int *)malloc(sizeof(int))

In lại 作者:IT王子 更新时间:2023-10-28 23:29:28 34 4
mua khóa gpt4 giày nike

我承认这三个都有不同的含义。但是,我不明白这些具体情况适用于哪些特定情况。任何人都可以分享每个例子吗?谢谢。

       malloc(sizeof(int))
malloc(sizeof(int *))
(int *)malloc(sizeof(int))

câu trả lời hay nhất

malloc(sizeof(int)) 表示您正在从堆中分配空间来存储 số nguyên。您将保留 số nguyên 所需的尽可能多的字节。 这会返回一个你应该转换为 int * 的值。 (指向 số nguyên 的指针。) 正如一些人所指出的,C 中的典型做法是让隐式转换来处理这个问题。

malloc(sizeof(int*)) 表示您正在从堆中分配空间来存储指向 số nguyên 的指针。您保留的字节数与指针所需的一样多。这将返回一个您应该转换为 số nguyên ** 的值。 (指向 số nguyên 的指针的指针。)

(int *)malloc(sizeof(int)) 与第一次调用完全相同,但结果显式转换为指向 số nguyên 的指针.

请注意,在许多体系结构中,số nguyên 与指针的大小相同,因此它们看起来(错误地)都是一样的。换句话说,您可能会不小心做错事,结果代码仍然可以工作。

关于c - malloc(sizeof(int)) vs malloc(sizeof(int *)) vs (int *)malloc(sizeof(int)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15222774/

34 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress