读书人

dll中new的数组怎么传递出去

发布时间: 2012-06-25 18:37:39 作者: rapoo

dll中new的数组如何传递出去
我需要在dll中new三个数组并传递出去,供其余的dll使用。

所有的dll由第三方软件调用,调用者不知道三个数组的大小。因此也不能在dll外部先开辟数组空间。

我在dll中开辟空间后,该如何将这些数组传递出去呢?

如果将函数写成这样:

void _declspec(dllexport) dllfun(int *A, int *B, int *C)

这种形式在调用之前就需要将A B C 三个数组的空间开辟好,并将首地址传递给dll,这不是我想要的。



[解决办法]
用二级指针就可以吧,
void _declspec(dllexport) dllfun(int **A, int **B, int **C)
*a = new int[m];

[解决办法]

探讨

用二级指针就可以吧,
void _declspec(dllexport) dllfun(int **A, int **B, int **C)
*a = new int[m];

[解决办法]
别人都不知道你到底分配了多大的内存,你怎么防止别人越界呢
[解决办法]
纠结,第三方软件中还没有指针这个概念
这个是什么意思。你说的应该是用上层用C#和Java封装吗???
在封装的时候将指针转化成它需要的类型。
还有就是用引用,不知道行不行

读书人网 >C++

热点推荐