[英]Strings in multidimensional array in C
如何在不使用指針的情況下用C語言為字符串定義數組? 我正在嘗試創建一個棋盤。
#include <stdio.h>
#include <string.h>
int main(void){
char board[8][8] = {{ "R1 ", "N1 ", "B1 ", "QU ", "KI ", "B2 ", "N2 ", "R2 "},
{ "P1 ", "P2 ", "P3 ", "P4 ", "P5 ", "P6 ", "P7 ", "P8 "},
{ "","","","","","","",""},
{ "","","","","","","",""},
{ "","","","","","","",""},
{ "","","","","","","",""},
{ "p1 ", "p2 ", "p3 ", "p4 ", "p5 ", "p6 ", "p7 ", "p8" },
{"r1 ", "n1 ", "b1 ", "qu ", "ki ", "b2 ", "n2 ", "r2 "}};
}
我收到一個錯誤“ char數組初始化程序中的多余元素”。 我該怎么辦 ? 我不允許使用指針。
您正在定義一個由字符串組成的2D數組。 由於字符串本身是C / C ++中的數組,因此您實際上是在創建3D數組。
有多種解決方法:
char *board[8][8]
定義一個8x8的字符串指針數組。 char board[8][8][4]
添加缺少的尺寸(無論單個條目有多長,它都使用相同的內存;每個條目最多可以包含3個字符和1個終止符)。 附帶說明一下,您應該使用const關鍵字,因為通常您不想修改字符串內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.