• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

WinAPI - sterty procesów

Object Storage Arubacloud
0 głosów
133 wizyt
pytanie zadane 25 stycznia 2019 w C i C++ przez Bartosz Pawlak Początkujący (370 p.)

Napisałem program tworzący i niszczący stertę: 

#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <intsafe.h>

int main()
{
	HANDLE k;
	HANDLE hHeap = HeapCreate(HEAP_GENERATE_EXCEPTIONS | HEAP_NO_SERIALIZE, 0x8000,0);

	if (hHeap)
	{
		printf("Sterta zostala utworzona.\n");
	}
	else
	{
		printf("Sterta nie zostala utworzona.\n");
	}

	LPVOID pHeap = HeapAlloc(hHeap,HEAP_ZERO_MEMORY,0x8000);

	if (pHeap)//heap!=NULL
	{
		printf("Pamiec zostala zaalokowana..\n");
	}
	else
	{
		printf("Pamiec nie zostala zaalokowana.\n");
	}

	if (hHeap != NULL)
	{
		bool del=HeapDestroy(hHeap);

		if (del != TRUE)
		{
			printf("Sterta nie zostala usunieta.\n");
		}
		else
		{
			printf("Sterta zostala usunieta.\n");
		}
		
	}

	return 0;
}

Jak zapisać jakieś dane do tej sterty i potwierdzić, że się to zrobiło? 

1 odpowiedź

+1 głos
odpowiedź 25 stycznia 2019 przez adrian17 Ekspert (344,860 p.)

Z tego co wiem, tak jak przy zwykłym malloc().

int * data = (int*)pHeap;
*data = 123;

Z ciekawości, do czego potrzebujesz HeapAlloc?

komentarz 25 stycznia 2019 przez Bartosz Pawlak Początkujący (370 p.)
przywrócone 30 stycznia 2019 przez Bartosz Pawlak
Dzięki. Spróbuję zrobić tak jak napisałeś. A co do twojego pytania to według dokumentacji:

Funkcja HeapCreate tworzy prywatny obiekt sterty, z którego proces wywołujący może przydzielać bloki pamięci za pomocą funkcji HeapAlloc.

Przetłumaczone google tłumaczem jak co.

Czyli z tego co rozumiem HeapCreate samo nie alokuje pamieci. Można to zrobić funkcją HeapAlloc.
komentarz 25 stycznia 2019 przez adrian17 Ekspert (344,860 p.)
To nie odpowiada moje pytanie - po co w ogóle potrzebujesz funkcjonalność HeapCreate i HeapAlloc? ;)
komentarz 25 stycznia 2019 przez Bartosz Pawlak Początkujący (370 p.)
Nie wiem czy da się stworzyc sterte procesu inaczej, więc robię to tak.
komentarz 25 stycznia 2019 przez adrian17 Ekspert (344,860 p.)
OK, tylko wciąż mnie ciekawi po co potrzebujesz tworzyć własną stertę procesu :P
komentarz 25 stycznia 2019 przez Bartosz Pawlak Początkujący (370 p.)
Muszę zrobić o tym prezentacje na studia.

Podobne pytania

0 głosów
1 odpowiedź 543 wizyt
pytanie zadane 11 października 2019 w C i C++ przez dawid2002 Mądrala (5,190 p.)
0 głosów
1 odpowiedź 417 wizyt
pytanie zadane 17 listopada 2020 w C i C++ przez disaster Bywalec (2,120 p.)
0 głosów
1 odpowiedź 163 wizyt
pytanie zadane 31 grudnia 2019 w C i C++ przez Gildin1_2 Gaduła (3,060 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...