私は次のものを持っています:
#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
ますか?