int x; 是配置在 call stack 上,function 只要一 return,這塊區域就會被釋放
int *x = new int; 是配置在 heap 區,可以相成是另一塊專門放需要保存的資料的記憶體區塊。除非你手動 free 掉(c++ 的 delete),否則這塊空間就會留給你用
一個是可以邏輯決定要不要跟系統要,一個是寫死的(?)
鄙校有一門叫做程式語言的會上 call stack 跟 heap 這些東西<del>雖然我被當了</del>
然後每個都這樣做
都不free
就memory leak囉(灑花
不過 C++ 的 new/delete 本質上跟 C 的 malloc/free 是相同的東西吧?
欸....差不多,但 new/delete 會去 call class 的特定 method,所以是可以特別決定行為的
malloc/free 就很純粹針對 space 處理
C++ 的話,你得要用 smart pointer 才能幫你 GC
比較簡單的解釋就是,要new / malloc的是執行到那句系統才會分配空間給變數使用, 沒new/malloc的就是程式開始執行時系統就會預先分配好空間
只有 new/malloc 才能夠配置變數大小的記憶體吧(?
是說 ubuntu 上有辦法用 Websocket 連 PTT 嗎?
Windows 平台的 PCman 到現在才支援加密連線根本是資安漏洞
很多加速apt-get的方式docker裡都不怎麼能用,因為在每一個run結束前,cache一定得全清,不然image會很肥
但是這樣遇到現在這樣的海纜爆炸就是慘劇啊,每個RUN裡的apt-get update都要30分鐘,而且docker也沒辦法在build mount volume去用現成的檔案
不是得去加一個RUN讓修改apt的list,就是得修改dockerd的選項讓他改用中華的dns
sed --in-place 's/srcstring/tgtstring/'
看debian官網是寫opensource.nchc.org.tw?