Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




























TABLOURI DE POINTERI

c


TABLOURI DE POINTERI. INITIALIZAREA TABLOURILOR DE POINTERI

Sa presupunem ca avem de scris o functie care sa returneze un sir de caractere cu numele zilei a n-a din saptamana. O functie nu poate intoarce un sir de caractere asa ca este clar ca trebuie sa revina cu un pointer la numele zilei a n-a. Deci, in cadrul functiei tr 939g69j ebuie sa se creeze un sir de nume de zile si un sir de pointeri spre aceste nume. Clasa de memorie pentru acest sir de nume trebuie sa fie static interna, asa fel incat sa nu se distruga la fiecare revenire din functie.



Exemplu 5.9.1

char *nume-zi (int n)

;

if (n > = 1 && n < = 7)

return zi [ n ] ;

else

return zi [ 0 ] ;

}

Exemplu 5.9.2

Un alt exemplu clasic de utilizare de siruri de pointeri este transmiterea matricilor ca parametri ai unei functii. Deoarece accesul la un element al matricei se face prin dubla referinta la linie si coloana, modalitatea de transmitere a matricelor la functii difera de cea de la siruri. In acest caz trebuie transmis un pointer la un sir de pointeri, fiecare element al sirului pointand la liniile matricei.

Mai jos se prezinta programul care inmulteste doua matrice. Catre functia care efectueaza inmultirea se transmit pointeri la siruri de pointeri pentru matricele A [ M ] [ N ] , B [N] [P] respectiv spre matricea rezultat C [ M ] [ P ], de fapt pointeri la pointeri.

# include "stdio.h"

# define M 4

# define N 2

# define P 3

void inm-matr (float **, float **, float **,

unsigned, unsigned, unsigned) ;

main ( )

, , ,

} ;

float b [N] [P] = h

,

} ;



float c [M] [P] ;

for (i = 0 ; i < M ; i++ )

pa[ i ] = a [ i ] ; /* pa [ i ] = adresa liniei i in */

/* matricea a */

for ( i = 0 ; i < N ; i++ )

pb [ i ] = b [ i ] ; /* pb [ i ] = adresa liniei i in */

/* matricea b */

for ( i = 0 ; i < M; i++)

pc [ i ] = c [ i ] ; /* pc [ i ] = adresa liniei i in */

/* matricea c */

ppa = pa ;

ppb = pb ;

ppc = pc ;

inm-matr (ppa, ppb, ppc, M, N, P) ;

printf ("Matricea rezultat = \ n") ;

for ( i = 0 ; i < M ; i++) {

for ( j = o ; j < P ; j++)






Document Info


Accesari: 1038
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )