如何在范围内的结构中保存一个数组?

问题描述:

我声明了一个结构如下:如何在范围内的结构中保存一个数组?

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

我有一个初始化十六进制,并返回它,像这样(CGPointMake的内容调用略去了)工厂方法:

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

return hex; 

如果我在退货声明中检查并检查hex,我看到第一个成员CGPoint center完好无损,但数组的元素全部列为“超出范围”。

我该如何构建并返回这个结构,使其数组成员的内容将会持久?

这个“超出范围”只是谈论调试器显示自动跟踪的内容,而不是构建错误(假设您使用调试信息构建)。

幸运的是,您可以告诉gdb评估表达式。例如,如果您处于执行中'hex'可见的位置,请单击xcode调试器中的GDB提示并键入“print hex.points [0]”,它应该为您提供值。

+0

你是绝对正确的 - 现在我知道依靠提示符和本地窗口而不是调试器工具提示。谢谢。 :) – 2012-02-04 16:30:03