尝试使用数据成员更新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;
}
答案 0 :(得分:0)
您的hillsArray->name[0]
下标了错误的标识符。
hillsArray
标识指针的数组。您必须在此处应用下标,以选择要访问的Hill
中的特定下标:
strcpy(hillsArray[0]->name, "Ada's Apex");