标题:C语言动态内存释放问题,请高手帮忙看看!
只看楼主
hwf214685147
Rank: 2
等 级:论坛游民
帖 子:70
专家分:94
注 册:2011-9-14
结帖率:62.5%
已结贴  问题点数:20 回复次数:4 
C语言动态内存释放问题,请高手帮忙看看!
#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);后,出现调试错误警告!
搜索更多相关主题的帖子: 内存 C语言 count 
2011-09-15 12:24
tisyang
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:132
专家分:737
注 册:2011-5-7
得分:5 
程序代码:
#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>

C++ 用无参数构造函数生成对象时候请勿在构造函数后添加无用的那一对括号,否则有可能会被当成函数声明而忽略,嗯,栈上构建的时候就是这样。
2011-09-15 12:48
hwf214685147
Rank: 2
等 级:论坛游民
帖 子:70
专家分:94
注 册:2011-9-14
得分:0 
加上文件头还是不行。
2011-09-15 13:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:15 
for(count=0;count<=10;count++)
越界了
2011-09-15 13:19
hwf214685147
Rank: 2
等 级:论坛游民
帖 子:70
专家分:94
注 册:2011-9-14
得分:0 
恩,是的,谢谢两位!
2011-09-15 13:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-349964-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.972018 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved