&data[0]
на самом деле ваш состав. Пока ваш вектор go не выходит за пределы области видимости, вы не освобождаете этот указатель go за file_size_in_byte
/ data.size()
. Вы можете спокойно его прочитать. например:
char* data_ptr = &data[0];
for(int i = 0; i < file_size_in_byte; i++)
{
// do something with data_ptr[i]
}
или передайте его в функцию, как в:
char* data_ptr = &data[0];
process_file_data(data_ptr, data.size());
Или, как гризли упомянул в комментарии ниже, просто используйте: char * data_ptr = data.data();