| 如下面的代码所示,一组为Line及其相关的标量,另一组Array及其相关的变量,两组变量的用法几乎完全相同. //数据表
 unsigned char code Line[]={略.............};//起始地址0x0026;
 unsigned char code Array[]={略...........};//起始地址0x0058;
 
 //指针声明
 unsigned char *pLine, *pBufferLine, *pBegin, *pEnd;
 unsigned char *pArray, *pBufferArray;
 
 结果程序中:
 pLine=Line; //结果正确,调试窗口显示pLine为 C:0x0026;*pline也是正确值.
 pArray=Array; //结果错误,调试窗口显示pArray为 I:0x58;*pArray为错误值.
 
 当我用pLine来指向Array:
 pLine=Array; //结果正确,调试窗口显示pLine为 C:0x0058;*pline也是正确值.
 
 当我将pArray的声明移到pLine的声明语句里时.
 pLine=Array;//结果错误,pLine为 I:0x58;*pLine为错误值.
 pLine=pLine;//结果正确,pLine为 C:0x0058;*pLine为正确值.
 
 旧的程序,没有Array相关的变量,已经用了一年了.是没有问题的.
 约2星期前,添加了一些数据表和指针,结果出现了类似上述的问题.没找到原因,我怀疑是程序写乱了.
 于是,重新再复制一个工程,换一种算法,但修改程序依然要添加数据表和相关指针.结果依然是新添加的指针不能正确指向.
 
 哪出错了?
 |