Я написал код, который производит следующее сообщение об ошибке:Плохой доступ в Xcode
Thread 1: EXC_BAD_ACCESS (code=1, adress=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
@Olaf Спасибо за это. – PeterPan
Извините за мой глупый комментарий и ответ раньше. Ваш код выглядит отлично. Вы получаете ошибку при удалении 'strcpy' и цикла и' printf'? –