Итак, я работаю над чем-то, и у меня большая проблема. В моей программе при вводе небольшого размера массива у меня нет проблем, и программа работает нормально (например, 3x3). Когда я вводю массив X с чем-то вроде 6x6 (i = 6, j = 6), я получаю эту ошибку, и я действительно не знаю почему ... Я пытаюсь решить ее со вчерашнего дня и до сих пор ничего не могу :( Кто-нибудь может помочь я? Программное обеспечение, которое я использую на своем компьютере, - это Ubuntu 18.04, если это имеет значение. Я буду благодарен, если кто-нибудь поможет.
Мой код такой:
#include <stdlib.h>
int main(int argc, char *argv[])
{
int N,M; // N=megethos rows , M=megethos columns
int **X,**Y; // pinakas
int size,i,j,num;
int freqamount, sizeOfArray;
float freq;
printf("\n\nGive me the rows of the table: ");
scanf("%d",&N);
printf("\n\nGive me the columns: ");
scanf("%d",&M);
size = N*sizeof(int);
X = malloc(size);
size = M * sizeof(int);
for(i=0; i<M;i++){
X[i] =(int*)malloc(size);
}
Y = malloc(size);
for(i=0;i<3;i++){
Y[i] = (int*)malloc(3*sizeof(int));
}
printf("\n\nGive the number ");
scanf("%d",&num);
printf("\n\ngive the frequence");
scanf("%f",&freq);
sizeOfArray = N*M;
freqamount =(int) ((freq * sizeOfArray)/100);
printf("\nIt should appear: %d times\n",freqamount);
/*
if(freqamount == 100){
X[i][j] = num;
}
if(freqamount == 0){
x[i][j] != num;
}
X[i][j] = rand() % 100;
*/
for(i=0;i<N;i++){
for(j=0;j<M;j++){
X[i][j] = num;
}
}
for(i=0;i<N;i++){
for(j=0;j<3;j++){
if(j=0){
Y[i][j] = rand() % 100;
}
if (j=1){
Y[i][j] = i;
}
if(j=2){
Y[i][j] = j;
}
}
printf("%d\t",Y[i][j]);
}
for(i=0;i<N;i++){
free(X[i]);
}
free(X);
return 0;
}