Брошено исключение - запись о нарушении прав доступа 0x00000000 с использованием структур - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь скопировать из одной структуры, которая содержит 3 переменные, в другую структуру, чтобы содержать информацию в одном массиве символов, используя memcpy.

Ранее я столкнулся с ошибкой невозможностиобрабатывать данные, которые я ввожу.Поэтому я пытаюсь записать данные, находящиеся в templist, в shoppinglist.MyList [1]

typedef struct matvara {
    char food[25];
    float ammount;
    char unit[10];
}matvara;

typedef struct shoplist {
    char grocery_list[9001];
    int length; //Currently not used        
}shoplist;
void add_food(matvara *typ, shoplist *MyList);

int main(void)

{
        struct shoplist MyList = { 0 };
    struct matvara typ = { 0 };
        add_food(&typ, &MyList, &counter);
}
void add_food(matvara *typ, shoplist *MyList)
{
     char templist[50]
     //....Filling struct with data and tranfer it to templist[50]
     //Works til I try to perform the memcpy.
     memcpy(MyList->grocery_list[1], templist, strlen(templist)); //This is where the error occurs.
}   

Ожидаемый результат заключается в успешном завершении работы memcpy, чтобы впоследствии я мог получить к нему доступ в grocery_list [1].

Я получаю сообщение об ошибке:

Exception thrown at 0x0FC631BF (vcruntime140d.dll) in Project6.exe: 0xC0000005: Access violation writing location 0x00000000.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...