+ -
当前位置:首页 → 问答吧 → 关于realloc错误的问题

关于realloc错误的问题

时间:2011-12-16

来源:互联网

void extent_length(int base[],int check[],list <int> vode[])
{

max_length_now+=each_add; // #define each_add 10

if( (base=(int *)realloc(base,max_length_now*sizeof(int))) ==NULL) //error
{
cout<<"内存分配错误"<<endl;
exit(1);
}
}

部分代码,base[]是一个int数组。

作者: qq222333qq   发布时间: 2011-12-16

relloc函数的第一个参数必须是用过relloc函数的指针

作者: nice_cxf   发布时间: 2011-12-16

写错了,后面是malloc,只有malloc过的指针才能用relloc

作者: nice_cxf   发布时间: 2011-12-16

修改如下:
C/C++ code
void extent_length(int **base,int check[],list <int> vode[])
{

    max_length_now+=each_add; // #define each_add 10

    if( (*base=(int *)realloc(*base,max_length_now*sizeof(int))) ==NULL) //error
    {
        cout<<"内存分配错误"<<endl;
        exit(1);
    }
}
//外部调用的时候需要传递指针的地址进去

作者: kongrenxin   发布时间: 2011-12-16

顶楼上!
realloc本身用法没错!

作者: woweiwokuang0000   发布时间: 2011-12-16

楼主,给点分我,我没分了,帖子都发不了;

作者: liuliufen   发布时间: 2011-12-16

还是数组和指针的问题

作者: leo_wanta   发布时间: 2011-12-16

引用 3 楼 kongrenxin 的回复:

修改如下:
C/C++ code
void extent_length(int **base,int check[],list <int> vode[])
{

max_length_now+=each_add; // #define each_add 10

if( (*base=(int *)realloc(*base,max_length_now*sizeof(int)……


请问能说下原因么

作者: qq222333qq   发布时间: 2011-12-16