在函数A中定义局部变量,数组CArray a,在函数A中调用函数B,函数B没有对数组a进行任何操作。
函数B返回时,数组a的m_nsize变成一个很大的数和m_nmaxsize=1
在没有调用函数B之前数组a的m_nsize=10,m_nmaxsize=10
请问什么操作可能导致数组的这两个变量发生变化。
谢谢!

解决方案 »

  1.   

    有可能您在什么地方进行了越界之类的操作,有时候就会出现这样的情况。
    把代码贴出来看看,找不出原因的话只有使用另外的方式来重写函数,比如使用vector
    主要这样的问题有时候不太好找
      

  2.   

    代码太长了。
    数组a是函数A中的局部变量,没有作为参数传递给函数B。
    函数B是在动态链接库中的函数,使用calloc分配内存比较多。
      

  3.   

    在函数A中定义了4个数组CArray,a是第一个被定义的,其余的三个数组在函数B返回时都没有发生变化。