求帮助!关于字符串数组的内存问题,帮忙看一下我的程序!感激不尽
前面后面不是很相干的就不写了...我这里写的程序意思大概就是把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 编辑 ]