C - 分段故障内存转储



我有以下代码。当我编写数组"地址"时,我收到"分段错误内存转储"的错误。人'的任何值。任何人请帮我解决问题。

#include <stdio.h>
typedef struct
{
    char Person[15];
} stName;
typedef struct
{
    stName      Name;
} stSociety;
stSociety* SOCIETY;
#define ADDRESS    SOCIETY->Name

int main()
{
    int i;
    for (i=0; i<32; i++)
    {
        ADDRESS.Person[i] = 0;
    }
    printf("ADDRESS.Person=%sn", ADDRESS.Person);
    printf("Finished");
    return 0;
}

你刚刚声明了结构,你也需要创建它们,因此,社会什么都没有指向。此外,您正在迭代 32 个值,而 char 数组中只有 15 个值。我已经修改了代码,希望你能在这里得到一个想法

#include <stdio.h>
typedef struct
{
    char Person[15];
} stName;
typedef struct
{
    stName      Name;
} stSociety;
#define ADDRESS    SOCIETY->Name

int main()
{
stSociety* SOCIETY,sample;
SOCIETY = &sample;

    int i;
    for (i=0; i<15; i++)
    {
       ADDRESS.Person[i] = '0';
    }
    printf("ADDRESS.Person=%sn", ADDRESS.Person);
    printf("Finished");
    return 0;
}

最新更新