Prekonvertovat pole na strukturu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Prekonvertovat pole na  strukturu – C / C++ – Fórum – Programujte.comPrekonvertovat pole na strukturu – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
michal
~ Anonymní uživatel
624 příspěvků
15. 11. 2013   #1
-
0
-

dobry den, potreboval by som prekonvertovat pole bytov na strukturu a sposob ako k nej pristupovat,je to pre 8bit mikrokontroler (FAT16 na SD karte) cize som obmedzeni pamatov,konkretne by som si to predstavoval nejak takto:

//chcem mat napr 2 struktury

struct masterBootRecord   
{
unsigned char exatubleCode[446];
unsigned char partitionInfo[64];
unsigned int executableMark;
};

struct partitionInfo
{
unsigned char status;
unsigned char startHead;
unsigned int startSectorCylinder;
unsigned char type;
unsigned char endHead;
unsigned int endSector;
unsigned long sectorToStart;
unsigned long size;
};

//teraz chcem prekonvertovat pole na strukturu

struct masterBootRecord *mbr=(struct masterBootRecord *)buffer;

//a este by som chcel prekonvertovat pole  partitionInfo[64]  v strukture na viac struktur  partitionInfo

    struct partitionInfo *prt=(struct partitionInfo *)((mbr)->partitionInfo);

//a teraz by som chcel vediet ked napisem

a=(prt+1)-> startHead;

//co je vlastne v premennej a, hodnota ? som z toho mimo.

Nahlásit jako SPAM
IP: 85.216.139.–
Reklama
Reklama
KIIV+42
God of flame
15. 11. 2013   #2
-
0
-

kdyz zvladnes udrzet ty polozky na spravnym miste (bez zarovnani - coz na 8b procesoru bude asi bez problemu) tak staci pretypovat pointer pole na pointer struktury... ale je opravdu nutne, aby polozky sedely naprosto presne

(a nebo pouzit union)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hlucheucho+10
Posthunter
15. 11. 2013   #3
-
0
-

moc nerozumím, co chceš provést. Pokud jde o to načíst do paměti MCU z karty, tak by měl jít obsah karty zkopírovat do struktury přímo. Pokud chceš aby se kus paměti a její obsah jednou interpretoval jako jeden dat. typ a jindy zase jako druhý dat. typ, asi by bylo vhodné použít union.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
michal
~ Anonymní uživatel
624 příspěvků
15. 11. 2013   #4
-
0
-

#3 hlucheucho
ide o to ,ze SD karta sa daju citat iba bloky po 512B(v programeuloyene v poli  buffer),MCU ma 1KB pamati,cize to musim urobit nejak tak aby na adrese bufra bola struktura ,napr chcem aby pole bolo chapane ako struktura masterBootRecord, aby  bufer[510] a bufer[511] boli chapane ako jedno cislo int ( executableMark v strukture)

a aby som s nimi mohol tak pracovat

Nahlásit jako SPAM
IP: 85.216.139.–
hlucheucho+10
Posthunter
15. 11. 2013   #5
-
0
-

Pokud budeš mít tu strukturu na stejném místě, kam čteš data z karty, při čtení dalšího bloku z karty tu strukturu ztratíš. Přetypování ukazatele je sice tak trochu prasárna, ale zřejmě nejrychlejší cesta k cíli. Union by byl možná "čitelnější" způsob téhož. Další možnost je nepoužívat to jako strukturu a pohybovat se v tom podobně jako v souboru a pomocí (vhodně přetypovaného) ukazatele si "vyzobnout" to, co potřebuješ.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
michal
~ Anonymní uživatel
624 příspěvků
15. 11. 2013   #6
-
0
-

zdravim nejak sa mi podarilo to vyriesit,problem je vsak v tom ked ulozim data z struktury do premennej,mozem to urobit iba raz 

Nahlásit jako SPAM
IP: 85.216.139.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 110 hostů

Podobná vlákna

Strukturu new — založil pep

Ako na strukturu — založil Vestax

Pointer na strukturu — založil Fugii

Pointer na strukturu — založil Pavelv

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý