注册 登录
编程论坛 C++教室

C语言动态内存释放问题,请高手帮忙看看!

hwf214685147 发布于 2011-09-15 12:24, 367 次点击
#include "stdio.h"
void main()
{
  int count, *array;
  if((array=(int *)malloc(10*sizeof(int)))==NULL)
  {
      printf("不能成功分配内存空间");
      exit(1);   
      
  }
  for(count=0;count<=10;count++)
  {
      array[count]=count;
  }
  for(count=0;count<10;count++)
  {
      printf("array[count]=%2d\n",array[count]);   
  }
  free(array);
}

为什么加上free(array);后,出现调试错误警告!
只有本站会员才能查看附件,请 登录
4 回复
#2
tisyang2011-09-15 12:48
程序代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  int count, *array;
  if((array=(int *)malloc(10*sizeof(int)))==NULL)
    {
      printf("不能成功分配内存空间");
      exit(1);   
      
    }
  for(count=0;count<=10;count++)
    {
      array[count]=count;
    }
  for(count=0;count<10;count++)
    {
      printf("array[count]=%2d\n",array[count]);   
    }
  free(array);
  return 0;
}



没有问题。。。。
malloc 和 free 需要引用头文件 <stdlib.h>
#3
hwf2146851472011-09-15 13:11
加上文件头还是不行。
#4
rjsp2011-09-15 13:19
for(count=0;count<=10;count++)
越界了
#5
hwf2146851472011-09-15 13:23
恩,是的,谢谢两位!
1