C 丢失数组指针值?

C 丢失数组指针值?,c,arrays,pointers,C,Arrays,Pointers,我正在创建一个函数,用于将数字从文件读入数组。但从函数返回后,最后一个值似乎丢失了。这是我的密码: void loadDataset(int*dataSet,int DataSetSize,char*filename){ 文件*fp; fp=fopen(文件名,“r”); 对于(int i=0;i

我正在创建一个函数,用于将数字从文件读入数组。但从函数返回后,最后一个值似乎丢失了。这是我的密码:

void loadDataset(int*dataSet,int DataSetSize,char*filename){
文件*fp;
fp=fopen(文件名,“r”);
对于(int i=0;i
我正在测试的文件包含从1到6的数字。在函数
loadDataset
中,打印结果为

1
2
3
4
5
6
1
2
3
4
5
0
但是当返回到
main
功能时,打印的结果是

1
2
3
4
5
6
1
2
3
4
5
0
有什么问题吗?
如果我遗漏了一些琐碎的东西,我很抱歉,但我对C语言的编程不是很熟悉。

这个表达式

fscanf(fp, "%d", &dataSet[sizeof(int) * i]);
                          ^^^^^^^^^^^^^^^      
没有道理。由于使用这种表达式,程序具有未定义的行为,因为有人试图访问分配数组之外的内存

改用

fscanf(fp, "%d", &dataSet[i]);


您确定打印的结果是这些吗?在每次迭代中,您似乎跳过了4个数字(如果
sizeof(int)==4
),谢谢。更改为
fscanf(fp、%d、&dataSet[i])解决了我的问题。我会在5分钟内接受你的回答,因为这样做不会让我做得更快。