gpt4 book ai didi

c - C中没有足够的内存错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:39 25 4
gpt4 key购买 nike

我是 C 的新手。我正在用 C 创建一个文件。但是当我尝试在代码下运行时,我收到内存不足错误。我不明白这个问题。我清除了我的临时文件夹,但错误仍然存​​在。请提供任何帮助。

File *logfile;
logfile = fopen ("sample.txt","a+");
printf("\n logfile=%d\n",logfile);
if (!logfile)
{
perror("Error");
exit(EXIT_FAILURE);
}

最佳答案

你应该总是要求你的编译器给你它能给你的所有警告。与 gcc这意味着通过 -Wall -Wextra gcc 的选项编译器。

如果您这样做,您的编译器会发现很多错误(通过发出警告或错误消息):

  1. 您缺少 #include <stdio.h>指令
  2. 你应该声明FILE* logfile;不是File *logfile;标识符中的大小写很重要。
  3. 您的电话 printf是错误的,因为 logfile不是 int作为 %d格式说明符想要。它是一个指针(指向一个抽象数据结构),所以如果你想 printf它,使用 %p .请注意,您对 fopen 了解不多。 -ed FILE*从它的地址处理(对你来说唯一重要的是 fopen 的结果是否为 NULL)。

一般建议是改进您的源代码,直到您不再收到来自编译器的警告。

您还应该学习使用调试器(如 gdb )。然后使用调试信息进行编译,例如gcc -Wall -Wextra -g yoursource.c -o yourprog

如果您使用的是 Linux 系统(gccgdb 是非常常用的工具),valgrind , straceltrace实用程序通常很有用。

关于c - C中没有足够的内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11645264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com