PDA

Visualizza la versione completa : [C] problema con i puntatori per una matrice


JAE#
11-10-2017, 20:01
Salve.
Premetto che ho cercato ovunque e non ho trovato risposta alla mia domanda.

Questo algoritmo:




int matrice[100][100], i, j;
for(i=0; i<10; i++){
for(J=0; j<10; j++){
scanf("%d", matrice[i][j];
printf("Il numero da te inserito e' %d\n", matrice[i][j]);
}
}


Se volessi convertirlo in modo tale da avere un puntatore a una matrice, quindi (int** matrice), come dovrei fare?
Grazie.

oregon
11-10-2017, 20:32
Come hai allocato la matrice?

JAE#
11-10-2017, 20:36
Come hai allocato la matrice?
In che senso scusa? Sono nuovo nel campo dei puntatori.
Provo a spiegarmi meglio:

L'algoritmo scritto sopra voglio adattarlo ad una matrice di puntatori quindi:



int **matrice;
for(i=0; i<10; i++){
for(J=0; j<10; j++){
scanf("%d", matrice[i][j];
printf("Il numero da te inserito e' %d\n", matrice[i][j]);
}
}

Ovviamente scritto così non funziona perchè con i puntatori si lavora in modo diverso

oregon
12-10-2017, 07:36
Non ti sei spiegato meglio, hai detto le stesse cose di prima. Comunque avevo capito e ti ho detto che, prima di usare i puntatori, devi allocare dinamicamente l'array, altrimenti il resto non può funzionare. Quindi comincia a scrivere il codice dell'allocazione della matrice.

JAE#
12-10-2017, 18:31
Non ti sei spiegato meglio, hai detto le stesse cose di prima. Comunque avevo capito e ti ho detto che, prima di usare i puntatori, devi allocare dinamicamente l'array, altrimenti il resto non può funzionare. Quindi comincia a scrivere il codice dell'allocazione della matrice.
Perdonami ma ho creato questo post proprio perchè non so farlo :/

AmedeoFalco
12-10-2017, 23:28
Perdonami ma ho creato questo post proprio perch� non so farlo :/

Io scriversi :


void Matrice( int *m[],int n){
int i,j;
for(i=0;i<n;i++){
printf("Digita elementi vettore riga [%d]: ", i)
scanf(" %d", m[i]);
}
for(i=0; i<n; i++){
printf("%2d", m[i]);
printf("\n");
}
return ;
}
int main () {
int n,m1;
printf("Dammi le righe: ");
scanf(" %d", &n);
printf("Dammi le colonne: ");
scanf(" %d", &m1);
int *m[m1];

Matrice(m,n);

return 0;
}


Proverei cos� ...!!

Loading