[英]Undefined reference to the function 'check' (GCC compilation in MinGW)
[英]How to boundary check in gcc / mingw?
試過這個
int main(void){
int a [10]; 一個[20] = 5;
}
gcc -Wall -O2 main.c
它沒有給我任何警告......
它是windows(mingw)中的gcc,我無法檢測到這種邊界限制錯誤
如何告訴編譯器檢查它? 可以搞定嗎?
謝謝
有嘗試處理數組邊界檢查。 默認情況下,santdard C99沒有提到強制執行數組邊界,我相信很大程度上是因為它有更多的開銷。
話雖如此,你可以看看這樣的網站,人們試圖處理它:
這個問題已經很老了,但我想我得到的另一個答案。 即使你打算在gcc上做一個完整的構建,你也可以嘗試使用clang編譯器(例如,在大型項目中進行夜間構建)。 它工作得很好。
一個例子是我嘗試訪問索引4時的輸出,其中數組大小聲明為4:
ex9.c:17:2: warning: array index 4 is past the end of the array (which contains
4 elements) [-Warray-bounds]
numbers[4] = 4;
^ ~
ex9.c:4:2: note: array 'numbers' declared here
int numbers[4] = {0};
^
謝謝Kajal
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.