如果大家能看一下这段代码,让我知道浮点异常的可能原因,我将不胜感激。
信息:
分支是一个整数数组,大小为200
行是字符数组大小20
循环正常运行6次,然后发生异常。
我很困惑,因为没有除法、浮点数或整数,这可能会导致这种情况。

    for (count = 0; count < sizeof(branches); count++){

    if (fgets(line,sizeof(line),fp)==NULL)
     break;
    else {

    int branch_taken = line[16] - 48;

    branches[count] = branch_taken;
     }
    }

最佳答案

sizeof(branches)是以字节为单位的大小-您需要使用表示元素数量的常量,即200,否则您将超出branches数组的界限,这将导致未定义的行为。
您的代码应该如下所示:

#define NUM_BRANCHES 200

int branches[NUM_BRANCHES];

for (count = 0; count < NUM_BRANCHES; count++)
{
    ...

08-17 00:35