Я создаю поток используя builder c++ v6.0: ifstream file("data.dat"); далее file.seekg(LastFileseek,ios::end); file.read(pBuf,SizeData); После этого if(file.fail()) { return 12; } Ранее pBuf был выделен динамически, но после его создания переменная pBuf не нулевая, следователь память выделена! После file.seekg ошибки нет проверял с помощью file.fail(),но никак не пойму почему не хочет читаться файл, и выводится: E2027: Must take address of a memory location Когда во время отладки подводишь курсором
НизачОт! В переменных со стека хранится мусор. [edit]: Хотя... Наверно не так понял. Покажи весь код (с выделением памяти).
Код (Text): ifstream hBackup(BackupFile.c_str()); if(hBackup) { hBackup.seekg(0,ios::end); if(hBackup.fail()) { return 11;} else { CurrentSize = hBackup.tellg(); ..ifы есть, но они точно роли не играют!!! else { SizeBackup = CurrentSize.operator long() - NextFileseek+1; NextFileseek = CurrentSize.operator long(); CountNewBcp = SizeBackup / ((sizeof(BcpArchive)-4)+sizeof(Data)*CountObjs); pBcpArchive = (BcpArchive *)(new char[SizeBackup]); hBackup.seekg((streampos)SizeBackup+1,ios::end); hBackup.read((char *)pBcpArchive,SizeBackup); if(hBackup.fail()) { return 12; } hBackup.close(); return 0; а про переменню, у меня привычка в контрукторе обнулять и в диструкторе тоже!
EvilsInterrupt Совершенно незачем. Лишний код, лишнее время работы. Аттач у меня выполняется без ошибок. Скорее всего ты облажался на том, что у тебя text.txt меньше 11-ти байт.
Блин с этой работой, где минуту ты программер, вторую разработчик скада систем, а третью можешь быть как монтажником так и еще фиг знает кем, че самое страшное, пока не могу никуда рыпнуться, ладно хоть дома фри помогает расслабиться А вообще, ты глянь выше код, ни чего не видешь случайно? можь ошибка какая
EvilsInterrupt Ну какие-то жутковато-подозрительные вещи есть, типа pBcpArchive = (BcpArchive *)(new char[SizeBackup]); Но ничего фатального вроде нет...
Забыл спросить а если так выделять память то там нули должны быть или что? а то я по f9 winhex глядел, там мусор и разнобродный!
q_q У меня компилится и нормально под билдер 6.0 с++ но начинаешь отлаживать вместе чтения послее ее выполнения подводишь мышь на file.fail() и видешь то что писал выше!
EvilsInterrupt Ты не курсором подводи во время отладки, а напиши отладочный код. В VC тоже в тултипах иногда чудеса бывают, лучше удостовериться.
IceStudent спасибо но я уже просто заколустался глядеть в этот отладчик, блин, вроде пустяк но именно он мне и недает покоя, и еще ты где то выкладывал свое мыло, но где не помню не можешь ли че нить написать на мое(профайл)?