小编her*_*tik的帖子

malloc返回内存的免费范围

给出以下行:

 int *digits = (int *) malloc(3 * sizeof(int));
Run Code Online (Sandbox Code Playgroud)

假设我们将值1,2和3存储在位置,数字[0],数字[1],数字[2]中.如下:

digits[0] = 1;
digits[1] = 2;
digits[2] = 3;
Run Code Online (Sandbox Code Playgroud)

如果调用以下行:

free(++digits);
Run Code Online (Sandbox Code Playgroud)

malloc返回的整个内存范围是释放的,还是只是数字当前指向的int大小的块- 那时,数字[1]?或者是通过迭代释放整个范围的正确方法,即:

for (i = 0; i < 3; i++)
{
    free(digits[i]);
}
Run Code Online (Sandbox Code Playgroud)

我想了解免费电话的范围.malloc返回的整个内存块是释放的,还是只是一个子部分,当前由指针数字引用被释放?

c malloc pointers memory-management

0
推荐指数
1
解决办法
506
查看次数

标签 统计

c ×1

malloc ×1

memory-management ×1

pointers ×1