【发布时间】:2012-01-17 21:06:33
【问题描述】:
我正在努力理解 C。通读 K&R,我来回浏览,试图找到它说明我应该动态获取内存块的情况。
例如,我想要一个 int 指针。
int *pointer;
然后 K&R 表示我可能想做:
int *pointer;
pointer = (int*)malloc(sizeof(int));
基本上,我在这里做了什么不同的事情?在第一种情况下,我创建了一个指针,它还没有指向任何东西,所以我猜如果计算机内存不足,我尝试将它指向一个 int 值我会遇到问题。第二种情况为我的指针保留空间。所以我不必担心我的程序有那么多内存问题。它是否正确? 如果这是正确的,我不应该为我创建的每个指针使用 malloc(或 calloc)吗?只是为了确保我的程序问题更少?
【问题讨论】:
-
第二种情况为 int 保留空间并让您的指针指向它。如果你当时没有记忆,你也会有问题。