读书人

一个指针和动态分配的有关问题

发布时间: 2012-03-30 17:32:09 作者: rapoo

一个指针和动态分配的问题
#include<stdio.h>
int i,j;
void Input(char **str,int n) //输入函数
{
for(i=0;i<n;i++)
{
scanf("%s",*(str+i));
}
}

void Output(char **str,int n) //输出函数
{
for(i=0;i<n;i++)
{
printf("%s",str[i]);
}
}

int Judge(char **str,int n) //判断函数
{
int p = 1;
int count;
int k,l;
for(i=0;i<n;i++)
{

l = strlen(str[i]);

for(j=i+1;j<n;j++)
{
count = 0;

for(k=0;k<l;k++)
{
if(str[i][k] == str[j][k])
count ++; //计数变量,判断是否有不符条件的号码
}

if(count == l)
{
p=0;
break;
}
}
if(0 == p)
break;
}

return p;
}

void main() //主函数
{
int T,n;
// char string[10000][10];
scanf("%d",&T);

while(T--)
{
scanf("%d",&n);

char **string = malloc(n*sizeof(char *));
for(i=0;i<n;i++)
*(string+i) = malloc(10*sizeof(char));
/*动态申请一个二维字符数组*/

Input(string,n); //向数组中输入数据

if(Judge(string,n)) //判断是否符合条件
printf("YES\n");
else
printf("NO\n");

/*----------释放动态内存-----------*/
for(i=0;i<n;i++)
free(*(string+i));

free(string);
}
}


[解决办法]

探讨

OK了!(*str)[10]这东西是不是表示一个存有10个指针数据的数组(10个内容是指针)?

读书人网 >C语言

热点推荐