當我嘗試運行下面的代碼時,我得到一個seg故障。我試過通過gdb運行它,並且我明白這個錯誤是作爲調用printf
的一部分而發生的,但是我爲什麼不能正常工作而丟失了。當我給printf一個指向字符數組的指針時,程序崩潰
#include <stdlib.h>
#include <stdio.h>
int main() {
char c[5] = "Test";
char *type = NULL;
type = &c[0];
printf("%s\n", *type);
}
如果我printf("%s\n", c);
取代printf("%s\n", *type);
我得到「測試」印刷如我所料。爲什麼它不適用於char數組的指針?
我只是想nitpick:「C」沒有崩潰,因爲C不是一個程序。你的編譯器沒有崩潰。 ***你用C寫了一個程序崩潰。*** – 2012-02-21 19:04:16
你是對的David。我知道我想說什麼,顯然,你也這麼認爲,但是在討論這些事情時,準確地說明是很重要的。 – WhiteHotLoveTiger 2012-02-21 19:29:14
將'%s'更改爲'%c'以查看'c [0]' – wulfgarpro 2016-06-21 22:44:29