Цитата(Andryha @ Jun 19 2007, 18:50)

Далее пытаюсь выделить под него место:
read_fat_16 *read = new read_fat_16;
тут он начинает ругаться, мол:
Fatal Error[e72]: Segment HEAP must be defined in a segment definition option (-Z, -b or -P)
но, когда я просто пишу
read_fat_16 read;
он кушает причмокивая.
Когда вы работать через new, в динамической памяти выделяется область
для размещения объекта, и вам возвращается указатель на него.
Для того, чтобы это работало, нужно иметь динамическую память (HEAP).
Ее то у вас и нет. Нужно почитать доку на компилятор, как ее завести.
Когда вы делаете:
read_fat_16 read;
то компилятор размещает объект в статической памяти, на этапе компиляции,
или в стеке, если вы объявляете его внутри функции.
Надо ли вам именно динамическое размещение через new - решать вам. Мне ни разу пока
не понадобилось.