Я пытаюсь написать и прочитать строку в / из двоичного файла, но я не могу понять, почему sizeof (t) возвращает 4.
//write to file
ofstream f1("example.bin", ios::binary | ios::out);
string s = "Valentin";
char* t = new char[s.length()+1];
strcpy(t, s.c_str());
cout << s.length()+1 << " " << sizeof(t) << endl; // prints 9 4
for(int i = 0; i < sizeof(t); i++)
{
//t[i] += 100;
}
f1.write(t, sizeof(t));
f1.close();
// read from file
ifstream f2("example.bin", ios::binary | ios::in);
while(f2)
{
int8_t x;
f2.read((char*)&x, 1);
//x -= 100;
cout << x; //print Valee
}
cout << endl;
f2.close();
Неважно, какой размер я положил вchar * array t, код всегда печатает "4" как его размер.Что я должен сделать, чтобы записать данные длиной более 4 байтов?