在C 中傳回本地數組:避免警告
在C 中傳回本地數組可能會觸發警告,例如「返回局部變數或臨時變數的位址” 」。要解決此問題,請考慮採用替代方法來緩解此警告:
使用std::vector
在C 中,使用std: :vector
std::vector<char> recvmsg() { std::vector<char> buffer(1024); //.. return buffer; } int main() { std::vector<char> reply = recvmsg(); }
如果您仍然需要char* 來實作C API 相容性,您可以使用&reply[0]存取它。
使用std::vector 可以避免使用new,它具有以下特點好處:
無需手動記憶體管理當std::vector 超出範圍時自動釋放記憶體void f(const char* data, size_t size) {} f(&reply[0], reply.size());
降低記憶體風險洩漏
結論
使用std::vector以上是如何在 C 中安全地返回本地數組而不發出警告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!