Comment mettre en œuvre malloc opération en C#
float **ThreadID;
int Nthreads;
Comment effectuer ci-dessous tâche en C#?
ThreadID = (float **)malloc( Nthreads* sizeof(float *) );
Vous n'avez pas à allouer la mémoire manuellement en C#.
Pourquoi voudriez-vous jamais besoin de faire cela? L' .NET est un réussi à l'exécution, vous n'avez pas besoin de gérer votre propre mémoire.
Pourquoi voudriez-vous jamais besoin de faire cela? L' .NET est un réussi à l'exécution, vous n'avez pas besoin de gérer votre propre mémoire.
OriginalL'auteur user1561275 | 2012-07-29
Vous devez vous connecter pour publier un commentaire.
Est-il une raison pourquoi vous avez besoin d'une mémoire non managée pour votre application?
Sinon, la façon normale de faire il serait
Qui va allouer un nouveau Tableau pour vous. Si vous utilisez ce genre de déclaration dans une fonction qui est appelée beaucoup, vous voudrez peut-être ajouter le stackalloc mot-clé. sinon ralentir la collecte des ordures pourrait leed à l'augmentation de la consommation de mémoire. Avec stackalloc il sera stocké sur la pile et détruit comme toute autre variable locale au moment de quitter la fonction.
EDIT: Comme avec tous les pointeurs en C#, vous devez déclarer le dangereux cadre de votre fonction, comme
pour pionting mon erreur
Lors de l'utilisation ThreadID = new float*[Nthreads]; il donne d'erreur disant "Impossible de convertir implicitement le type 'float*[]' à 'float**'"
OriginalL'auteur Legionair
Vous pouvez essayer avec
De détails sur msdn
http://msdn.microsoft.com/fr-fr/library/system.runtime.interopservices.marshal.allochglobal.aspx
OriginalL'auteur Aghilas Yakoub
OriginalL'auteur Serj-Tm