我有一个字符串数组,我正在尝试从每个字符串中访问第二个字符。我可以正常访问和打印第一个字符,但是当我尝试对第二个字符执行相同操作时,会遇到段错误。参见下面的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Intializes the chess board in its default state
char gameBoard[64][3] = {
{"BR"}, {"BN"}, {"BB"}, {"BQ"}, {"BK"}, {"BB"}, {"BN"}, {"BR"},
{"BP"}, {"BP"}, {"BP"}, {"BP"}, {"BP"}, {"BP"}, {"BP"}, {"BP"},
{"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "},
{"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "},
{"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "},
{"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "},
{"WP"}, {"WP"}, {"WP"}, {"WP"}, {"WP"}, {"WP"}, {"WP"}, {"WP"},
{"WR"}, {"WN"}, {"WB"}, {"WQ"}, {"WK"}, {"WB"}, {"WN"}, {"WR"}
};
int main(int argc, char** argv){
printf("%c\n", gameBoard[0][0]);
printf("%c\n", gameBoard[0][1]);
}
此代码提供输出:
B
Segmentation fault (core dumped)
我想我可能未正确初始化数组或对内存做了一些愚蠢的操作,但我不确定。我尝试过更改数组的尺寸,以确保分配了足够的内存,但未执行任何操作。
任何帮助将不胜感激。泰]
编译器版本:gcc(Debian 8.3.0-6)8.3.0
您的代码段是正确的,但是您已经使用了int main()
功能,所以必须将return
设置为它:
代码段:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Intialises the chess board in its default state
char gameBoard[64][3] = {
{"BR"}, {"BN"}, {"BB"}, {"BQ"}, {"BK"}, {"BB"}, {"BN"}, {"BR"},
{"BP"}, {"BP"}, {"BP"}, {"BP"}, {"BP"}, {"BP"}, {"BP"}, {"BP"},
{"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "},
{"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "},
{"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "},
{"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "}, {"O "},
{"WP"}, {"WP"}, {"WP"}, {"WP"}, {"WP"}, {"WP"}, {"WP"}, {"WP"},
{"WR"}, {"WN"}, {"WB"}, {"WQ"}, {"WK"}, {"WB"}, {"WN"}, {"WR"}
};
int main(int argc, char** argv)
{
printf("%c\n", gameBoard[0][0]);
printf("%c\n", gameBoard[0][1]);
return 0;
}
此代码将完美地用于获取数组的特定元素
输出:
B
R
您需要启动数组
char gameBoard[64][3] = {
{'B','R','/0'}, {'B','N','/0'}, {'B','B','/0'}, {'B','Q,'/0'},......
};
或使用字符串文字
char gameBoard[64][3] = {
"BR", "BN", "BB", "BQ",......
};
参考:-https://overiq.com/c-programming-101/array-of-strings-in-c/