好吧,我前几天问过这个问题。但是当我被问到时得到的答案让我意识到,在我做一些艰苦的研究之前,我还不适合质疑它。
所以在这里我再次重试这个....
在malloc的例子中,我看到了这样的东西......
#include <stdio.h>
int main()
{
int ptr_doe;
ptr_doe = (int *) malloc(sizeof(int));
}
我读到它不是必需的:
(this *) malloc(sizeof(int));
而那只是
(int *) malloc(sizeof(\this));
是必要的。调用 malloc 函数之前的强制转换是否必要?我们怎么知道我们需要分配多少内存以及这到底是什么?
malloc(10 * sizeof(int));
它是将 4 个字节乘以 10 吗? 什么时候需要使用 malloc?它在内部如何工作?感谢任何帮助,伙计们
1.
调用 malloc 函数之前的强制转换是否必要?
如果使用 currect 编译器,则"否"。查看答案 我是否投射了 malloc 的结果?
阿拉伯数字。
我们如何知道需要分配多少内存
这取决于您的需求。
3.
malloc(10 * sizeof(int));
意味着分配足够大的内存来存储 10 int
值。
4.
它是将 4 个字节乘以 10 吗?
如果sizeof(int)
等于 4,则为。
5.
什么时候需要使用 malloc?
如果只是在运行时,你可以知道你的程序需要多少内存。
6.
它在内部如何工作?
简而言之,malloc()
会要求操作系统提供足够的内存,记录它所需的一些信息,并返回指向该内存段开头的指针。