c - Xcode 中的访问错误

标签 c xcode struct xcode7 strcpy

我编写了一个产生以下错误的代码:

Thread 1: EXC_BAD_ACCESS (code=1, adress=0x7.....)

我希望该程序能够在一个结构内连接国家、州、城市和商店。但是当我尝试运行我的程序时,它给了我上面看到的错误。

我已经尝试删除 strcpyfor 但错误仍然发生。所以错误一定是在结构内部。我做错了什么?

#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;
}

最佳答案

该结构的大小为 69043124 字节,堆栈无法容纳。

由于无需考虑线程安全,因此可以将结构设为静态:

int main(void) {
    static struct country {

关于c - Xcode 中的访问错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32668960/

相关文章:

c - 如何使指针 == null 测试通过?

c++ - 使用 TCP 从客户端向服务器发送字节的问题

c++ - gdb 跟踪点的操作不起作用

c - 我的常数正在改变,我不知道为什么,甚至不知道如何改变

当前在 Linux 中进行线程编程的正确方法

struct - 结构中枚举的生命周期参数

ios - 使用 SceneKit 进行实时连续动画

ios - FFMPEG iOS 7 库

ios - 使用未声明的标识符 'FIRApp'

在我的主函数中调用函数指针