如何在范围内的结构中保存一个数组?
问题描述:
我声明了一个结构如下:如何在范围内的结构中保存一个数组?
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]”,它应该为您提供值。
你是绝对正确的 - 现在我知道依靠提示符和本地窗口而不是调试器工具提示。谢谢。 :) – 2012-02-04 16:30:03