Нарушение прав доступа. А как же цикл?

Здравствуйте!
Есть незамысловатый код в рамках исследования возможностей записи в файл различными способами.
Но почему-то, на первый взгляд вполне логичное выражение, вызывает исключение вследствие нарушения прав доступа. В данном случае, как я понимаю, права доступа к ячейке массива. А если я захочу записывать из массива в цикле по какому-либо условию? Т.е. эту ячейку запишу, а вот эту нет? В данном коде такого цикла с условиями нет, это на будущее.
Код вот такой. Ниже скрин с результатом ошибки. Прошу знающих подсказать в чем дело.

#include <iostream>
#include<fstream>
#include<filesystem>
namespace fs = std::filesystem;
using namespace std;
int main()
{
    system("chpc 1251>nul");
    int arr[10];
    for (int j = 0; j < 10; j++)
        arr[j] = j;//заполнить массив
    fs::create_directories("C:\\ПАПКА1");
    ofstream of;
    of.open("C://ПАПКА1//file12.dat");
    of.write(reinterpret_cast<char*>(arr[4]), sizeof(int));
    of.close();
    int var=0;
    for (int j = 0; j < 10; j++)
        arr[j] = 0;
    ifstream ifs;
    ifs.read(reinterpret_cast<char*>(var), sizeof(int));
    cout << var;
}

Наверно надо например &arr[4], иначе вы просто значение хранящееся там кастуете, и соответственно получается адрес памяти никак не относящийся к массиву.

Да, верно. И ведь я делал так! Просто запись в бинарнике 04000000 интерпретировал как номер ячейки массива))) Сейчас цикл подправил на j+1 (ну, раз люди говорят, что так) и увидел в бинарнике 05000000))) Т.е. да, этот вид записи правильный. Спасибо)