【发布时间】:2015-09-19 13:47:18
【问题描述】:
我写了一个产生以下错误的代码:
线程 1:EXC_BAD_ACCESS(代码=1,地址=0x7.....)
我希望该程序将国家、州、城市和商店链接到一个结构中。但是当我尝试运行我的程序时,它给了我你在上面看到的错误。
我已经尝试删除strcpy 和for,但错误仍然存在。所以错误必须在结构内。我做错了什么?
#include <stdio.h>
#include <string.h>
#define SMAX 16
#define CMAX 256
#define SHMAX 300
int main() {
struct country {
char cname[50];
struct state {
char sname[50];
struct city {
char cityname[50];
struct shop {
char shopname[50];
int countshop;
} shop[SHMAX];
int countcity;
} city[CMAX];
int countstate;
} state[SMAX];
} country;
// country = Germany;
strcpy(country.state[0].sname, "bayern");
strcpy(country.state[1].sname, "berlin");
strcpy(country.state[0].city[0].cityname, "ingolstadt");
strcpy(country.state[0].city[0].shop[0].shopname, "westpark");
strcpy(country.state[0].city[0].shop[1].shopname, "edeka");
for (int i = 0; i < SHMAX; i++) {
printf("%s\n", country.state[0].city[0].shop[i].shopname);
}
return 0;
}
【问题讨论】:
-
注意:嵌套结构中的成员无需使用不同的名称。
country.state.city.name比country.state.city.cityname更好阅读 -
@Olaf 谢谢。
-
对不起我的愚蠢评论和回答。你的代码看起来不错。删除
strcpys 和循环以及printf时是否收到错误? -
所以我的行是正确的国家之前的 & 和商店名称之后的 [0]?你给我看的代码和我写的代码有什么区别?正如我在问题中所说,我试过了。
标签: c xcode struct xcode7 strcpy