Ciao a tutti,volevo scrivere un programma che alloca in modo dinamico una matrice e la inizializza in modo tale che il contenuto è dato dalla somma dell'indice di riga per quello di colonna.Per prova nel main ho inserito una printf che mi stampa qualche valore.Non capisco perchè se come dimensioni di ingresso della matrice passo righe=1,colonne=1,funziona,mentre se inserisco una dimensione piu grande,quando eseguo il programma ho l'errore di violazione della memoria in widows e segmentation fault sotto linux.Allego il codice:
#include <stdio.h>
#include <stdlib.h>
void matrix(int R,int C,int **m);
int main(int argc, char *argv[])
{
int R,C;
int *m=NULL;
printf("\n R:");//righe
scanf("%d",&R);
printf("\n C:");//colonne
scanf("%d",&C);
matrix(R,C,&m);
printf("\n\n %d %d %d %d\n",m[0],m[1],m[2],m[3]);
system("PAUSE");
return ;
}
void matrix(int R,int C,int **m)
{
int i,j;
*m=(int*)malloc(R*C*sizeof(int));
for(i=0;i<R;i++)
for(j=0;j<C;j++)
*m[i*C+j]=i+j;
}
Dove sbaglio????
ciao e grazie per l'aiuto!