gpt4 book ai didi

c - 结构中的二维数组 - C -

转载 作者:太空宇宙 更新时间:2023-11-04 01:12:45 26 4
gpt4 key购买 nike

我试图为我的 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. 您没有释放分配的内存。

关于c - 结构中的二维数组 - C -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8399290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com