【发布时间】:2010-11-05 17:13:12
【问题描述】:
我有以下代码:
#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
而不是得到预期的输出
1
2
我遇到了分段错误。什么给了?
【问题讨论】:
-
您使用的是什么损坏的编译器?
char *a = argv[1][1];应该给出编译器错误。 C 没有从int到指针类型的隐式转换。
标签: c segmentation-fault atoi