2 liu876151990 liu876151990 于 2013.06.18 10:17 提问

关于一个数组的指针,求解释呀

// 使用指针从函数返回一个数组
// paf是一个函数,它返回一个指针,该指针指向一个包含20个int元素的数组
int (*paf())[20]
{
int (*pear)[20];
int i = 0;

pear = (int (*)[20])malloc(20 * sizeof(int));
printf("Malloc memory, Address: ");
PRINT_ADDRESS(pear); // 打印所分配内存的地址

if (!pear)
{
    printf("malloc failed!/n");
}

// 初始化数据
for (i = 0; i < 20; i++)
{
    (*pear)[i] = i;
}

return pear;

}

如上代码:为何pear返回以后不会失效?????

1个回答

boyzxscn
boyzxscn   2013.06.25 10:32
已采纳

上述代码中 pear 指向的内存是通过 malloc 从堆中分配的,函数结束后,分配的内存不会被释放。
malloc 分配的内存要用 free 释放。不你说的知道“失效”是不是这个意思。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!