#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include <curses.h>
int** allocArrayMatrix ( int nl, int nc);
void showArrayMatrix(int ** a, int nl, int nc);
void formArray(int ** a, int nl, int nc);
int SumArray(int ** a, int nl, int nc);
void freeMemoryArray(int** a, int nl);
int main() {
int **a, nl=10, nc=10;
int f;
int *p;
a = allocArrayMatrix(nl, nc);
if (a == NULL) {
puts("Memoria p/u tabloul 2-D nu a fost alocata");
}
else {
puts("Memoria a fost alocata cu succes");
}
formArray(a,nl,nc);
printf("\nTablul bidimensional format:\n ");
showArrayMatrix(a,nl,nc);
p = SumArray(a, nl,nc );
for (f=0;f<nc;f++){
printf("%d\t",*(p+f));
}
freeMemoryArray(a,nl);
}
int ** allocArrayMatrix( int nl, int nc) {
int i;
int** a=(int **)malloc(nl*sizeof (int*));
if (a==NULL) return a;
for (i=0; i<nl ;i++)
{a[i] =(int*)malloc(nc*sizeof(int));
if (a[i]==NULL) return NULL;
}
return a;
}
void showArrayMatrix(int ** a, int nl, int nc)
{
int i,j;
for (i=0;i<nl;i++){
for (j=0;j<nc;j++) {
printf ("%d\t", a[i][j] );}
printf("\n"); }
return;
}
void formArray(int ** a, int nl, int nc)
{
int i,j;
for (i=0;i<nl;i++){
for (j=0;j<nc;j++)
a[i][j] = rand()%100-50 ;
}
return;
}
int SumArray(int ** a, int nl, int nc)
{int i,j, Sum;
static int b[10];
for (i=0; i<nc; i++){
Sum = 0;
for (j=0;j<nl;j++){
Sum = Sum + a[j][i];
}
b[i] = Sum;
}
return b;
}
void freeMemoryArray(int** a, int nl) {
int i,j;
for (i = 0; i < nl; i++) {
free(a[i]);
}
free(a);
}
I have a problem, Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)