#include // 为了使用 memset struct User { char name[50]; int age; }; int main() { // 正确初始化指针 User* users = nullptr; // 首次分配内存 users = new User[5]; // 在重新分配之前,确保已正确初始化或清空(如果需要的话) // 注意:对于结构体中的对象成员,这可能并不必要,因为它们在新分配的内存中会被自动初始化为默认值 // memset(users, 0, 5 * sizeof(User)); // 如果确实需要清零整个结构体内容可以使用这个,但对于包含对象的数据类型不一定适用 // 使用realloc()函数重新分配内存块 - C++ 中应使用 new 进行动态内存管理 // 用户 struct 是内置类型的组合,在 C++ 中通常不会用 realloc,而是使用 new 进行重新分配 // 如果坚持使用 realloc 的话,这段代码应该在 C 程序中,并且需要先检查 users 是否为 nullptr // users = (User*)realloc(users, 10 * sizeof(User)); // C++ 中使用 new 进行重新分配 User* tempUsers = new User[10]; if (users != nullptr) { users = (User*)realloc(users, 10 * sizeof(User)); //std::memcpy(tempUsers, users, 5 * sizeof(User)); // 复制已有数据到新内存 delete[] users; // 释放旧内存 } users = tempUsers; // 继续使用重新分配后的内存块... // 最后释放内存 delete[] users; return 0; }