Alokování paměti – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Alokování paměti – C / C++ – Fórum – Programujte.comAlokování paměti – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
oxidián0
Věrný člen
10. 2. 2015   #1
-
0
-

Mám strukturu ve které je člen image_buffer jakožto unsinged char *

typedef struct JPEG_DATA
{
    unsigned char * image_buffer;
} JPEG_DATA, *pJPEG_DATA;

Ve funkci read_jpg_file se snažím tento buffer alokovat ale nevede se:

bool read_jpg_file(pJPEG_DATA data)
{
    data->row_bytes_len = data->d_info.output_width * (data->d_info.output_components);
    data->image_buffer =
    (unsigned char*) malloc( data->row_bytes_len* data->height );

...

}

ve watch panelu CodeBlocks vidím toto:

*data->image_buffer          0 '\000'

data->image_buffer           (unsigned char *) 0x6f0020 ""

takže stále není alokována paměť. Co s tím?

Nahlásit jako SPAM
IP: 78.45.199.–
Reklama
Reklama
KIIV+42
God of flame
10. 2. 2015   #2
-
+1
-
Zajímavé

#1 oxidián
no data->image_buffer by mel obsahovat pointer, coz cca tak vypada

a *(data->image_buffer) by mel byt prvni znak z toho bufferu.. a pokud je to kvalitne vynulovany, tak to vypada "prazdne" protoze \0 je ukoncovaci znak retezce

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
oxidián0
Věrný člen
10. 2. 2015   #3
-
0
-

Já to zkoušel zobrazit jako pole data->image_buffer

'\000' <repeats 12 times>

Tak asi jo, ale překvapuje mě to, protože když jsem přiděloval paměť jindy tak tam vždycky byly jiné znaky naž zakončovací znak.

Jinak jsem to zkoušel zobrazit *data->image_buffer jako pole (a teď vím že to byla blbost) ale dostal jsem hlášku: cannot subscript something of type `unsigned char' ... já jen že mi to nedošlo že to nejde zobrazit jako pole když tam je ta hvězdička.

Nahlásit jako SPAM
IP: 78.45.199.–
KIIV+42
God of flame
10. 2. 2015   #4
-
+1
-
Zajímavé

#3 oxidián
jelikoz pamet necistis, tak tam muze byt cokoliv

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 105 hostů

Podobná vlákna

Nedostatek paměti — založil ProgDan

Uvolnovani pameti — založil Aaron

Uvolneni pameti — založil BigBear

C+ - Operace s pamětí — založil Matherz

Realokace paměti — založil kilroy

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ý