在記憶體管理領域,重新分配起著至關重要的作用。雖然 C 缺乏專用的重新分配函數,但它提供了可行的替代方案來有效調整動態記憶體分配的大小。
當程式需要擴展記憶體緩衝區以容納不斷增加的資料時,就會出現一個普遍的挑戰。刪除現有指標並分配一個更大的新指標可能不是最佳方法。相反,請考慮利用向量,它是 C 標準庫中的一個強大工具。
示範轉換:
來自C:
Type* t = (Type*)malloc(sizeof(Type)*n) memset(t, 0, sizeof(Type)*m)
到C(使用向量):
std::vector<Type> t(n, 0);
t = (Type*)realloc(t, sizeof(Type) * n2);
t.resize(n2);
對於函數參數,可以使用其元素元素傳遞向量指標:
Foo(t)
Foo(&t[0])
以上是如何在不使用'realloc”的情況下有效地調整 C 中動態記憶體的大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!