假设我有一个固定大小为 3 的数组,用于存储颜色的 RGB。
例子:
color[3] = {0, 0, 255}
我还有另一个数组 arrayOfColors 存储许多颜色。
例子:
arrayOfColors = { {0, 0, 255}, {0, 0, 0}, {255, 255, 255} }
我不确定最好的方法是什么,但我已经尝试过。但当我采用这种方法时,我遇到了错误。请帮帮我,我对C语言很陌生。先感谢您!
unsigned char color1[3] = {0, 0, 0};
unsigned char color2[3] = {0, 255, 255};
unsigned char *rowColors = NULL;
rowColors = (unsigned char*)malloc((2) * sizeof(char));
rowColors[0] = color1;
rowColors[1] = color2;
Here
unsigned char *rowColors = NULL;
rowColors
is a 无符号字符指针 i.e rowColors[0]
是一个单一的字符和一个字符无法容纳字符缓冲区像下面这样
rowColors[0] = color1; /* rowColors[0] is a char, it can't hold char buffer color1 */
rowColors[1] = color2;
如果您想存储多个字符缓冲区,例如color1
and color2
into rowColors
,它应该是unsigned char**
键入或指针数组不只是unsigned char*
type.
示例代码
unsigned char color1[3] = {0, 0, 0};
unsigned char color2[3] = {0, 255, 255};
unsigned char *rowColors[2]; /* USE ARRAY OF POINTERS */
for(int row = 0;row < 2; row++) {
rowColors[row] = malloc(MAX_EACH_BUF_SIZE)); /* ALLOCATE MEMORY FOR EACH POINTER FIRST, define MAX_EACH_BUF_SIZE value accordingly */
}
/* AND THEN STORE INTO ARRAY OF POINTER */
rowColors[0] = color1;
rowColors[1] = color2;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)