u011723075
arthas2160
2015-03-28 14:37
采纳率: 66.7%
浏览 3.2k

MATLAB和C++混合编程问题:如何让C中的全局变量不和matlab共享内存

我在做matlab2014和VS2013的混合编程,我在C的源码中有一个全局变量g,然后我在matlab中使用并行计算对c程序进行循环调用时,这个全局变量居然不会在c程序结束的时候被释放,而是一直在内存中,每次循环的时候都不断变化...例如一开始g=100,matlab调用一次c程序g++,然后在matlab中循环调用c程序,按理c程序中的全局变量应该在c程序结束时被释放,也就是输出结果应该是100,101,100,101....而实际结果确实100,101,102,103,也就是c和matlab共享内存了...如何才能避免这个问题呢,让c中的全局变量不是matlab中的全局变量?
说话有点啰嗦实在不好意思...还请赐教~万分感谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • caozhy
    已采纳
    点赞 评论
  • oyljerry
    oyljerry 2015-04-05 07:09

    如果不想累加,可以在调用dll的时候先初始化g为100再调用dll的函数。

    点赞 评论
  • devmiao
    devmiao 2015-04-05 07:12

    用LoadLibrary加载dll,用FreeLibrary卸载试试看。

    点赞 评论

相关推荐