我在代碼塊上寫了一些c代碼。它在Windows 上工作得很好,但在Linux上出現了分段錯誤。爲什麼?c程序在windows上運行linux上的segmantation故障
這是主要的。我用3個庫和opencells方法調用遞歸方法。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc , char *argv[])
{
srand(time(NULL));
int size=atoi(argv[1]),trial=atoi(argv[2]); //! program basladıgında gelen argumanlar
int i,j; //! dongu degişkenleri
int **matrix = (int **)malloc(size * sizeof(int)); //!matriksin 1 boyutunu dinamik olarak yarattık
int *counters = (int *)malloc(trial * sizeof(int)); //! buda counterları tutcagımız array
for (i=0; i<size; i++)
matrix[i] = (int *)malloc(size * sizeof(int)); //! 2. boyutada yarattık
for(i=0;i<size;i++)
for(j=0;j<size;j++) //! matrixsi sıfırla saçma sapan degerler geliyo yoksa
matrix[i][j]=0;
for(i=0;i<trial;i++)
{
counters[i]=opencells(matrix,size); //!Random kapı açan ve bunun sayısını donduren fonksyon
}
printboard(matrix,size,trial,counters); //!Output.txtye yazdır
for (i=0; i<size; i++)
free(matrix[i]); //! ramden aldıgımız yerleri sal gitsin
free(matrix); //! bosu bosuna makinayı zorlamayalım
return 0;
}
你知不知道你在哪裏得到的段錯誤? – Arc676
創建一個核心轉儲,以便您可以看到段錯誤中的命令結果。沒有這個,這是一個_guessing遊戲_。 – arkascha
noı在gcc -o main.c main命令行上運行它,然後./main 10 100它只是表示seg錯誤 – asdasdasd