在 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(); }
通过使用 std::vector
根据需要访问 char*
如果您仍然需要 char* 来实现 C API 兼容性,您可以使用 &reply[0] 访问它。例如:
void f(const char* data, size_t size) {} f(&reply[0], reply.size());
这允许您使用 std::vector,同时仍然与需要 char* 参数的 C API 进行交互。
避免 new
使用 std::vector 可以避免使用 new,它具有以下特点好处:
结论
使用 std::vector
以上是如何在 C 中安全返回本地数组而不发出警告?的详细内容。更多信息请关注PHP中文网其他相关文章!