小弟写了一个动态链接库(标准mfc),在动态库中的导出函数中我定义了一个二维数组temp[25][45],类型是double
此二维数组是自定义的结构体中的一个成员.编译动态库没问题,可是主程序调用时就报告堆栈溢出了,请问我的二维数组是不是定义的太大了,vc中最大可以定义多大的二维数组呢?
因为数组中的值要一直用,所有就没动态开辟!!!

解决方案 »

  1.   

    一个二维数组temp[25][45],类型是double 24*5*8=960才1K不到, 堆栈溢出应该是其他地方的原因
      

  2.   

    一般情况线程的stack缺省是 1M
    By default, each thread uses 1 MB of reserved memory, and one page of committed memory数据不能超过这个值, 否则就动态分配, 或者定义成静态, 全局也行
      

  3.   

    是不是因为你这个数组是分配在栈上的?建议用new或者malloc分配。以下的代码是要出问题的:
    myfunc()
    {
    double temp[25][45];//改成用new分配
    ...
    return temp;
    }
      

  4.   

    不是这个原因吧!最好调试进取看看,有没有调式进DLL里,把DLL工程与调用工程放同一路径,打开DLL,同时打开调用程序,调入DLL函数里去看问题出在哪里。
      

  5.   

    使用 new 动态分配替代直接定义
    将栈应用转换为堆应用