我有以下内容:
#include <boost\interprocess\mapped_region.hpp>
#include <boost\interprocess\file_mapping.hpp>
using namespace std;
void GetFileContents(const char* FilePath, size_t& size, char* data);
int main(){
char* data = 0;
const char* FilePath = "My\\Path\\File";
size_t size = 0;
GetFileContents(FilePath, size, data);
//Now data is incorrect
return 1;
}
void GetFileContents(const char* FilePath, size_t& size, char* data){
file_mapping fm(FilePath, read_only);
mapped_region region(fm, read_only);
data = static_cast<char*>(region.get_address());
//data is correct here
size = region.get_size();
}
内GetFileContents
()data
包含正确的信息。但是,data
从 () 返回后,GetFileContents
它不包含任何内容。我究竟做错了什么?
另外,有没有办法去掉static_cast
?