考慮我有一個 C 函式:
MyFunction(const char *value, bool trigger)
在內部,根據trigger變數的值,我想要么使用value提供給函式,要么簡單地用const char不同函式回傳的其他字串覆寫它,例如:
MyFunction(const char *value, bool trigger) {
if (trigger) {
value = anotherFunctionReturningConstChar().c_str();
}
// do processing here
}
考慮到指標及其型別,實作這一目標的正確方法是什么。據我所知,我不能簡單地更改函式引數的值,我需要使用一些第三個變數,該變數應設定為 avalue或anotherFunction.
我現在在靜態分析器中收到以下錯誤:[ID:danglingTemporaryLifetime] 使用指向臨時的指標。
這是什么意思,我該如何克服它?
uj5u.com熱心網友回復:
不,您可以完全按照您的方式分配給函式引數。這不會以任何方式影響呼叫者。
uj5u.com熱心網友回復:
使用MyFunction(void *value, bool trigger)您持有指向函式或 const char* 的指標的位置,然后將該值轉換為所需的物件,但我認為它沒有用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/350595.html
