Documente Academic
Documente Profesional
Documente Cultură
O matrice alocata dinamic va fi constituita dintr-un vector de pointeri catre liniile matricii
si din spatiul alocat liniilor. De aceea se aloca mai intai vectorul care va contine adresele
vectorilor linie
Functia calloc este similara cu malloc, doar ca are doua argumente. Mai sus s-a alocat un
vector de nl pointeri la double. In continuare se aloca spatiu pentru fiecare linie in parte.
Adresa fiecarei linii este memorata in vectorul mat alocat anterior.
for(i=0;i<nl;i++)
if((mat[i]=(double *)calloc(nc, sizeof(double))) ==NULL)
return
NULL;
Exemplu
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
for(i=0;i<nl;i++)
if((mat[i]=(double *)calloc(nc, sizeof(double))) ==NULL)
return NULL;
return mat;
}
Observatii
1. Functia int random(int ValMax) are prototipul in <stdlib.h> si returneaza o
valoare pseudoaleatoare din intervalul [0,ValMax-1].
2. Pentru ca la executii diferite sa nu se obtina aceleasi valori pseudoaleatoare este
necesar apelul functiei void randomize(); cu prototipul tot in <stdlib.h> si care
initializeaza generatorul de numere pseudoaleatoare cu un numar aleator legat de
momentul executiei (de aceea este necesara includerea fisierului time.h).