![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| kostay |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
вобшем вот изу4аю... непойму ведь маллок должен занять заданное коли4ество памяти... тогда по4ему я в результате полу4аю строку длинной более 10 символов... вобшем надо 4тобы давало не более МАХ, в 4ом ошибка?
|
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| kostay |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
неа, не помогло ((
надобы както только malloc обойтись без мемсетов я отвёл размер памети на 10 символов, так? по4ему полу4ается больше? или то4нее какбудто память я вобше не занимал |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
На самом деле, тебя не касается, сколько памяти выделяет malloc на самом деле. Главное, что он выделяет не менее, чем ты попросил. А дальше уже твоя забота держать себя в рамках выделенной области памяти. А потом, как ты определяешь, сколько памяти выделилось? Из твоего примера только видно, что ты из-за ошибки выделяешь в несколько раз больше, чем тебе надо (на это указал Daevaorn). |
|||
|
||||
| kostay |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
ок. так как мне всётаки сделать 4тобы возврашалось только МАХ коли4ество символов...
разве не так 4то когда функция возврашает return, то 4то вне выделенной области теряется? и по4ему мне надо 1 а не 4? ведь один символ 4 бита? |
|||
|
||||
| bsa |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
char - это МИНИМУМ 8 битов. malloc выделяет память в БАЙТАХ (1 байт, обычно, равен 8 битам).
|
||||||
|
|||||||
| kostay |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
тоесть так? непашет ( всёравно скока дал стока и плу4ил |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
kostay, так делай:
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| kostay |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
спасибо!
можно пояснить? особенно вот ето -> fgets(merkkijono, max + 1, stdin); по4ему обы4ный сканф не пойдёт? |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
Потому что обы4ный сканф не контролирует выход за пределы массива.
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
а если
|
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
JackYF, в scanf 'звёздочка' выполняет другую функцию, нежели в printf. Можно, конечно, написать так:
Можно, даже, извратиться и вместо числа 5 записывать значение какой-нить переменной. Но, согласись, что это полнейший гемор. По-моему, гораздо проще юзать fgets. -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
мдэ? ну тогда +1. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |