【发布时间】:2012-02-26 14:47:43
【问题描述】:
对于字母表中的每个字母,我都有一个这样声明的 int 数组:
int const A[64] ={
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,1,1,1,0,0,0,0,
0,1,0,1,0,0,0,0,
0,1,1,1,0,0,0,0,
0,1,0,1,0,0,0,0,
0,1,0,1,0,0,0,0,
0,0,0,0,0,0,0,0
};
然后我用指向这些的指针创建另一个数组。
int const * text[] = { A, B, C };
这可以正常工作,直到该文本数组达到一定数量的不同条目。
例如这有效:
int const * text[] = { A, A, A, A, A, A, A, A }; // could even go on much longer
但这会崩溃:
int const * text[] = { A, B, C, D }; // it seems the number of different entries matters
这是为什么呢?我认为如果它是指针,那么它所指向的内容应该是不变的大小?
请注意,这是在内存非常有限的 arduino 平台上运行的。
【问题讨论】:
-
您能否对所发生的崩溃添加更详细的说明?
-
对不起,我不能,平台不会打印任何错误。程序只是运行或不运行。
-
除了
text的初始化之外,您的数组是否被引用到其他任何地方? -
@clamp:再一次,您需要一个调试策略,从您提供给我们的少量信息来看,在我看来应该有一个调试器可用。无论如何,你能比“一个 Arduino”更具体吗?您不使用调试器是否有特殊原因?
-
如果内存真的那么紧,你可以使用 char 数组。而使用位图,每个字形只需 8 个字符。