Lokale Arrays in C zurückgeben: Warnungen vermeiden
Die Rückgabe lokaler Arrays in C kann eine Warnung wie „Adresse einer lokalen oder temporären Variable zurückgeben“ auslösen ." Um dieses Problem zu beheben, sollten Sie einen alternativen Ansatz in Betracht ziehen, der diese Warnung entschärft:
Verwenden von std::vector
In C verwenden Sie std::vector Durch die Verwendung von std::vector Zugriff auf char* bei Bedarf Wenn Sie immer noch Für die Kompatibilität mit der C-API ist ein Zeichen* erforderlich. Sie können mit &reply[0] darauf zugreifen. Zum Beispiel: Dadurch können Sie std::vector verwenden und gleichzeitig mit C-APIs interagieren, die char*-Parameter erfordern. Vorteile der Vermeidung von neuen Durch die Verwendung von std::vector wird die Verwendung von new vermieden, was Folgendes hat Vorteile: Fazit Verwendung std::vector Das obige ist der detaillierte Inhalt vonWie kann ich lokale Arrays in C sicher und ohne Warnungen zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!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());