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);