请帮助:)操作系统:Linux
在"sleep(1000);"中,此时"top(显示Linux任务)"给我写了7.7%MEM使用.valgrind:没发现内存泄漏.
我明白了,写得正确,所有malloc结果都是NULL.但为什么在这个时候"睡觉"我的程序不会减少记忆?遗失了什么?
抱歉我的英文不好,谢谢
~ # tmp_soft
For : Is it free?? no
Is it free?? yes
For 0
For : Is it free?? no
Is it free?? yes
For 1
END : Is it free?? yes
END
~ #top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23060 root 20 0 155m 153m 448 S 0 7.7 0:01.07 tmp_soft
Run Code Online (Sandbox Code Playgroud)
完整来源:tmp_soft.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
struct cache_db_s
{
int table_update;
struct cache_db_s …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个程序,它将使用我可以在多个目录中轻松修改和编译的策略来玩游戏.游戏的大多数源文件都是不可变的(即即使策略被更改,它们也保持不变).说我的源文件是a.c, b.c, c.c, d.c, e.c,a.c通过d.c是不可变的,并且e.c是不同策略之间唯一不同的文件.另外,a.c调用e.c,所以如果不调用未定义的函数错误,它们就不能完全独立编译.
有没有什么办法来编译(CC/GCC /等)a.c通过d.c到一个文件中,everything.o,我可以再与失踪编译e.c?
> <command here> everything.o a.c b.c c.c d.c
> cc -g -o e.o e.c
> cc -g -o foo.o everything.o e.o
Run Code Online (Sandbox Code Playgroud)
我可以将everything.o复制到不同的目录,以便我可以让程序运行不同的策略,而不是将所有四个(在我的情况下,~20个)文件复制到每个目录中?
我正在写一个字符串到一个文件.但只有字符串的第一部分才会插入到文件中.其他人都不见了.例如:如果我写"我喜欢花","我"只写入文件.
#include <stdio.h>
int main()
{
char string[50];
int marks,i,n;
FILE *fptr; fptr=(fopen("string.txt","w"));
if(fptr==NULL){
printf("Error!");
return 0;
}
printf("Enter a string : \n");
scanf("%s", string);
//fprintf(fptr,"%s",string);
fwrite(string, 1, sizeof(string), fptr);
fclose(fptr);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 当我直观地尝试运行这样的命令时
cc -c source.c header.h -o a_name_different_than_source.o
Run Code Online (Sandbox Code Playgroud)
抛出以下错误
cc:无法使用多个文件为-o指定-c,-S或-E