2012-02-04 3 views
-1

J'ai déclaré struct comme suit:Comment conserver un tableau dans une structure?

struct Hex 
{ 
    CGPoint center; 
    CGPoint points[6]; 
    CGFloat width; 
    CGFloat sideLength; 
}; 

J'ai une méthode de fabrication qui initialise un maléfice et le renvoie, comme si (contenu CGPointMake appels omis par souci de concision):

struct Hex hex = 
{ 
    CGPointMake(..), 
    { 
     CGPointMake(..), 
     CGPointMake(..), 
     CGPointMake(..), 
     CGPointMake(..), 
     CGPointMake(..), 
     CGPointMake(..) 
    }, 
    width, 
    S 
}; 

return hex; 

Si je casse à l'instruction de retour et que j'inspecte hex, je vois que le premier membre - CGPoint center - est intact, mais les éléments du tableau sont tous listés comme "Hors de portée".

Comment puis-je générer et renvoyer cette structure de telle sorte que le contenu de son membre de groupe persistera?

Répondre

1

Ce 'hors champ' ne parle que de ce que l'affichage du débogueur suit automatiquement, et n'est pas la faute de votre build (en supposant que vous ayez construit avec des informations de débogage).

Heureusement, vous pouvez dire à gdb d'évaluer les expressions. Par exemple, si vous êtes à un point de l'exécution où 'hex' est visible, cliquez sur l'invite GDB dans le débogueur xcode et tapez "print hex.points [0]" et il devrait vous donner la valeur .

+0

Vous avez tout à fait raison - et maintenant je sais me fier à l'invite et à la fenêtre locale plutôt qu'à l'info-bulle du débogueur. Merci. :) –

Questions connexes