【发布时间】:2014-03-14 06:47:18
【问题描述】:
我在实验室得到了这段示例代码,我正在努力理解它
int size = 5;
int **ppi2 = (int **) malloc(size * sizeof(int *));
这是我目前的细分:
为了分配足够的内存,我们必须将要为其分配内存的事物的数量 (size) 乘以这些事物的大小 (sizeof(int *))。这很简单,也很有意义。
我知道我们必须将 malloc 的结果转换为双指针,因为 malloc 返回字节并且变量是双指针,但是为什么我们首先将 ppi2 设置为等于 malloc 的结果?它是否使 ppi2 指向我们刚刚分配的内存中的位置?
【问题讨论】:
-
我正在用纯 C 语言编程,所以我想我应该转换它
-
您需要将结果转换为
C++,而不是C。只需阅读提供的链接中接受的答案即可。 -
我做了,我看错了,把它换了。
-
上面写成
int **ppi2 = malloc(size * sizeof *ppi2);更好(而size应该被称为count)。