我在一个拥有庞大遗留代码库的项目中工作,并且一直在尝试重新设计其中的一部分以摆脱旧的C风格代码。我遇到了一个问题,准备了一个简短的程序来解释。我使用的旧接口(interface)需要我将指向结果数据的指针作为void*传递,我想避免必须更改它。示例中的unique_ptr只是为了演示,在我的真实代码库中,处理数据的所有内容都使用智能指针来管理内存。我的问题是,结果数据被破坏了(见最后的输出行/最后一次调用printPayload);最后一切都是0,但转换为void*并返回似乎不是问题,如第二和第三输出行所示。这是一个与临时相关的问题吗?我不明白...我希望这类问题对你们中的一些人有帮助