Turbo C a (char*)

HackForum

Turbo C a (char*)#
Opět zdravím,
zajímalo by mě, jak tento stařičký kompiler (Turbo C 2.01) ukládá (char *). Chtěl bych získat přesnou fyzickou adresu. Myslel jsem si, že se ukládá do prom:[ds], kde prom je třeba char *prom = (char*)0x7000
Pokud udělám:
char *some = (char*)0x7000;

je potom fyzická adresa some:[ds], například ds je 0x500, potom je fyzická adresa proměnné some přesně 0x7500. Tohle mi funguje.

Problém nastává v této chvíli:
char *some = (char*)malloc(512);

some:[ds] neukazujena začátek stringu, jak jsem původně očekával.
char *some = (char*)malloc(512);
gets(some);
printf("%s", some);

funguje bezproblémově, ale chtěl bych zjistit přesnou fyzickou adresu pointeru na char, alokovaného přes fci malloc. Mýlím se, že to je some:[ds]? Myslím si že ano. Jaká je tedy správná fyzická adresa?

----------
..:@]> [link] <[@:..
(odpovědět)
DjH | E-mail | Website | ICQ 319-960-89530.7.2008 10:54
re: Turbo C a (char*)#
resp. jak ji zjistit?

----------
..:@]> [link] <[@:..
(odpovědět)
DjH | E-mail | Website | ICQ 319-960-89530.7.2008 10:55
re: Turbo C a (char*)#
aha, mám pošahanej malloc(), dobrý no. App byla na 0x600 a malloc alokoval 512 bajtu od 0x500 po 0x700, tim paem se prekryla app a spadla :/

----------
..:@]> [link] <[@:..
(odpovědět)
DjH | E-mail | Website | ICQ 319-960-89530.7.2008 14:39
re: Turbo C a (char*)#
1. mam pocit, ze vubec nechapes adresovani pameti v real modu (segmenty, paragrafy, offsety).
2. obsah pointeru se lisi podle jeho typu (near/far/huge, pametovy model), pokud s nim potrebujes nejak carovat, tak pouzij far pointer a makra MK_FP, FP_SEG, FP_OFF.

(odpovědět)
prc | 213.211.51.*31.7.2008 13:53
re: Turbo C a (char*)#
te povidam ze uz sem to vyresil, ok? :D, vim co to je far a huge, vim co je to pametovy model, jen sem mel blbe nastavenej malloc(), to je vse x)

----------
..:@]> [link] <[@:..
(odpovědět)
DjH | E-mail | Website | ICQ 319-960-89531.7.2008 13:58
re: Turbo C a (char*)#
promin, ale z toho dotazu je evidentni, ze nevis. pockame par mesicu az prijdes na to, o cem jsem mluvil :)

(odpovědět)
prc | 213.211.51.*31.7.2008 22:04

Zpět
 
 
 

 
BBCode