c語言 全域性變數莫名其妙被修改

2022-09-04 22:00:18 字數 289 閱讀 8476

之前寫乙個程式的時候,設定了乙個全域性變數的標誌,但是在程式執行的過程中這個全域性變數的值總是莫名其妙的被改變

定義:int plug[n][n];

int global_plug=0;

最後發現是因為在程式中對plug使用的是[1,n],可能是因為定義的時候,global與plug挨著,所以其 實際的物理儲存可能也是相鄰。

在使用plug[n][n]或者plug[n][n-1]等等的時候改變了global_plug,所以會出現全域性變數被莫名其妙的修改

只需要plug[n+1][n+1]就好了

詭異的Linux磁碟空間被莫名其妙占用

前段時間 收到kafka伺服器磁碟空間滿的報警郵件。在刪除機器上多餘的檔案之後 發現。有近200g的儲存空間莫名奇妙的被占用了 逐個目錄的du 都沒找到相應的檔案。於是就想到了 是不是有同事刪除了檔案 但是對應的程序並沒有被殺掉 lsof grep delete 果然發現了端倪 居然有4個近50g的...

全域性變數記憶體莫名被破壞的解決之路

c 中全域性變數是先於main函式初始化的而且全域性變數的初始化順序未知,由於這個特點的的原因。全域性變數記憶體別破壞的問題比較難以查詢,首先記憶體被破壞 大部分情況是因為別的變數且這個變數含有指標,出現了記憶體越界,覆蓋了後面變數記憶體空間,從而使後面的變數被破壞。順著這個思路我就開始了bug定位...

c語言全域性變數

text.件中 ifndef text h define text h ifdef define ext else define ext extern endif 呼叫text.c中的cont整形變數 ext int cont 例如要定義乙個結構體的全域性變數 struct system1 ext ...