假设我有一个指向结构的指针数组。如何使数组的每个元素都指向不同的内存位置,以便我可以通过指针单独更改这些结构值?
一些示例代码:
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";
}
这里,每个 person 元素都将相同,因为所有数组元素都指向同一内存(tmp_person
)。我知道代码不正确,我只是想举个例子。那么我该如何创建唯一指针呢?为每个元素(tmp_person1
、tmp_person2
、...)创建一个新变量似乎很愚蠢,而且非常困难。