strncpy函数的使用问题,编译器报错

HPC巧克力 发布于 2013/04/23 16:06
阅读 205
收藏 0

我自己写了一段代码,如下

void gettestdata(FILE *testdatafile, struct tle_ascii *sat_data)
{
  char *ret;
  char inputchar[72];
  long i = 0;
 
  while(1)
    {
 ret = fgets(inputchar, 72, testdatafile);
 if(strncmp("IRIDIUM", inputchar, 7))
 {
  printf("\n");
 }
 else if(strncmp("1", inputchar, 1))
 {
  strncpy(sat_data[i]->l[1], inputchar, 70);

 }
 else if(strncmp("2", inputchar, 1))
 {
  strncpy(sat_data[i]->l[2], inputchar, 70);
  i++; //use i*3, we can get total number of lines in the data file
 }

 if(NULL == ret)
      { 
          printf("Mission Compele!\n");
   printf("i = %ld\n", i);
   fclose(testdatafile);
          break;
      }
   }

 

编译时报错:testing.c:68: error: invalid type argument of ?.>?

请问大侠们,strncpy函数复制字串的时候,不可以用变量吗?这个函数使用的时候错在哪里呢?

加载中
0
JustForFly
JustForFly
sat_data[i]->l[2]这里的sat_data[i]不是指针,不能用->
HPC巧克力
HPC巧克力
你是对的,确实不能用->,问题已经解决了,需要在定义结构体的时候用typedef来定义,之后就不会报错了
HPC巧克力
HPC巧克力
参数是struct tle_ascii *sat_data,是指针啊
0
HPC巧克力
HPC巧克力
在线等答案,就剩这个地方的ERROR没编过去了。
0
HPC巧克力
HPC巧克力

引用来自“JustForFly”的答案

sat_data[i]->l[2]这里的sat_data[i]不是指针,不能用->
这段代码是根据之前的改的,之前是sat_data[0]->l[2]和sat_data[1]->l[2],这两个这样用都没有错啊
返回顶部
顶部