【发布时间】:2015-01-12 21:06:36
【问题描述】:
我有这个……
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//definições de constantes usadas para agilizar a implementação.
#define MINA 'M'
#define SUB 'S'
#define JOG 'U'
#define CC 'I'
//Função que inicializa posição do jogador.
void posjog(char **mesa,int lin, int col){
srand(time(NULL));
int i = rand() % 2;
int j = rand() % 2;
if(i==1){
i = lin;
}
if(j==1){
j = col;
}
mesa[i][j] = JOG;
}
//Função que inicializa a matriz vazia.
void arfill(char **mesa,int lin, int col){
for(int i=0;i<=lin;i++){
for(int j=0;j<=col;j++){
mesa[i][j]='.';
}
}
}
void show(char **mesa,int lin,int col){
for(int i=0;i<=lin;i++){
for(int j=0;j<=col;j++){
printf("%c",mesa[i][j]);
}
printf("\n");
}
}
int main(void) {
char campo[9][9]; //matriz de jogo
arfill(campo,9,9);
posjog(campo,9,9);
show(campo,9,9);
return EXIT_SUCCESS;
}
我的代码总是崩溃,我不知道为什么。 你们中的一些人可以帮我解决这个问题吗? 我在 Eclipse 上也有一些警告... “从不兼容的指针类型传递 'arfill' 的参数 1 [默认启用]” "预期为 'char **' 但参数类型为 'char (*)[9]'"
【问题讨论】:
-
您是否使用调试器检查过它崩溃的行。还有,什么样的问题?它不编译/构建吗?如果它构建,使用调试器找出它开始出现问题的行。
-
void func(int lin, int col, char mesa[lin][col])和i<=lin,j<=col-->i<lin,j<col -
数组不是指针,这个警告告诉你一切。
标签: c arrays function pointers char