Hello Markus,

['nschuldigung f�r sp�te Antwort, hatte ne ziemlich stressige Woche]

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! Du hast einen
Zeiger auf ein Array mit 64 m�glichen Eintr�gen, oder anders
ausgedr�ckt: Du hast ein dymanisches 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.

Und auch gibst du malloc() das falsche mit, dein Programm w�rde *sehr
viel* RAM unn�tig verbrauchen.

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?
Dann willst du einen Makroblock haben, der block_count Bl�cke
enthalten soll. Frage: Ist block_count statisch oder dynamisch?
Selbe Frage gilt auch f�r mg_hight (was bestimmt mb_height hei�en
soll) und mb_width.


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..

-- 
cheers,
 Tobias

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

Antwort per Email an