| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 416 人关注过本帖
标题:求帮助!关于字符串数组的内存问题,帮忙看一下我的程序!感激不尽
只看楼主 加入收藏
ivoryhouse
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-10-11
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:3 
求帮助!关于字符串数组的内存问题,帮忙看一下我的程序!感激不尽
前面后面不是很相干的就不写了...我这里写的程序意思大概就是把people[]->country里一部分的字符串(非互异)进行统计,算出各个不一样的字符串占所有字符串数的比例。然后我就定义了一个*country[]来统计,运行说我的内存操作上有问题,应该就是这个country[]这个字符串数组的问题.......请帮忙看一下,该怎么改啊????有错的地方都指正一下啊!
char *country[MaxM];
int n,m,i,j,k,l;
double percent[MaxM];
double num[MaxM];

 i=0;
 country[i]=(char *)malloc(8*sizeof(char)); //开辟内存,有错不?
 for(j=n-1;j>=n-m;j--){  //people[j]->country这个是从大到小排
  num[i]=0;
  if (j==n-1){
   country[i]=people[j]->country;
   num[i]++;
   i++;
   country[i]=(char *)malloc(8*sizeof(char));
  }
  else{
   for(k=0;k<i;k++){  //people[j]->country和country[]中已赋值的有相同的,i就不++了
    if(*people[j]->country==*country[k]){
     num[k]++;
     break;
    }
   }
   if(k>=i){   //不相同,给country[i]赋值
     country[i]=people[j]->country;
     num[i]++;
     i++;
     country[i]=(char *)malloc(8*sizeof(char));
   }
  }
   
 }
 
 for(l=0;l<i;l++){
  percent[l]=(num[l]/m)*100;
  printf("%s %.1f\n",country[l],percent[l]);
 }
 for(l=0;l<MaxM;l++) //释放空间,有错不?
  free(country[l]);

[ 本帖最后由 ivoryhouse 于 2010-10-11 23:58 编辑 ]
搜索更多相关主题的帖子: 内存 字符 感激不尽 
2010-10-11 23:43
cacker
该用户已被删除
收藏
得分:20 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-12 00:56
ivoryhouse
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-10-11
收藏
得分:0 
回复 2楼 cacker
不是啦,是没写全,前面本来是有scanf("%d%d",&n,&m)的。。。而且主函数还有前面的内容,只是只前面内容运行没问题来着。。。所以就没放出来
2010-10-12 08:30
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-12 13:50
快速回复:求帮助!关于字符串数组的内存问题,帮忙看一下我的程序!感激不尽
数据加载中...
 
   



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

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