尝试读取大数字时出现分段错误(核心转储)

问题描述 投票:0回答:1

尝试读取大数字并使用 isalpha 检查它们,并在非常大的数字(在 c 中)中出现此错误

当我尝试使用 555555 时,它可以工作 但是当我尝试使用 4003600000000014 时,会弹出分段错误(核心转储) 我该如何解决这个问题?

int main(void)
{
    int digit;
    long number;
    int length = 0;

    do
    {
        number = get_long("Number: ");
    }
    while(isalpha(number) > 0 || number < 0);

    while(number)
    {
        digit = number % 10;
        number = number / 10;
        length++;
    }

    printf("length is: %i\n", length);

}

有人知道如何克服这个问题吗?

segmentation-fault cs50
1个回答
0
投票

这里出现分段错误

isalpha(number)
,因为
isalpha
采用
char
作为参数。 这是手册页。

© www.soinside.com 2019 - 2024. All rights reserved.