Hai ragione scusami per la poca chiarezza, mi spiego meglio subito
Il da farsi è questo:
Obiettivo del programma:
creare una matrice inizializzata tutta a 33 di lato x scelto dall'utente.
Step che ho pensato:
Nella funzione allocMatrix dichiaro una matrice e la alloco dinamicamente in base all'x inserita dall'utente. Ritorno questa matrice al main.
Ora il modo in cui ritornarla presumo che debba tornare il puntatore alla matrice, poichè la matrice stessa non può essere ritornata.
Dal main "accolgo" quanto ritornato(l'indirizzo in memoria della matrice) in una variabile appropriata, che sarà un puntatore alla matrice.
Originariamente inviato da shodan
Che poi non ho capito se devi ritornare un doppio puntatore (matrice?) o solo un array.
Nel primo caso è proprio sbagliata la funzione allocMatrix()
Corregendo quello che mi ha segnalato mi esce fuori questo messaggio di errore:
codice:
#include <stdio.h>
#include <stdlib.h>
int** allocMatrix( void );
int main(void) {
//metto dentro al puntatore matrix l'indirizzo a matrix che mi ritorna
int **matrix = allocMatrix();
return 0;
}
int** allocMatrix( void ) {
printf("Inserire lato matrice quadrata: ");
int l;
scanf("%d", &l);
/* dichiaro un puntatore che contiene l'indirizzo ad un array lungo l*l */
int *matrix = malloc(sizeof(int)*(l*l));
for(int i = 0; i < l*l; i++)
matrix[i] = 33;
/* ritorno quello che c'è dentro alla variabile puntatore matrix ovvero, l'indirizzo dell'array l*l */
return matrix;
}
a.c: In function ‘allocMatrix’:
a.c:23:2: warning: return from incompatible pointer type
Questo è quanto, spero di essermi spiegato ora