Malloc + 2d arrays + C

Christos Ricudis ricudis at giwtoula.paiko.gr
Wed Mar 20 09:31:01 EET 2002


In article <mailman.1016575926.18713.linux-greek-users at lists.hellug.gr>, Vasilis Vasaitis wrote:

>> > 	Xwris na isxurizomai oti gnwrizw C auto pou mou kanei entupwsi einai
>> > 	i parapanw grammi to 'sizeof(char *) ' ti timi akribws exei????
>> 
>> Exei thn timh toy fysikou mege8ous enos pointer sthn target arxitektonikh, 
>> poy nomizw oti den einai akribws ayto poy skeftotan o original author toy 
>> sygkekrimenou kwdika prin parei narkwtika. 
> 
>   Αντιθέτως, είναι από τα λίγα πράγματα που ο συγκεκριμένος κώδικας
> καταφέρνει να κάνει σωστά. Αντί να κάνει malloc() ολόκληρο τον πίνακα, και
> μετά να χρησιμοποιεί πολλαπλασιασμό (μπλιαχ) για την «διδιάστατη»
> προσπέλαση, κάνει πρώτα malloc() έναν πίνακα από δείκτες, και σε καθέναν από
> αυτούς μετά έναν πίνακα από χαρακτήρες. Ή αλλιώς, instant 2D, the C way.

Pragma poy einai o lan8asmenos tropos na ylopoihseis ena disdiastato array, 
otan ta bounds ths deyterhs diastashs einai constant, poso mallon a priori 
gnwsta. 

Sthn periptwsh toy 'disdiastatou array' exeis : 

* Ena memory allocation sto initialization
* Ena pollaplasiasmo kai mia pros8esh ana access
* Ena memory deallocation sto telos

Sthn periptwsh toy 'array of N pointers' exeis : 

* N memory allocations sto initialization (+ malloc housekeeping)
* To fetching toy pointer kai mia pros8esh ana access
* N memory deallocations sto telos

Poio apo ta dyo sou fainetai pio aplo, grhgoro, cache friendly, ktl ktl ktl? 

-- 
Christos Ricudis

ric-NOSPAM-udis at paiko.gr			Remove -NOSPAM- to reply
spamoula at paiko.gr				Send your spam here



More information about the Linux-greek-users mailing list