簡體   English   中英

Struct中的2d數組-C-

[英]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是一個數組,而不是一個指針,因此您不能只是為其分配另一個數組。 使用memcpyarr的內容復制到其中,或將其類型更改為指針:

typedef struct {
    char character;
    int width;
    int (*charData)[5];
} Letter;

也,

  1. 標識符名稱不應以_開頭,后跟大寫字母
  2. NULL僅應用於指針; 使用'\\0'表示字符,以0表示整數
  3. 您無需檢查malloc的返回值是否為null
  4. 您沒有釋放分配的內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM