C6747工程变量怎么共用内存地址了

C6747工程变量怎么共用内存地址了

此问题已被解答
All Replies
  • 秀才193分

    你好,我最近调试项目时发现如下这种情况:

    我在一个c文件里定义了两个全局变量,unsigned int num; 和 unsigned int date[]; 。调试时发现num分配的地址是0x118000d4;date数组分配的首地址是0x118000d0。结果是当date数组有很多数据存放时,就会把num的值给覆盖了,不知道应该怎样才能避免这种情况发生呢?

  • 状元125092分

    请问定义数组的时候定义数组大小了吗?

  • 秀才193分

    没有定义数组大小

  • 状元125092分

    试试定义数组大小,避免太大覆盖掉后面的数据。

  • 秀才193分

    嗯,我之前是把数组改成固定大小的就可以了,但是我这里的数据大小是不固定的,这样做不是很好,有没有更好的办法解决这个问题呢?从而不需要改固定大小数组

  • 秀才193分

    这个问题在我定义一个double变量的时候也出现了,因为double占用8个字节,调试时发现被其它变量串改了

  • 状元125092分

    可以用#pragma DATA_SECTION ( symbol , " section name ")把数组定义到一个专门的段,然后这个段要预留足够的空间给数组。

  • 秀才193分

    现在也只能这样做了