Вопрос № 20130: Как создать массив, число элементов которого вводится с клавиатуры.
Имеется пример создания такого массива, но с заранее определенным числом элементов (10).
Matrix LABEL BYTE
REPT 10
DB 0
ENDM
Если вместо 10 подставить каку...
Вопрос № 20130
Как создать массив, число элементов которого вводится с клавиатуры.
Имеется пример создания такого массива, но с заранее определенным числом элементов (10).
Matrix LABEL BYTE
REPT 10
DB 0
ENDM
Если вместо 10 подставить какую-либо переменную, то при компиляции выдает сообщение:
Expected scalar type.
Отправлен: 23.04.2005, 02:29
Вопрос задал: VBA (статус: 1-ый класс)
Всего ответов отправлено: 3
Отвечает: Евгений Иванов
Здравствуйте, mycatismurzik!
да откуда угодно указывай размер маасива.
для этого нужно использовать подпрограммы выделения памяти.
call get_num_from_keyboard
call GlobalAlloc, GMEMPTR, eax
or eax,eax
jz error
mov [Array],eax
удачи!
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 23.04.2005, 11:14 Оценка за ответ: 4
Отвечает: Стас
Здравствуйте, mycatismurzik!
Если всеже есть предположение о максимальном количестве элементов, можно зарезервировать этот максимальный объем.
Иначе - да - выделять память когда станет известным количество элементов.
Ответ отправил: Стас (статус: Практикант)
Отправлен: 24.04.2005, 00:27 Оценка за ответ: 2
Отвечает: mvp
Здравствуйте, VBA!
Если у Вас com-программа, то поставьте в конце программы(после последней исполняемой команды и всех данных): matrix db ?. На запуск com-программы всё-равно выделяется 64К, поэтому можете свободно далее писать свой массив за программным кодом и данными. Вам лишь остаётся проверить, не выходит ли объём вашего массива + размер кода + размер данных за 64К, при вводе значения с клавиатуры.
Ответ отправил: mvp (статус: 2-ой класс)
Отправлен: 24.04.2005, 15:41