Я создал массив структуры Human, который состоит из char *name
.
Я использую такую функцию:
Human *createHuman(char *name){
Human *h = malloc(sizeof(Human));
h->name = strdup(name);
return h;
}
Я протестировал эту функцию, она отлично работает, но моя проблема начинается, когда я использую ее следующим образом:
void gen_Humans(Human array[MAX], int n){
//n == max;
for (int i = 0; i<n; i++){
char *name = gen_name_function_used_before_WORKING();
array[i] = *createHuman(*name);
}
…
}
Как я уже сказал, если я создаю одного человека, он работает просто отлично.
Я отладил свой код, и когда я добрался до точки strdup(name)
, он бросил мне это:
my error: Exception thrown at 0x53DCF6E0 (ucrtbased.dll) in project.exe:
0xC0000005: Access violation reading location 0x00000070.
Я использую VS 2017 Enterprise.