int main(int argc, const char * argv[]) {
int first_arg, second_arg;
if( argv[1] == NULL || argv[2] == NULL ){
printf("no arguments! ");
exit(0);
}
else{
printf("%s %s \n", argv[1], argv[2] );
sscanf (argv[1], "%d", &first_arg);
sscanf (argv[2], "%d", &second_arg);
printf("%d %d", first_arg, second_arg);
}
}
我试图获取int参数。程序适用于少量参数但是当我写大数字时它会给出分段错误。我试图用gdb修复它,它说:
warning: `/private/var/tmp/libplatform/libplatform-24.90.1~2/libplatform.build/libsystem_platform.build/Objects-normal/x86_64/init.o': can't open to read symbols: No such file or directory.
no arguments! [Inferior 1 (process 1275) exited normally]
适用于" 100和1"," 200和1"但是" 300和1"给出了分段错误。也有效" 1和1000"但是" 10和1000"再次给出细分。 它只打印第一个printf in else