是一个指针;您是要使用“->”吗?

时间:2019-11-10 18:06:07

标签: c

尝试使用数据成员更新2D数组时,请始终接收错误代码。这个2D数组有5个元素,代表一个岛上的5个山丘,每个山丘都有一个高度斜率和名称等。使用我的函数将数组main初始化为默认全0,但名称都没有,但是现在需要更新数组和数据成员具有提供的信息,因此无需用户输入。看过有关此错误代码的帖子,但在这种情况下无法解决。还尝试过首先更新其他数据(例如hillArray.loc [0]),以为可能是strcpy,但不是问题在于更新数组的方式。

#include <stdio.h>
#include <string.h>

typedef struct Hill {
  char name[20];
  int loc[2];
  double height;
  double slope;
  } Hill;

Hill* setHill (struct Hill* hill){
 strcpy(hill->name,"none");
 hill->loc[0] = 0;
 hill->loc[1] = 0;
 hill->height = 0;
 hill->slope = 0;
return hill;
}

int main() {
  struct Hill* hillsArray[5];
  int i;

  for(i=0; i<5; ++i) {
    setHill(hillsArray[i]);
}

strcpy((hillsArray->name[0]), "Ada's Apex");  // error is here, trying to update hillsArray  

return 0;
}

1 个答案:

答案 0 :(得分:0)

您的hillsArray->name[0]下标了错误的标识符。

hillsArray标识指针的数组。您必须在此处应用下标,以选择要访问的Hill中的特定下标:

strcpy(hillsArray[0]->name, "Ada's Apex");