这是我有困难的一小部分家庭作业。除了这部分功能之外,还有更多功能,但这就是我遇到的所有困难(之后还有更多)。当我运行它时,它告诉我它无法读取整数文件。谁能告诉我应该从哪里开始寻找我哪里出错了?
int * readIntegers(const char * filename, int * numberOfIntegers)
{
FILE* fp = fopen(filename, "r");
int count = 0;
// int array;
if(fp== NULL)
{
return NULL;
}
while(fscanf(fp, "%d", &count)>0)
{
(*numberOfIntegers)++;
}
printf("%d\n",*numberOfIntegers);
编译器警告,我不关心这些,因为它们与我发布的无关
warning: return from incompatible pointer type [enabled by default]
warning: function returns address of local variable [enabled by default]
warning: unused variable ‘array’ [-Wunused-variable]
当它运行时,这就是我得到的......
./pa03 inputs/input0 > outputs/output0 ./pa03 inputs/input0 > outputs/output0
Failed to read integer-file 'inputs/input0', aborting
cat outputs/output0
Failed to read integer-file 'inputs/input0', aborting
cat outputs/output0
此外,最后的打印语句是诊断性的,稍后在函数中我将返回一个显示答案的数组。我试图查看 numberOfInputs 是否已更新为正确的数字,到目前为止还没有发生。我将更新我的打印 statemnet 以查看它是否有效……将更新。
现在是整个日志。
gcc -g -Wall -Wshadow -c -o obj/answer03.o answer03.c answer03.c:在函数“readIntegers”中:answer03.c:85:2:警告:从不兼容的指针类型返回[默认启用] answer03 .c:85:2: 警告:函数返回局部变量的地址 [默认启用] answer03.c:68:6: 警告:未使用的变量 'array' [-Wunused-variable] gcc -g -Wall -Wshadow -c -o obj/pa03.o pa03.c gcc -g -Wall -Wshadow obj/answer03.o obj/pa03.o -o pa03
./pa03 输入/输入0 > 输出/输出0 * 检测到glibc * ./pa03: munmap_chunk(): 无效指针: 0x00007fff9ffebad0 * ======= 回溯: ========= /lib/x86_64- linux-gnu/libc.so.6(+0x7eb96)[0x2acd35b25b96] ./pa03[0x400c67] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x2acd35ac876d] ./pa03[0x400699] ======= 内存映射:======== 00400000-00402000 r-xp 00000000 08:06 1443970
/home/matt/ECE264/solutions/PA03/pa03 00601000-00602000 r--p 00001000 08 :06 1443970
/home/matt/ECE264/solutions/PA03/pa03 00602000-00603000 rw-p 00002000 08:06 1443970
/home/matt/ECE264/solutions/PA03/pa03 0219f000-000000 [rw-p]堆] 2acd35882000-2acd358a4000 r-xp 00000000 08:06 8130309
/lib/x86_64-linux-gnu/ld-2.15.so 2acd358a4000-2acd358a9000 rw-p 00000000 00:00 0 2acd35aa4000-2acd35aa5000 r--p 00022000 08:06 8130309/lib/ld-x26._gnu.linux所以 2acd35aa5000-2acd35aa7000 rw-p 00023000 08:06 8130309
/lib/x86_64-linux-gnu/ld-2.15.so 2acd35aa7000-2acd35c5c000 r-xp 00000000 08:06 81272-linux- gnu/lib-26/lib-
26.所以 2acd35c5c000-2acd35e5b000 ---p 001b5000 08:06 8127294
/lib/x86_64-linux-gnu/libc-2.15.so 2acd35e5b000-2acd35e5f000 r--p 001b4000 08:06 81247
-gnu/libc-2.15.so 2.15.so 2acd35e5f000-2acd35e61000 rw-p 001b8000 08:06 8127294
/lib/x86_64-linux-gnu/libc-2.15.so 2acd35e61000-2acd35e68000 rw-p 00000000 00:00 0 2acd35e68000-2acd35e7d000 r-xp 00000000 08:06 81_640119 /lib/gcc8 2acd35e7d000-2acd3607c000 ---p 00015000 08:06 8130119
/lib/x86_64-linux-gnu/libgcc_s.so.1 2acd3607c000-2acd3607d000 r ---p 00_14000 08:06 8134-linux-gnu/
libgcc_s.so.19 .1 2acd3607d000-2acd3607e000 rw-p 00015000 08:06 8130119
/lib/x86_64-linux-gnu/libgcc_s.so.1 7fff9ffcd000-7fff9ffee000 rw-p 00000000 00:00 0 [stack] 7fff9ffff000-7fffa0000000 r-xp 00000000 00: 00 0
[vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0
[vsyscall] ./bin/test.sh: line 20: 8797 Aborted (core dumped) ./$EXEC $INF > $OUTF cat outputs/output05 未排序数组:35254288 0 194 5 -1610695872 已排序数组:35254289 5 -1610695984 1 -1610695872 -- FAIL(未排序)。未找到整数“35254288”——失败。未找到整数“35254289”——失败。
检查预期输出:expected/expected0 - FAIL。预期的:
未排序数组:4 1 3 2 5 已排序数组:1 2 3 4 5 - 正确。已排序数组中第 3 位的整数“4”——通过。排序数组中第 4 个位置的整数 '5' - 通过。
制作:* [test0] 错误 1
测试用例:4 1 3 2 5