c-终端内存分配第一次编译错误



我正在开发一个malloc实验室程序,在该程序中我需要找到实用性和吞吐量的性能指数。我能够获得输出效率,但在第一次执行时有一个问题。

我已经给出了一组特定的文件,其中包括跟踪和其他文件,当我第一次尝试运行程序时,它显示错误,但当我用同一命令第二次到多次运行同一代码时,我没有得到错误,输出是否正常?为什么它在第一次运行时显示错误?在malloc中分配内存或执行操作有问题吗?

命令和第一时间错误如下,

enter code here
@ubuntu:$ make

当我第一次运行时,我得到了如下错误,

enter code here
gcc -Wall -O2 -m32   -c -o mdriver.o mdriver.c
mdriver.c: In function ‘remove_range’:
mdriver.c:438:9: warning: variable ‘size’ set but not used [-Wunused-but-set-variable]
 int size;
     ^
mdriver.c: In function ‘read_trace’:
mdriver.c:498:11: warning: ignoring return value of ‘fscanf’, declared with attribute   warn_unused_result [-Wunused-result]
 fscanf(tracefile, "%d", &(trace->sugg_heapsize)); /* not used */
       ^
mdriver.c:499:11: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%d", &(trace->num_ids));     
       ^
mdriver.c:500:11: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%d", &(trace->num_ops));     
       ^
mdriver.c:501:11: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%d", &(trace->weight));        /* not used */
       ^
mdriver.c:524:12: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%u %u", &index, &size);
        ^
mdriver.c:531:12: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%u %u", &index, &size);
        ^
mdriver.c:538:12: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
fscanf(tracefile, "%ud", &index);
        ^
gcc -Wall -O2 -m32   -c -o mm.o mm.c
mm.c:780:13: warning: ‘mm_check’ defined but not used [-Wunused-function]
static int mm_check(void)
         ^
gcc -Wall -O2 -m32   -c -o memlib.o memlib.c
gcc -Wall -O2 -m32   -c -o fsecs.o fsecs.c
gcc -Wall -O2 -m32   -c -o fcyc.o fcyc.c
gcc -Wall -O2 -m32   -c -o clock.o clock.c
gcc -Wall -O2 -m32   -c -o ftimer.o ftimer.c
gcc -Wall -O2 -m32 -o mdriver mdriver.o mm.o memlib.o fsecs.o fcyc.o clock.o ftimer.o

我再次运行相同的命令

enter code here
@ubuntu:$ make
make: `mdriver' is up to date.

现在,它没有显示错误,之后如果我用所需的命令运行程序,它运行得很好,但它是第一次显示错误吗?

您的源代码中没有错误。有很多警告。即使源代码有警告,也会生成对象和可执行文件。在makefile中,如果时间戳保持不变,则不会重新编译文件。

为了更好地理解,请在源代码中消除一些编译错误,并一次又一次地运行make命令,这样您就可以理解其中的区别。

相关内容

  • 没有找到相关文章

最新更新