Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2012, 23:54   #1
GDima
Новичок
Джуниор
 
Регистрация: 13.11.2012
Сообщений: 2
По умолчанию переполнения NEW функци

Всем доброго времени.
В проэте MFC Application (диалоговое окно, static library, Use unicode ) при чтении файла "sezam.ini":
....
NPathPast = dlg.GetPathName(); // тут в переменной NPathPast сохр. адресс папки где находится "sezam.ini"
...
CString stringes2( _T("sezam.ini"));
NPathPast = NPathPast + _T('\\');
NPathPast = NPathPast + stringes2;
hFile = CrateFile(NPathPast,GENERIC_READ,FI LE_SHARE_READ,NULL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL ,NULL);
char *a = new char(0);
do {
bResult = ReadFile(hFile, buf, BUF_SIZE, &dwBytesRead, NULL);
buf[BUF_SIZE+1] = '\0';
...
strcat(a, buf);
}
while(1);

возникла проблема в том как или в чем сохранить около 4 Mb данных
UnitDescript1_Adr = 1
UnitDescript2_Adr = 2
UnitDescript3_Adr = 3
UnitDescript4_Adr = 4
...
Pointer_To_Events_Modbus = 3995
из этого файла ("sezam.ini").
Для этого сначала я пробовал использовать но максимальный размер этого массива 256.
Дальше пробовал <map> но использовать мне эго так и не получилось.
Может проще для этого создать новый класс ?
GDima вне форума Ответить с цитированием
Старый 14.11.2012, 00:36   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Для этого сначала я пробовал использовать но максимальный размер этого массива 256.
Размер чего 256? 256 чего?
p51x вне форума Ответить с цитированием
Старый 14.11.2012, 04:01   #3
GDima
Новичок
Джуниор
 
Регистрация: 13.11.2012
Сообщений: 2
По умолчанию

char *a = new char(0);

Максимальный размер "кучи" типа char не может превышать 256 ячеек по 256 символов каждая из них.
GDima вне форума Ответить с цитированием
Старый 14.11.2012, 06:35   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от GDima Посмотреть сообщение
char *a = new char(0);

Максимальный размер "кучи" типа char не может превышать 256 ячеек по 256 символов каждая из них.
а вы не массив создаете тут.
а выделяете память размером 1 байт и заполняете её значением.

массив же:
Код:
char* a = new char[65536]
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дружиские функци и перегрузка операторов wwe2012 Общие вопросы C/C++ 6 19.03.2011 18:53
использованием функци в паскале !) ALABAMA Паскаль, Turbo Pascal, PascalABC.NET 11 25.05.2010 13:59
Признак переполнения Dayne Общие вопросы C/C++ 9 19.03.2009 18:26
Ошибка переполнения и sqr. ray13 Паскаль, Turbo Pascal, PascalABC.NET 10 04.03.2009 15:59
Ошибка переполнения стека Cannibal Общие вопросы Delphi 1 01.12.2008 21:32