首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-03-30 
一个指针和动态分配的问题#includestdio.hint i,jvoid Input(char **str,int n)//输入函数{for(i0in

一个指针和动态分配的问题
#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个内容是指针)?

热点排行