IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

allocation dynamique en C#


Sujet :

C#

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Points : 161
    Points
    161
    Par défaut allocation dynamique en C#
    bonjour à tous, je débute en C# mais je suis assez accoutumé de Java et C/C++ donc pas trop perdu!

    je cherche à écrire en C# de grosses fonctions écrites à la base en C++ (pour une bonne rapidité d'execution) .
    Et dans mon programme beacoup d'allocations du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int* tab = new int[100]
    et malheureusement ça ne compile pas en C#, ou plutot ça ne s'exécute pas , l'erreur étant :
    Impossible de convertir implicitement le type int[] en int*
    c'est étonnant puisque ça passe très bien en C++.

    Donc ma question est : est-il possible d'allouer un tableau dynamiquement à la manière C++ ? ou est-on obligé de passer par des classes dédiées genre array ou list ?
    parce que bon j'aimerais garder une bonne vitesse d'execution (quoique là ça n'est pas vraiment un probleme C# se démerde bien) mais surtout éviter de modifier des dizaines ou meme centaines de lignes de code pour modifier mes fonctions en utilisant des classes dédiées

    merci

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Si tes tableaux sont de taille fixe, utilise des array :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int[] monTableau = new int[100];
    Sinon, utlise des listes (équivaut au vector de la STL) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<int> maListe = new Liste<int>();
    A mon avis, pour l'énorme majorité des projets, les listes sont bien plus utiles que les array. Et si la perf t'inquiète vraiment, la propriété "Capacity" de la liste permet de définir une capacité initiale, évitant des tas de réallocations.
    c'est étonnant puisque ça passe très bien en C++.
    Comme java, C# s'inspire de C et C++, mais n'est absolument pas compatible avec
    ಠ_ಠ

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Points : 161
    Points
    161
    Par défaut
    absolument pas compatible c'est peut etre un peu exagéré, ya quand meme pas mal de choses communes

    malheureusement pour moi l'allocation de tableaux n'en fait pas partie..
    bon et bien je sens que je vais m'amuser avec tous ces Array et List !

    merci pour la réponse (dont je me doutais)

  4. #4
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Il y a une inspiration certaine, mais alors que C++ avait été conçu pour être compatible à 99% avec C, C# n'a pas été fait pour compiler du C++.

    Ce que tu dois faire, c'est pas une adaptation à un autre compilo, c'est une traduction vers un autre langage

    D'où le C++/CLI, qui permet dans un même code de mélanger du code managé et du non managé. Si tu connais pas, je t'invite à voir les tutos et le forum qui lui est dédié sur dvp.com.

    Et puis, la gestion des tableau est loin d'être ce qui distingue le plus C++ de C#. Si tes méthodes C++ font un lourd usage de pointeurs, d'héritage multiple ou de templates, bonne chance
    ಠ_ಠ

Discussions similaires

  1. probleme d'allocation dynamique
    Par vince3320 dans le forum C
    Réponses: 10
    Dernier message: 22/04/2004, 16h27
  2. petit pbm allocation dynamique de stringGrid
    Par AnneOlga dans le forum C++Builder
    Réponses: 10
    Dernier message: 17/01/2004, 11h59
  3. Allocation dynamique de structures
    Par fr_knoxville dans le forum C
    Réponses: 8
    Dernier message: 06/05/2003, 21h59
  4. Allocation dynamique de mémoire en asm
    Par narmataru dans le forum Assembleur
    Réponses: 7
    Dernier message: 17/12/2002, 22h31
  5. Réponses: 4
    Dernier message: 03/12/2002, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo