标签: cc

C中的问题使用记忆

请帮助:)操作系统: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)

c linux malloc free cc

0
推荐指数
1
解决办法
3221
查看次数

在gcc/cc中聚合源文件

我正在尝试编写一个程序,它将使用我可以在多个目录中轻松修改和编译的策略来玩游戏.游戏的大多数源文件都是不可变的(即即使策略被更改,它们也保持不变).说我的源文件是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个)文件复制到每个目录中?

c linker gcc compilation cc

0
推荐指数
1
解决办法
94
查看次数

使用gets函数读取字符时出错

我正在写一个字符串到一个文件.但只有字符串的第一部分才会插入到文件中.其他人都不见了.例如:如果我写"我喜欢花","我"只写入文件.

    #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)

c cc

-1
推荐指数
1
解决办法
163
查看次数

如何指定目标文件的名称

当我直观地尝试运行这样的命令时

cc -c source.c header.h -o a_name_different_than_source.o
Run Code Online (Sandbox Code Playgroud)

抛出以下错误

cc:无法使用多个文件为-o指定-c,-S或-E

c linux gcc cc

-4
推荐指数
1
解决办法
81
查看次数

标签 统计

c ×4

cc ×4

gcc ×2

linux ×2

compilation ×1

free ×1

linker ×1

malloc ×1