C++數組記憶體會有泄漏問題,還是不安全呢

來源:互聯網
上載者:User

vector <double *> color_list;

void f()

{

double color[4] = {1.0,0.0,0.0,1.0};
color_list.push_back(color);

}

這樣定義會記憶體流失嗎?

我定義了個double color[4] = {1.0,0.0,0.0,1.0};
然後儲存了數組的指標
然後這塊記憶體會自動釋放嗎?

小明:
你那個指標是野指標啊

如果你定義數組的那個函數結束,雖然空間裡面的內容可能沒有改變,但是你這樣用這個指標是不安全的
感覺這樣是不對的,雖然不一定出問題。。。你那個數組做全域變數就應該不會出什麼問題吧
我:
但是如果double * c = new double[4];這樣就安全了?
小明  20:01:43
你定義數組和使用指標實在同一個函數體裡面使用嗎???
我  20:01:58
不是,都不在一個類中了
小明  20:02:03
你這樣不釋放他,不好吧
我  20:02:16
我程式最後結束的時候才會釋放
我  20:02:27
或者我不想要了,再自己釋放唄
小明  20:02:31
那你你就成員變數啊,讓他一直在,到最後的解構函式裡面釋放啊
我  20:02:59
也就是C++裡面自己定義的數組
double c[4];
的記憶體只要函數結束了再引用就不安全了?
小明  20:04:06
這顯然是這樣啊,在函數裡面定義的,函數結束再用是不對的

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.