數組是最基礎的線性數據結構,特點是連續內存、固定大小(靜態數組)、隨機訪問 O(1)。理解其在進程虛擬地址空間的分布至關重要:
int a[10]; 等靜態分配,隨函數調用自動回收,嚴禁返回局部數組指針。malloc/new 動態分配,生命周期由程式設計師控制,需手動 free/delete 防止內存洩漏。
| 分配方式 | 默認初始化 | 推薦初始化手段 |
|---|---|---|
| 全局/靜態數組 | 自動零初始化 | 直接使用 |
malloc | 不初始化(垃圾值) | memset(arr, 0, size) 或 fill |
new int[n] | 視編譯器而定(C++11 起值初始化為 0) | 顯式 new int[n]() 或 vector |
建議:現代 C++ 優先使用 std::vector,自動管理內存、提供豐富 API、支援動態擴容。
// C++ 排序示例 sort(vec.begin(), vec.end()); // 升序 sort(vec.begin(), vec.end(), greater()); // 降序