C에서 로컬 배열 반환: 경고 방지
C에서 로컬 배열을 반환하면 "로컬 변수 또는 임시 주소의 반환"과 같은 경고가 발생할 수 있습니다. ." 이 문제를 해결하려면 이 경고를 완화하는 대체 접근 방식을 고려하십시오.
std::Vector
C에서 std::Vector std::Vector 필요한 경우 char*에 액세스 그래도 C API 호환성을 위해 char*가 필요하면 &reply[0]을 사용하여 액세스할 수 있습니다. 예를 들면 다음과 같습니다. 이렇게 하면 char* 매개변수가 필요한 C API와 계속 인터페이스하면서 std::Vector를 사용할 수 있습니다. 새 항목을 피하는 이점 std::Vector를 사용하면 다음과 같은 new를 사용할 필요가 없습니다. 이점: 결론 std::Vector 위 내용은 경고 없이 C에서 로컬 배열을 안전하게 반환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!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());