Digamos que eu tenha um array de ponteiros para structs. Como faço para que cada elemento do array aponte para um local de memória diferente, para que eu possa alterar esses valores de struct por meio de ponteiros individualmente?
Alguns exemplos de código:
struct Person {
int age;
char *name[64];
}
int main() {
struct Person *people[4];
struct Person tmp_person;
people[0] = &tmp_person;
people[0]->age = 12;
people[0]->name = "John";
people[1] = &tmp_person;
people[1]->age = 34;
people[1]->name = "Mike";
}
Aqui, cada elemento pessoa será o mesmo, já que todos os elementos do array apontam para a mesma memória ( tmp_person
). Sei que o código está incorreto, estou apenas tentando fazer um exemplo. Então, como faço ponteiros únicos? Criar uma nova variável para cada elemento ( tmp_person1
, tmp_person2
, ...) parece estúpido e muito difícil.