[英]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.