Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > C/C++ > C/C++
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Результаты опроса: Актуальна ли эта тема?
Да 1 100.00%
Нет 0 0%
Голосовавшие: 1. Вы еще не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.01.2013, 21:59
MahovIV MahovIV вне форума
Новичок
 
Регистрация: 30.12.2012
Сообщения: 77
Репутация: 10
По умолчанию Массив с запасом

Как ввести массив с запасом?
Ответить с цитированием
  #2  
Старый 10.01.2013, 22:24
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
PUINT mas;

mas = (PUINT)malloc(...);
Не?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 10.01.2013, 22:25
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

А что ты имеешь в виду под "с запасом"? Больше, чем нужно? Для этого надо просто создать массив больше, чем нужно.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #4  
Старый 10.01.2013, 22:33
MahovIV MahovIV вне форума
Новичок
 
Регистрация: 30.12.2012
Сообщения: 77
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
А что ты имеешь в виду под "с запасом"? Больше, чем нужно? Для этого надо просто создать массив больше, чем нужно.
Если я создам массив на 1000 элементов, а введу только 10, то резльтата не будет. Программа будет требовать остальные значения.
Ответить с цитированием
  #5  
Старый 10.01.2013, 22:45
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Приведи пример.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #6  
Старый 10.01.2013, 23:02
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Вариант 1 - попросить пользователя ввести, сколько элементов он будет вводить.
Вариант 2 - сделать сигнал конца ввода, например ввод определенного символа и или пустой строки.
Так что задача тут - не создать массив с запасом, а вовремя окончить ввод.

З.Ы. первый вариант лучше с т.з. компа, потому что можно после ввода числа динамически выделить четко нужное количество элементов. Второй лучше с т.з. юзера, т.к. удобнее.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #7  
Старый 10.01.2013, 23:18
MahovIV MahovIV вне форума
Новичок
 
Регистрация: 30.12.2012
Сообщения: 77
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
Вариант 1 - попросить пользователя ввести, сколько элементов он будет вводить.
Вариант 2 - сделать сигнал конца ввода, например ввод определенного символа и или пустой строки.
Так что задача тут - не создать массив с запасом, а вовремя окончить ввод.

З.Ы. первый вариант лучше с т.з. компа, потому что можно после ввода числа динамически выделить четко нужное количество элементов. Второй лучше с т.з. юзера, т.к. удобнее.
Что-то я не понял. Давай сначала.
Ответить с цитированием
  #8  
Старый 10.01.2013, 23:18
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Нафиг массивы, используй коллекции.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #9  
Старый 10.01.2013, 23:23
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Что-то я не понял. Давай сначала.
1) Пользователь сначала вводит, сколько элементов будет вводить. Сначала вводит число 10, потом вводит 10 элементов массива. Или сначала вводит 7, потом вводит 7 элементов. Что не понятно?
2) Читать элементы, пока человек не введет какое-нибудь ключевое значение, например "Задолбался вводить!". После этого ввод прекращается. Что тут не понятно?

Можно и как сказал мэд, через коллекции. Суть от этого не меняется. Только вместо ручной аллокации массива и записи в него будет просто добавление в коллецкию, пока вводят.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #10  
Старый 11.01.2013, 08:38
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59585
По умолчанию

Цитата:
Сообщение от MahovIV
Если я создам массив на 1000 элементов, а введу только 10, то резльтата не будет. Программа будет требовать остальные значения.
ну смотря как написать программу. если она будет считать сколько элементов введено, то зачем ей что-то требовать...
вот, к примеру функция:
Код:
BOOL GetUserName(
    LPTSTR lpBuffer,	// address of name buffer 
    LPDWORD nSize 	// address of size of name buffer 
   );
ей всегда передается буфер, размером заведомо больше, чем длина возвращаемого имени. однако ни одна программа при этом не валится.
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 11.01.2013 в 08:40.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter