【发布时间】:2014-11-27 08:34:14
【问题描述】:
我的案例与stackoverflow.com/questions/16676973有些相似,但是由于缺乏知识,我无法从中吸取重要的教训...
我想要实现的是在编译时将常量图像数据加载到内存中(不确切知道每个图像的大小)并获取每个图像的标识符数组,以便我可以随时在代码中访问它们。 理想的方法是指向每个图像开头的指针数组,但是有一个问题是我以后如何确定每个图像的确切大小。当我调用 images[i] 时,sizeof(imagedatatype) 是否会根据 i 改变...(我猜 - 不。那么如何?)
我的尝试是这样的:
typedef struct _imagedatatype {
uint8_t imageId;
uint8_t dataofoneimage[]
} imagedatatype;
const imagedatatype images [] = {
{1,{A, ,L,O,T, ,O,F, ,C,O,N,V,E,R,T,E,D, ,I,M,A,G,E, ,D,A,T,A, ,I,N, ,H,E,X}},
{2,{A, ,L,O,T, ,O,F, ,C,O,N,V,E,R,T,E,D, ,I,M,A,G,E, ,D,A,T,A, ,I,N, ,H,E,X}}
//of course, data is fake here, just for illustration purposes, normally it is 0x00, 0x0c, etc
};
当然,它会引发错误,例如“数组的初始化程序太多......”。
简而言之 - 我觉得那里有很多错误,主要是意识形态上的,但正如我所说,我是 C 新手,所以我正在努力快速学习所有这些复杂的东西..
请帮忙。
【问题讨论】:
标签: c arrays struct initialization constants