2017-03-06 222 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