Ragazzi dove sbaglio??
Sicuramente sbaglio o nel ritorno o nell'inizializzazione del main ma non riesco a capire che errore di sintassi c'è.
Il programma(molto semplice) ve l'ho commentato cosi vediamo anche se oltre alla sintassi c'è da rivedere la logica.
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; }Le specifiche dell'esercizio sono:3@tre ~
$ gcc -Wall -std=c99 -o a.exe a.c
a.c: In function ‘main’:
a.c:9:16: warning: initialization from incompatible pointer type
a.c:11:2: error: expected ‘,’ or ‘;’ before ‘return’
a.c:9:7: warning: unused variable ‘matrix’
a.c: In function ‘allocMatrix’:
a.c:23:2: warning: return from incompatible pointer type
Gli elementi della matrice ritornata si devono poter accedere tramite la sintassi delle parentesi quadre