我有以下一段代碼:爲什麼atoi給我一個分段錯誤?
#include <stdio.h>
int main (int argc, char *argv[])
{
int M, N;
M = 1;
N = 1;
curr = 1;
if (argv[1][0] == '-')
{
curr = 2;
char *a = argv[1][1];
char *b = argv[1][3];
M = atoi(a);
N = atoi(b);
}
printf("%d\n%d", M, N);
}
所以,我通過這個程序是這樣的:
a.out -1,2
,而不是如預期般輸出
我得到分段錯誤。是什麼賦予了?
你使用了什麼破碎的編譯器? 'char * a = argv [1] [1];'應該給編譯器**錯誤**。 C沒有從'int'到指針類型的隱式轉換。 – 2010-11-05 17:18:59