Salve a tutti quanti..
Sono alle prese con un problema che nn riesco a risolvere..
Programmando un po in C ho avuto dei problemi con una funzione che mi allocava dinamicamente una matrice avendo passato per indirizzo un puntatore a matrice..
Con una funzione che prevedeva il ritorno del puntatore a matrice ci sono riuscito ,invece se cerco di creare una funzione void che mi allochi memoria x la matrice senza il ritorno di niente mi da un errore nell'esecuzione del programma.. Di seguido posto le linee di codice del programmino sperando che qualke anima buona mi sappia spiegare il xk nn funge
Grazie a tutti anticipatamente per l'aiuto, e spero di contribuire anche io alla risoluzione del problema..
Dechk
codice:
#include <stdlib.h>
#include <stdio.h>
void alloca_matrice(int***,int,int);
void carica_matrice(int***,int,int);
void stampa_matrice(int**,int,int);
int main()
{
int righe,colonne;
int **matrice = NULL;
printf("Inserire numero di righe della matrice da allocare: ");
scanf("%d",&righe);
printf("\n\nInserire numero di colonne della matrice da allocare: ");
scanf("%d",&colonne);
alloca_matrice(&matrice, righe, colonne);
carica_matrice(&matrice,righe,colonne);
stampa_matrice(matrice,righe,colonne);
getchar();
getchar();
return 0;
}
void alloca_matrice(int ***m,int r,int c){
int i,j;
*m = malloc(r*sizeof(int*));
for(i=0;i<r;i++){
printf("\nAllocata riga %d",i+1);
m[i] = malloc(c*sizeof(int));
}
for(i=0;i<r;i++)
for(j=0;j<c;j++)
m[i][j] = 0;
for(i=0;i<r;i++){
printf("\n");
for(j=0;j<c;j++)
printf("\t%d\t",m[i][j]);
}
}
void carica_matrice(int ***m,int r,int c){
int i,j;
for(i=0;i<r;i++)
for(j=0;j<c;j++){
printf("\n\nInserisci valore in [%d][%d]: ",i,j);
scanf("%d",&m[i][j]);
}
}
void stampa_matrice(int **m,int r,int c){
int i,j;
for(i=0;i<r;i++)
printf("\n");
for(j=0;j<c;j++)
printf("\t%d\t",m[i][j]);
}