Я пытаюсь использовать boost для сопоставления файла с памятью, имеющей 3 числа с плавающей запятой в строке (координаты точек x, y, z). Я пытаюсь сохранить данные в типе cl_float3 (для openCL), но, похоже, это не работает. Это мой код:
cl_float3 *data;
boost::iostreams::mapped_file_source file;
size = 785444; // size of the file
int numBytes = size*sizeof(cl_float)*3;
file.open(filename,numBytes);
if(file.is_open()) {
data = (cl_float3*)file.data();
file.close();
}
Это дает ошибку нарушения доступа для нарушения чтения, когда я пытаюсь использовать массив данных. Любая помощь?