[英]2d array in Struct - C -
我試圖給我的letter.charData分配一個數組,但出現此錯誤:
IntelliSense:表達式必須是可修改的左值
我正在嘗試將我的數組arr添加到letter.charData
提前致謝!
struct _Letter{
char character;
int width;
int charData[8][5];
};
typedef struct _Letter Letter;
Letter *allocLetter(void)
{
Letter *letter;
letter = (Letter*) malloc(1 * sizeof(Letter));
letter->character = NULL;
letter->width = NULL;
/* charData? */
return letter;
}
int main(void)
{
Letter letter = *allocLetter();
int arr[8][5] =
{
0,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0
};
letter.character = '1';
letter.charData = arr;
return(0);
}
_Letter::charData
是一個數組,而不是一個指針,因此您不能只是為其分配另一個數組。 使用memcpy
將arr
的內容復制到其中,或將其類型更改為指針:
typedef struct {
char character;
int width;
int (*charData)[5];
} Letter;
也,
_
開頭,后跟大寫字母 NULL
僅應用於指針; 使用'\\0'
表示字符,以0
表示整數 malloc
的返回值是否為null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.