Прощай, Мир!
1672 / 829 / 253
Регистрация: 26.05.2012
Сообщений: 3,057
|
|||||||||||
1 | |||||||||||
MASM Выделение динамической памяти для строки. Вывод строки. Строка выводится кракозябрами20.05.2019, 20:49. Показов 2244. Ответов 5
Метки нет Все метки)
(
здр. имеется следующая программа.. при выводе сообщения со строками из динамической памяти выводятся кракозябры.. пжл, подскажите мне что я делаю не так..
напишите процедуру, которая принимает дескриптор хипа (динамическая память) и смещение строки.. процедура выделяет достаточно памяти на хипе, чтобы сохранить строку три раза.. затем в хип записывается три копии строки.. процедура возвращает указатель на выделенную память.. используя эту процедуру выведите строку с хипа и освободите память..
ой, все.. решил проблему..
0
|
|
20.05.2019, 20:49 | |
Ответы с готовыми решениями:
5
Выделение и удаление памяти, выделенной для динамической строки
Выделение памяти для строки символов
|
Эксперт Hardware
![]() |
||||||
20.05.2019, 23:33 | 2 | |||||
proc3nt, вообще-то у процесса есть уже куча, а ты создаёшь ещё одну..
её хендл возвращает GetProcessHeap() . по-сути это даже не хендл, а адрес начала текущей кучи в памяти. теперь этот адрес/хендл можешь подставлять в алокатор, причём если выставить в нём флаг(Zero), то выделенная память забьётся нулями, который будет служит терминальным нулём при выводе строки на экран.
1
|
Прощай, Мир!
1672 / 829 / 253
Регистрация: 26.05.2012
Сообщений: 3,057
|
|
21.05.2019, 09:06 [ТС] | 3 |
R71MT, спасибо за предоставленную информацию.. довольно-таки познавательно..
![]() только почему ты выделяешь память именно в четыре раза большую, чем длина исходной строки?
0
|
Эксперт Hardware
![]() |
|
21.05.2019, 11:59 | 4 |
..это от фонаря (всё-равно там 4-страницы пустуют)
можешь сделать sLen+1 Вот скрины где показано, что дефолтная куча лежит по адресу 80000, а после выделения в ней памяти, указатель смещается на некоторое кол-во байт, причём там валяется мусор (см.скрин 2). А вот если установить флаг "Heap_Zero_Memory", то выделенная область забивается нулями - хвост будет маркером конца строки.
1
|
Прощай, Мир!
1672 / 829 / 253
Регистрация: 26.05.2012
Сообщений: 3,057
|
|
21.05.2019, 12:55 [ТС] | 5 |
1
|
-10 / 4 / 1
Регистрация: 20.05.2019
Сообщений: 16
|
|
21.05.2019, 13:15 | 6 |
0
|
21.05.2019, 13:15 | |
Помогаю со студенческими работами здесь
6
Динамическое выделение памяти для строки Динамическое выделение памяти для строки
Выделение динамической памяти для char Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |