小编sle*_*lee的帖子

C free()如何工作?

可能重复:
malloc()和free()如何工作

#include <stdio.h>
#include <stdlib.h>

int * alloc()
{
    int *p = (int *)calloc(5,4);
    printf("%d\n",p);
    return p;
}

int main()
{
 int *p = alloc();

 free(p);
 printf("%d\n",p);
 p[0] = 1;
 p[1] = 2;
 printf("%d %d\n",p[0],p[1]);
}
Run Code Online (Sandbox Code Playgroud)

至于代码段,我先分配5个整数.然后我释放了记忆.当我打印p时,为什么p sill的值与首先分配的内存地址相同?我也可以为p [0]和p [1]赋值.这是否意味着free()什么都不做?一旦我分配了内存,我可以稍后使用虽然我已经释放了它.

c free memory-management

9
推荐指数
4
解决办法
2万
查看次数

何时选择多线程或多处理?

我从未在并发编程上做过什么.我对它们的了解仅来自OS书籍.

我今天在接受采访时遇到了这个问题.我想知道是否有人可以给我一个直观的

多线程和多进程的解释以及何时选择它们.或者,也许你可以

推荐我一些书籍或实际例子的链接.我想阅读的源代码

开源项目(c/c ++)与conccurent编程,希望你能推荐一个.

非常感谢您的帮助.

multithreading concurrent-programming

8
推荐指数
1
解决办法
3850
查看次数

javascript中的'this'是什么意思?

我不确定JavaScript中的这一点.我举两个例子.

你能帮我分析一下吗?非常感谢你.

//exmp1
function f1()
{
  alert(this);
  function f2()
  {
    alert(this);
  }
  f2();
}
f1();

//exmp2
var jsn = 
{
  name : "b",
  func : function() // closure
  {
    alert(this); 
    return function()
    {
      return this;
    }
  }
}

alert(jsn.func()());
Run Code Online (Sandbox Code Playgroud)

javascript this

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

java8 按键减少的地图列表

我有一个地图列表如下。

我想按键对条目集进行分组,如果键不存在,则填写 0。

    List<Map<String, Double>> props = Lists.newArrayList();
    Map<String, Double> m1 =  Maps.newHashMap();
    m1.put("a", 0.1);
    m1.put("b", 0.5);
    m1.put("c", 0.6);

    Map<String, Double> m2 =  Maps.newHashMap();
    m2.put("a", 0.3);
    m2.put("d", 0.1);

    Map<String, Double> m3 = Maps.newHashMap();
    m3.put("a", 0.2);

    props.add(m1); props.add(m2); props.add(m3);
Run Code Online (Sandbox Code Playgroud)

预期结果:

{a=[0.1, 0.3, 0.2], b=[0.5, 0, 0], c=[0.6,0,0], d=[0,0.1,0]}
Run Code Online (Sandbox Code Playgroud)

我有个主意:

  1. 找到所有不同的键
  2. 用值 0 填充每个缺失键的映射
  3. groupby 键,值映射到列表

有什么好主意吗?

java java-8

3
推荐指数
1
解决办法
5779
查看次数

常规模式"^ ab | cd $"和^(ab | cd)$之间有什么区别?

下面有正则表达式模式之间有什么区别?

pattern1 = "^ab|cd$"
pattern2 = "^(ab|cd)$"
pattern3 = "^(ab)|(cd)$"
Run Code Online (Sandbox Code Playgroud)

我尝试编写一个正则表达式来匹配罗马数字格式(0~3999).我写了一个模式如下:

pattern = "^M{1,3}|(CM|C?D|D?C{1,3})|(X?L|XC|L?X{1,3})|(I?V|IX|V?I{1,3})$"

而这种模式匹配"DIIII"或XIIII或类似这种模式的东西,但我期望大多数三个匹配.

为什么会这样?

python regex

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