Я пытаюсь разделить мой код на функции, у меня есть пример кода "Game Of Life". Однако, когда я пытаюсь инициализировать двумерный массив сетки в функции, gnuplot не выдает ошибку допустимых точек данных.
Это глобальные переменные, объявленные до main:
static char **currWorld=NULL, **nextWorld=NULL
Это исходный лог c для инициализации игровой сетки, но эта часть в основном.
if (game == 0){ // Use Random input
for(i=1;i<nx-1;i++){
for(j=1;j<ny-1;j++) {
currWorld[i][j] = (real_rand() < prob);
population[w_plot] += currWorld[i][j];
}
}
}
else if (game == 1){ // Block, still life
printf("2x2 Block, still life\n");
int nx2 = nx/2;
int ny2 = ny/2;
currWorld[nx2+1][ny2+1] = currWorld[nx2][ny2+1] = currWorld[nx2+1][ny2] = currWorld[nx2][ny2] = 1;
population[w_plot] = 4;
}
else if (game == 2){ // Glider (spaceship)
printf("Glider (spaceship)\n");
// Your code codes here
}
else {
printf("Unknown game %d\n",game);
exit(-1);
}
Это моя функция:
int init_game(int choice, int probability){
int i,j;
if (choice == 0){ // Use Random input
for(i=1;i<nx-1;i++){
for(j=1;j<ny-1;j++) {
currWorld[i][j] = (real_rand() < probability);
population[w_plot] += currWorld[i][j];
}
}
}
else if (choice == 1){ // Block, still life
printf("2x2 Block, still life\n");
int nx2 = nx/2;
int ny2 = ny/2;
currWorld[nx2+1][ny2+1] = currWorld[nx2][ny2+1] = currWorld[nx2+1][ny2] = currWorld[nx2][ny2] = 1;
population[w_plot] = 4;
}
else if (choice == 2){ // Glider (spaceship)
printf("Glider (spaceship)\n");
// Your code codes here
}
else {
printf("Unknown game %d\n",choice);
exit(-1);
}
}
и мой вызов функции в основном:
init_game(game, prob);
значение игры равно 0, вероятность равна 0,2, и я проверил распределение памяти и другие вещи, они отлично работают. Разница лишь в том, что я переместил логи c в функцию. Как это может случиться? Мои массивы глобальные, я не могу понять, как его нельзя инициализировать.
Это ошибка gnuplot:
Skipping data file with no valid points
Поскольку gnuplot и другие функции работают нормально, я не добавил их, но если вам нужна информация, я могу добавить.
Вот ссылка на сам файл:
file