我只是試圖測試我是否正確安裝了一個新的ide,並嘗試編譯這個基本程序,無論是在IDE中,還是使用gedit和GCC編譯,但是我在命令行啓動可執行文件後崩潰 - 我不知道什麼是錯誤的,因爲我對C語言中的指針還是比較新的,並且需要一段時間才能圍繞這個理論進行討論。C中帶有分割錯誤(核心轉儲)錯誤的指針
代碼:
#include <stdio.h>
#include <string.h>
char print_func(char *hi);
int main(void) {
char *hi = "Hello, World!";
print_func(*hi);
}
char print_func(char *hi) {
printf("%d \n", *hi);
}
我嘗試這樣做:
#include <stdio.h>
#include <string.h>
char print_func(char *hi);
int main(void) {
char *hi = "Hello, World!";
print_func(&hi);
}
char print_func(char *hi) {
printf("%d \n", *hi);
}
,並沒有崩潰輸出44。
寧可在'-pedantic'模式下運行GCC,或'-Wall'模式至少。代碼的兩個版本都被破壞:它們包含明顯的錯誤,這些錯誤將被編譯器檢測到並伴隨着診斷消息。事實上,即使在默認模式下,我也會從GCC獲取此代碼的診斷消息。你爲什麼忽略它們? – AnT 2012-07-22 14:55:06
我不太確定,我還在學習。 – TheBlueCat 2012-07-22 14:59:55
如果編譯器給你一條消息試圖幫助你;即使它只是一個警告它的線索,你做了一件壞事 – pm100 2013-09-03 17:39:40