我有这段代码:
Perro **obj = NULL;
obj = (Perro**)malloc(10*sizeof(Perro*));
for (int i = 0; i < 10; i++)
{
obj[i] = new Perrito((char*)"d",i);
}
realloc(obj,12*sizeof(Perro*));
for (int i = 9; i < 12; i++)
{
obj[i] = new Perrito((char*)"d",i);
}
for (int i = 0; i < 12; i++)
{
Perrito *p;
p = (Perrito*)obj[i];
cout << p->getEdad() << endl;
}
当我读取我的对象时,我看到内存被转储(分段错误)错误。
当我注释掉realloc
行并减少最后一个长度项时,它正常工作,但我需要使用realloc
来增加我的polifirmist对象长度。