小编the*_*tna的帖子

在gcc中不启用内存管理

在编译时是否有任何选项可以在gcc中启用无内存管理?

gcc valgrind

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

如何在以下代码中释放分配给malloc的内存?

           int n;
           int **arr;
           arr = (int**)malloc(n*sizeof(int));
           for (i=0; i<n; ++i){
          arr[i] = malloc(2*sizeof(int));

          }
Run Code Online (Sandbox Code Playgroud)

[编辑]

      *** glibc detected *** ./abc: double free or corruption (out): 0x0000000002693370 
 ======= Backtrace: =========
 /lib/libc.so.6(+0x775b6)[0x7f42719465b6]
 /lib/libc.so.6(cfree+0x73)[0x7f427194ce53]
 ./abc[0x405f01]
 /lib/libc.so.6(__libc_start_main+0xfd)[0x7f42718edc4d]
 ./abc[0x400ee9]
 ======= Memory map: ========
00400000-00416000 r-xp 00000000 08:07 392882                             
 00616000-00617000 r--p 00016000 08:07 392882   
Run Code Online (Sandbox Code Playgroud)

我尝试了下面提到的答案,但我得到了以下上面提到的错误.它可能是什么原因?

[编辑]

现在解决了上述问题.由于代码中存在错误.现在,我没有得到的是释放内存的任何改进.这可能是什么原因?

[编辑]我正在使用一些模块来打印内存.以下是代码

     memory_Print();
     #ifdef CHECK
     memory_PrintLeaks();
      #endif
Run Code Online (Sandbox Code Playgroud)

这里memory_PrintLeaks()打印所需的内存和释放的内存.我在进行更改后获得相同的值.

我要添加的另一个注释是,我可以在程序中的任何地方调用free(),或者需要从某个特定位置调用,例如调用malloc()的位置或程序结束时?

c memory-leaks

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

32位CPU处理器中的内存泄漏,64位处理器CPU中没有泄漏

我有一个C代码,在64位CPU处理器中没有任何内存泄漏但在32位处理器中显示泄漏.可能是什么原因.GCC 4.1.2是编译器,Debian是操作系统.

c gcc memory-leaks

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

如何在C中重现C++类样式的get函数?

我想在C程序中从C++重现get style函数.在C++,类中可以有两个函数来分配值和设置值.在C中有没有相同的方法?可以说我有以下结构:

typedef struct test_help
{
    int      a;
    void** numArrays;
    struct test_help *next;  
} help_node, *help;
Run Code Online (Sandbox Code Playgroud)

我有以下函数来访问结构的值:

int access_int(help damaru) {
    return damaru->a;
}
Run Code Online (Sandbox Code Playgroud)

所以我可以从结构中分配整数的值:

 int y = access_int(damaru);
Run Code Online (Sandbox Code Playgroud)

但我想将值分配给结构的成员,如:

help damaru;
int z=10;
damaru->int = z;
Run Code Online (Sandbox Code Playgroud)

我想摆脱使用->.我想编写一个类似于assign函数的函数.我想提醒您,在左侧使用访问功能会显示警告.

c c++

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

在这段代码中,Null Pointer Exception的原因是什么?

我在以下代码中遇到null-exception throw错误.它可能是什么原因?

 public static String[] CreateVocab(BufferedReader buffR) throws IOException{
    String[] arr = null;
    int i = 0;
    arr[i]= null;
    String line = new String();
    while((line = buffR.readLine()) != null){
        arr[i] = line;
        i=i+1;
    }
    return arr;     
}
Run Code Online (Sandbox Code Playgroud)

编译器在代码中显示Null ponter异常 arr[i]=null.

java nullpointerexception

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

哈希映射的副本

我有一个Hashmap <integer, Arraylist<Double>>.我想复制一份.我在考虑使用clonehashmap的方法.经过javadoc后,它说:

clone
Returns a shallow copy of this HashMap instance: the keys and values themselves are not cloned. 
Run Code Online (Sandbox Code Playgroud)

这个浅拷贝是什么意思?我想要一个单独的矩阵,其值在更新原始矩阵的值时不会改变.

为什么呢,

    if( hm1 == hm1.clone()) 
Run Code Online (Sandbox Code Playgroud)

返回false?

java clone hashmap

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

格式'%ld'需要类型'long int',但参数3的类型为"TEST"

这里TEST是一个结构指针.结构包含整数.什么是正确的因素呢?TEST结构如下.我使用gcc作为编译器.

     typedef struct TEST_HELP{
                 int value;                
      } *TEST, TEST_NODE;
Run Code Online (Sandbox Code Playgroud)

c gcc-warning

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

在java中添加arraylist

是否可以连接两个或更多的arraylist?我有以下案例:

 private Arraylist<Double> getContextVectorsize(int sizeContext){
     ArrayList<Double> contextList = new ArrayList<Double>();
     for(int i =0 ; i< sizeContext; i++){
         contextList = //TODO 
     }   
}
Run Code Online (Sandbox Code Playgroud)

我想按顺序附加所有的arraylist并想要生成一个arraylist size = sizeContext*ArraylistOfSingleMember

java append arraylist

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

以下C代码中的内存泄漏

我如何从他的代码中释放泄漏的内存.

struct object_one{
  int value;
}*object,object_node;

struct node_one {
  void **pointers;

}*node, node_node;

  node sample(){
  object number;
  node node123;
  node123 = malloc(sizeof(node_node));
  number = malloc(sizeof(object_node));
  number->valu = malloc(sizeof(int));
  number->value = 9;
  node123->pointers[0]=number; 
  free(number);
  return node123; 
}
Run Code Online (Sandbox Code Playgroud)

我正在以正确的方式释放所引用的内存.number一旦我执行上述操作,我就会收到错误;

Invalid read of size 4
==15957==    at 0x403804: main (abc.c:1255)
==15957==  Address 0x540cb50 is 0 bytes inside a block of size 4 free'd
Run Code Online (Sandbox Code Playgroud)

请建议我如何在这种情况下防止内存泄漏?提前致谢.

[编辑]

嗨,实际上上面提到的不是我的真实代码.但我已经尽力重新选择代码的sturcutre和语义.实际上我正在实施数据架构.number是一些临时存储,node123是我真正的数据库.我想number在数据库中分配值并取消引用它.numbertype是数据库的一个组件.

[EDIT2]

对应于行的代码1255是打印由.持有的值.object i'e value …

c valgrind memory-leaks memory-management

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