Salve a tutti, sto scrivendo un programma in C per risolvere un sistema di equazioni (triangolare superiore) con il metodo di sostituzione all' indietro.
Senza entrambe le righe sottolineate ho nel debug un segmentation fault, decommentandole il compilatore non protesta(a me non servono).perchè? ecco il code :
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char* argv[]){
char name[256] = {0};
FILE *fp = NULL;
int* matrixstorage;
int** matrix;
int* solution;
int rows;
int columns;
int numelements;
int i;
int j;
int k=0;
if (argc != 2){
printf("Digitare il percorso del file contenente il sistema");
}
fp = fopen(argv[1], "r");
fscanf(fp,"%d",&rows);
fscanf(fp,"%d",&columns);
numelements = (((rows*columns)/2)+rows);
matrixstorage = (int*)malloc((rows*((columns)/2)+rows)*sizeof(int));
matrix = malloc(rows*sizeof(int*));
solution = malloc(rows*sizeof(int*));
for(i = 0;i<rows;i++){
matrix[i]=&matrixstorage[k];
k=k+columns-i;
//matrix[i]=&matrixstorage[i*(n+1)];
}
for(i = 0;i<numelements;i++){
fscanf(fp,"%d",matrixstorage+i);
//int value=(*(matrixstorage+i));
//printf("%d ",*(matrixstorage+i));
}
system("PAUSE");
}