一个指针和动态分配的问题
#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);
}
}
[解决办法]