сбой памяти сегментированной памяти - PullRequest
0 голосов
/ 15 апреля 2019

У меня следующий код.Я получаю сообщение об ошибке «сбой памяти из-за сегментации», когда я записываю массив «ADDRESS.Person» в любое значение.Любой, пожалуйста, помогите мне решить проблему.

#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=%s\n", ADDRESS.Person);

    printf("Finished");
    return 0;
}

1 Ответ

0 голосов
/ 15 апреля 2019

Вы только что объявили структуры, вам также нужно их создать, и, следовательно, ОБЩЕСТВО указывает на ничто. Также вы перебираете 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=%s\n", ADDRESS.Person);

    printf("Finished");
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...