Am Freitag, 29. November 2002 13:57 schrieb Tobias Rittweiler:
> Hello Markus,
>
> ['nschuldigung f�r sp�te Antwort, hatte ne ziemlich stressige Woche]
macht nichts, der mailserver war wieder unten und die Baustelle ist gro� genug ;-) 

> Wednesday, November 27, 2002, 3:06:47 AM, you wrote:
>
> MH> Hi
> MH> ich will mir ein Zeiger array vom Typ short definieren.
> MH> die Anzahl der Zeiger wird nat�rlich erst w�hren der Laufzeit des
> Programms MH> erfasst. Die kleinste Einheit ist aber bekannt:
> MH> ein Block hat 64 Elemente.
>
> MH> Pro Makroblock sind es "block_count" * Bl�cke.
> MH> Ein Frame hat " mb_hight*mb_width" Mackrobl�cke.
> MH> in meiner global.h habe ich dct_array so deklariert:

> MH> extern *dct_array[64];

> MH> Initalsieren will ich das Ding so:

> MH>  if (!(dct_array[mb_width*mb_height][block_count][64] = (short *)
> malloc(mb_widh*mb_height*block_count*64))) MH>  print(" malloc error\n);
>
> MH> m�sste doch OK sein, oder?
>
> Erm, nein! Das Ding muss ein SIGSEGV Signal empfangen! 
Macht das System doch selbstst�ndig oder ?
Zumindest bekomme ich gen�gend segvaults :-( hat aber nichts mit dem Fall oben  zu tun.


Du hast einen
> Zeiger auf ein Array mit 64 m�glichen Eintr�gen, oder anders
> ausgedr�ckt: Du hast ein dynamisches Array, das Arrays von 64
> Eintr�gen enth�lt.
> Du versuchst aber das ganze dreimal zu derefernzieren, obwohl du's nur
> h�chstens 2mal kannst/darfst.
wieso den dreimal? was meinst du genau mit dereferenzieren?
Ich will das ding einmal allokiert habe und gut is'. 
>
> Und auch gibst du malloc() das falsche mit, dein Programm w�rde *sehr
> viel* RAM unn�tig verbrauchen.
Ich brauch viel ram. Das ist mein Framebuffer quasi. 
Da muss also schon das ganze Bild reinpassen. 

>
> Was genau du willst habe ich nicht so ganz verstanden. Wir haben einen
> Block, die kleinste Einheit, die 64 Eintr�ge enthalten soll. So erste
> Frage: mindestens oder h�chstens 64? 

Immer 64 !
 
> Dann willst du einen Makroblock haben, der block_count Bl�cke
> enthalten soll. Frage: Ist block_count statisch oder dynamisch?
Normalerweise ist der Wert 6 und �ndert sich auf jeden fall nicht w�hrend der
Laufzeit. 

>
>
> MH> Wie setze ich alle Werte vor einer Zuweisung auf "0"(null) ?
>
> Hab ich dir doch in der letzten Mail gesagt. Komm doch mal bitte mit
> konkreten Beispielen..

ich mach's zu Fu�: foo_bla[i]=0;
hat zwar den Scharm eines "firtst fuck movies" aber es funzt. 

Ich muss mich jetzt sowieso erst mal um die "nicht_regulierende" Pufferregulierung 
k�mmern! 
Das sieht nach einem echten Schei� aus!  

Gru� Markus 

und Danke f�r die Tips.


-- 


-----------------------------------------------------------------------------
Markus Hahn
Emser Stra�e 69a
65195 Wiesbaden

Microsoft merges technologies: 
Windows CE + Windows ME + Windows NT = Windows CEMENT

-----------------------------------------------------------------------------

----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an