C ++错误STATUS_ACCESS_VIOLATION

时间:2013-11-17 20:27:44

标签: c++

我通过运行这个最简单的代码得到了这个错误:

#include "stdio.h"
#include "stdlib.h"

int main()
{
    FILE* in;
    FILE* out;

    in = fopen("foo.in", "r");
    out = fopen("bar.out", "w+");

    int something;
    fscanf(in, "%i", something);
    fprintf(out, "%i", something);

    fclose(in);
    fclose(out);
    return 0;
}

我正在使用Sublime Text 3。

1 个答案:

答案 0 :(得分:2)

fscanf需要一个指针,这意味着它会在函数something中修改fscanf的值,如果你通过复制发送它,那么在范围内这个值是正确的(即在fscanf)但结果永远不会返回,因此something的副本永远不会更改(即它仍未初始化)。

所以你需要做什么:

int something;
fscanf(in, "%i", &something);
fprintf(out, "%i", something);

如果您尝试读取foo.in中的整数并将其写入bar.out,它应该可以正常工作。