W3School TIY Editor
W3School 在线教程
改变方向
暗黑模式
#include
#include
#include
struct Car { char brand[50]; int year; }; int main() { int count = 2; struct Car *cars = (struct Car*) malloc(count * sizeof(struct Car)); if (cars == NULL) { printf("初始分配失败。\n"); return 1; } // 初始化前 2 辆汽车 strcpy(cars[0].brand, "丰田"); cars[0].year = 2010; strcpy(cars[1].brand, "奥迪"); cars[1].year = 2019; // 需要多一辆汽车 -> 扩展到 3 int newCount = 3; struct Car *tmp = (struct Car*) realloc(cars, newCount * sizeof(struct Car)); if (tmp == NULL) { // 'cars' 在此处仍然有效;释放它以避免内存泄漏 free(cars); printf("重新分配失败。\n"); return 1; } cars = tmp; // 使用重新分配的内存块 // 初始化索引为 2 的新元素 strcpy(cars[2].brand, "起亚"); cars[2].year = 2022; // 打印所有汽车 for (int i = 0; i < newCount; i++) { printf("%s - %d\n", cars[i].brand, cars[i].year); } free(cars); return 0; }