C 語言動態結構體陣列排序:malloc 配置、指標算術存取與年齡降冪排序
動態配置結構體陣列
Teacher *create_teachers(int n) {
Teacher *p = malloc(n * sizeof(Teacher));
return p; // 失敗返回 NULL,呼叫端需檢查
}
指標算術存取成員
void print_teachers(const Teacher *arr, int n) {
for (int i=0; i
年齡降冪排序 (冒泡)
void sort_teachers(Teacher *arr, int n) {
for (int i=0; i
完整主程式
int main() {
int n = 3;
Teacher *teachers = create_teachers(n);
if (!teachers) return 1;
for (int i=0; i
關鍵點
malloc(n * sizeof(Teacher)) 一次配置連續記憶體,支援指標算術 arr+i。
- 排序交換整個結構體 (淺拷貝),若含指標成員需改為交換指標或深拷貝。
- 用畢
free(teachers) 歸還記憶體。
- C++ 用
std::vector + std::sort 自動管理。