[英]How to implement malloc operation in C#
float **ThreadID;
int Nthreads;
如何在C#中执行以下任务?
ThreadID = (float **)malloc( Nthreads* sizeof(float *) );
您的应用程序是否需要非托管内存? 否则正常的做法是
ThreadID = new float*[Nthreads];
这将为您分配一个新阵列。 如果在一个被调用的函数中使用这种语句,则可能需要添加stackalloc-keyword。 否则慢速垃圾收集可能导致内存消耗增加。 使用stackalloc,它将存储在堆栈中,并在离开函数时作为任何其他局部变量销毁。
ThreadID = stackalloc float*[Nthreads];
编辑:与C#中的所有指针一样,您需要声明函数的不安全上下文,例如
unsafe int doSomething(){
...
}
你可以试试
Marshal.AllocHGlobal
你有msdn的详细信息
http://msdn.microsoft.com/fr-fr/library/system.runtime.interopservices.marshal.allochglobal.aspx
float[][] ThreadId;
int NThreads;
ThreadId = new float[Nthreads][];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.