2017-03-06 188 views
-1

在我的节目我有结构:初始化结构

struct point { 

    float x; 
    float y; 

}; 

编辑:我需要创建

struct Path{ 
    Point array[]; 
} 

与功能init_path(Path *p, int size)初始化。
我的问题是,如何定义函数? 在此先感谢。

+2

这完全不清楚你问的是什么。请提高你的问题!什么是'init_path()'应该做的? –

+0

欢迎来到堆栈溢出。请花些时间阅读[The Tour](http://stackoverflow.com/tour),并参阅[帮助中心](http://stackoverflow.com/help/asking)中的资料,了解您可以在这里问。 –

回答

0

Path可能是这样:

struct Path { 
    point* points; 
}; 

void init_path(Path *path, int size) { 
    path->points = new point[size](); 
} 

但为什么你的教授希望的功能,而不是正确的构造函数/析构函数仍是一个谜。在这里你仍然需要拨打delete[]points某处。使用以下结构,您不需要任何init函数,对象将正确删除其资源。

struct Path { 
    Path(unsigned size) : points{ new point[size] } {} 
    ~Path() { delete[] points; } 
    point* points; 
}; 
+0

是的,我虽然关于它。但不知道他为什么告诉我们将Path定义为点数组,而不是指针。不管怎样,谢谢!你确认这是最简单的方法;) – user224301