首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

Free Heap block 3949f0 modified at 394a0c after it was freed,该怎么解决

2012-02-12 
Free Heap block 3949f0 modified at 394a0c after it was freed报错代码段:void sort(Elem e[],int n){El

Free Heap block 3949f0 modified at 394a0c after it was freed
报错代码段:
void sort(Elem e[],int n)
{
Elem *base_array=(Elem*)malloc(n*sizeof(Elem));//指针必须初始化

for(int i=0;i<n;i++){
base_array[i].key=0;
base_array[i].data=0;//初始化空数组
}

//统计e中的内容,并在base_array中做相应计数
for(int i=0;i<n;i++)
{
base_array[e[i].data].data++;
}

int j=0;
for(int i=0;i<n;i++){
if(base_array[i].data!=0){
for(int k=0;k<base_array[i].data;k++){
e[j].data=i;
j++;
}
}
}
}

这段代码可能有野指针,但我想了好久没明白。错误如题,请大家给点意见。

[解决办法]
base_array这个创建了,需要
free(base_array);

热点排行