Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужно ли выделять память для #0 в null-terminated string [D6, XP]


Mr tray ©   (2006-06-06 21:24:00) 

Здравствуйте. У меня вопрос про null-terminated string. Есть var pc:pchar; я хочу записать в этот pc строку 'привет'. Сначала я выделяю память для строки. В данном случае я должен выделить 6 байт или 7? То есть, для этого самого #0, который, как я понимаю, должен быть в конце строки, нужно выделять байт?


Blackcrazzy   (2006-06-07 10:53:00) [1]

Машина делает только то, что Вы ей сказали, а не то что Вам бы хотелось.


evvcom   (2006-06-07 09:12:00) [2]


> нуу. может для него автроматически выделяется память

А откуда компилятор или ОС или еще кто-то, что-то, что по твоему мнению должно "разумно" выделить память, знает, что ты потом будешь в эту память писать null-terminated string и тебе потребуется на один байт больше, чем сам стринг?


Dmitrij_K   (2006-06-06 23:17:00) [3]

см.
StrNew
StrAlloc
StrDispose
SysUtils.pas


Mr tray   (2006-06-06 23:08:00) [4]


> куда он запишется, если для него место не выделишь?

нуу. может для него автроматически выделяется память

> 7 байт, под #0 тоже нужно брать

спасибо


Zeqfreed   (2006-06-06 22:01:00) [5]

А как думаешь, куда он запишется, если для него место не выделишь?


Palladin   (2006-06-06 21:53:00) [6]

7 байт, под #0 тоже нужно брать


Наверх

Титульная страница Поиск, карта сайта Написать письмо