C でローカル配列を返す : 警告を回避する
C でローカル配列を返すと、「ローカル変数または一時的なアドレスの戻り値」のような警告がトリガーされる可能性があります。」この問題に対処するには、この警告を軽減する別のアプローチを検討してください。
Using std::vector
In C , using std::vector std::vector 必要に応じて char* にアクセスする それでもC API との互換性のために char* が必要な場合は、&reply[0] でアクセスできます。例: これにより、char* パラメータを必要とする C API とのインターフェイスを維持しながら、std::vector を使用できるようになります。 新しいものを回避する利点 std::vector を使用すると、次のような new の使用が回避されます。利点: 結論 std::vector 以上がC でローカル配列を警告なしに安全に返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。std::vector<char> recvmsg()
{
std::vector<char> buffer(1024);
//..
return buffer;
}
int main()
{
std::vector<char> reply = recvmsg();
}
void f(const char* data, size_t size) {}
f(&reply[0], reply.size());