Created
March 20, 2019 08:57
-
-
Save iamandrewluca/9d6212f5cb106877c0123556562f3e35 to your computer and use it in GitHub Desktop.
Alocarea dinamica a unui tablou bidimensional
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <conio2.h> | |
#include <stdlib.h> | |
int **a, n, m, i, j; | |
int main(void){ | |
// citesti numarul de linii | |
printf("Dati numarul de linii >> "); | |
scanf("%d", &n); | |
// citesti numarul de coloane | |
printf("Dati numarul de coloane >> "); | |
scanf("%d", &m); | |
// alochezi lui a (care este pointer la pointer) o lista de n pointeri | |
a = (int **)malloc(n * sizeof(int *)); | |
// alternativa c++ | |
// a = new int*[n]; | |
// pentru fiecare pointer creat alochezi o lista de intregi | |
for(i = 0; i < n; i++){ | |
// iaca aici pentru elementul a[i] creezi o lista de m elemente intregi | |
a[i] = (int *)malloc(m * sizeof(int)); | |
// alternativa c++ | |
// a[i] = new int[n]; | |
} | |
// deja mai departe lucrezi cu tabloul cum iti place | |
// si te adresezi la el cu indexi a[i][j] ca la matrice | |
printf("Initializam tabloul:\n"); | |
for(i = 0; i < n; i++){ | |
for(j = 0; j < m; j++){ | |
printf("a[%d][%d] >> ", i+1, j+1); | |
scanf("%d", &a[i][j]); | |
} | |
} | |
printf("Matricea data:\n\n"); | |
for(i = 0; i < n; i++){ | |
for(j = 0; j < m; j++){ | |
printf("%d ", a[i][j]); | |
} | |
printf("\n"); | |
} | |
// asta se foloseste pentru eliberare memorie de matricea data | |
// deodata fiecare element a[i] | |
// caruia a fost alocata o lista de intregi este eliberata | |
for(i = 0; i < n; i++){ | |
// se elibereaza fiecare element a[i] care are cite m compponente | |
free(a[i]); | |
// alternativa c++ | |
// delete [] a[i]; | |
} | |
// free(a) se elibereaza lista initialza de pointeri | |
free(a); | |
// alternativa c++ | |
// delete [] a; | |
getch(); | |
return(0); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment