c-当输入大小超过10时,Malloc失败



我使用malloc分配内存,但当输入大小超过10时失败,为什么会发生这种情况?

我也给出了代码和错误信息:

错误消息

解决方案:malloc.c:2385:sysmalloc:Assertion`(old_top==initial_top(av(&old_size==0(||((无符号长((old_size(>=MINSIZE&prev_inuse(old_top(&((无符号长(old_end&(pagesize-1((==0('失败。

代码

int birthdayCakeCandles(int candles_count, int* candles) {
int temp,i,flag=1;
for (i=1;i<=candles_count;i++){
if(candles[0]<candles[i]) {
temp=candles[0];
candles[0]=candles[i];
candles[i]=temp;
}
else if(candles[0]==candles[i]){
flag=flag+1;
}
}
return flag;
}
int main()
{   int candles_count,i;
scanf("%d",&candles_count);
int *candles= (int*)malloc(candles_count*sizeof(int));
for(i=0;i<candles_count;i++){
scanf("%d",(candles+i));  
}
int result = birthdayCakeCandles(candles_count, candles);
printf("%d",result);
free(candles);
return 0;
}

在第4行中,您从索引1开始,一直检查到索引N(<=sign(,其中N是非索引项,并且您正在从不允许的区域读取内存。

相关内容

  • 没有找到相关文章

最新更新