none
Pointeur nul RRS feed

  • Question

  • Bonjour à vous, amis programmeurs.

    Je sollicite votre aide. J'aimerais savoir si parmi vous, il y aurait des personnes qui sauraient une alternative pour traduire un pointeur nul.

    Ma situation : J'ai une méthode qui possède 5 paramètres dont un de retour -> int methode(a,b,c,d,e).

    Le paramètre "c" est un pointeur vers une structure. Cependant, je veux utiliser cette méthode avec de paramètre avec une valeur nulle. J'ai vu que l'on ne peut pas convertir ce paramètre "IntPtr" en "null". Quelqu'un aurait-il une alternative à mon problème?

    Cordialement.

    jeudi 28 juin 2012 08:16

Réponses

  • Le contexte reste imprécis. Voir peut-être http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.gchandle.addrofpinnedobject.aspx qui permet à la fois de récupérer l'adresse et d'empêcher un éventuel déplacement.

    Selon le cas, il pourrait être bien plus simple d'utiliser un tableau d'objets rien n'empêche d'avoir à la fois une signature int methode(int a,int b,IntPtr c,int d, int e) et en même temps une signature int methode(int a,int b,MyType[] c,int d,int e) ce qui permettrait de passer tout simplement un tableau.

    Ou aussi autant de signatures typées que possible ce qui rendrait inutile d'utiliser explicitement les pointeurs...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    • Marqué comme réponse VIANEF vendredi 29 juin 2012 15:21
    jeudi 28 juin 2012 16:44
    Modérateur

Toutes les réponses

  • Bonjour,

    Si je comprends bien le paramètre "c" est de type IntPtr ? Si oui, voir http://msdn.microsoft.com/fr-fr/library/system.intptr.zero.aspx


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    jeudi 28 juin 2012 09:11
    Modérateur
  • Merci beaucoup pour votre réponse. Elle fut très utile.

    J'ai une autre question concernant les pointeurs. Connaissez-vous un moyen pour créer un pointeur vers une liste? Je sais faire des pointeurs "vers des structures" mais "vers des listes"; je me sens un peu seul. Auriez-vous une solution à m'apporter?

    Cordialement.

    jeudi 28 juin 2012 14:04
  • Commencez par expliquer ce que vous cherchez à faire. Quel est le type exact de cette liste ? Vous cherchez à appeler une fonction de l'API Windows ? Si oui, laquelle ?

    Pour une intro générale sur les pointeurs voir http://msdn.microsoft.com/fr-fr/library/y31yhkeb(v=vs.80).aspx Si vous venez de C++, en C# ils sont très rarement utiles (et un objet est un type référence et est donc déjà un pointeur).

    Il sera plus facile de vous aider sur le "comment" en connaissant déjà le "quoi"...

    Par exemple si cette fonction accepte des paramètres de type différent plutôt que de passer explicitement un pointeur une approche est de créer des signatures différentes avec le paramètre c qui varie uniquement par son type ce qui devrait permettre de couvrir les différents types possibles sans avoir à passer explicitement par des pointeurs et en gardant un typage fort.


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".


    jeudi 28 juin 2012 14:49
    Modérateur
  • Voici ma situation : j'ai une méthode -> int methode(a,b,c,d,e);

    Cette fois-ci, le paramètre "c" est encore un pointeur mais vers une liste. Cette liste contient des identifiants.

    J'ai essayé de créer une structure de remplacement, renseigner cette structure et utiliser "StructureToPtr" : sans succès. A l'heure qu'il est, j'ai ma liste avec les identifiants et un pointeur de type "IntPtr". Donc, est-il possible de faire la même chose que pour les structures?

    jeudi 28 juin 2012 15:14
  • bonjour 

    faire pointer C ver Nil

    Exemple : 

    NSString *str=NULL;
    id str1=nil;

    Nil n'est pas Null

    Nil signifie qu'il ne va null part or Null signifie il n'a pas de valeur

    Merci

    jeudi 28 juin 2012 15:33
  • Le contexte reste imprécis. Voir peut-être http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.gchandle.addrofpinnedobject.aspx qui permet à la fois de récupérer l'adresse et d'empêcher un éventuel déplacement.

    Selon le cas, il pourrait être bien plus simple d'utiliser un tableau d'objets rien n'empêche d'avoir à la fois une signature int methode(int a,int b,IntPtr c,int d, int e) et en même temps une signature int methode(int a,int b,MyType[] c,int d,int e) ce qui permettrait de passer tout simplement un tableau.

    Ou aussi autant de signatures typées que possible ce qui rendrait inutile d'utiliser explicitement les pointeurs...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    • Marqué comme réponse VIANEF vendredi 29 juin 2012 15:21
    jeudi 28 juin 2012 16:44
    Modérateur