小编use*_*085的帖子

释放已分配的内存:realloc()与free()

所以我分配了一块内存,malloc()稍后再更改realloc().

在我的代码中的某些时候我想要清空它,我的意思是基本上给它0的记忆.直观地完成它的东西realloc(pointer,0).我在这里读到这是实现定义的,不应该使用.

我应该改用free(),再做另一个malloc()吗?

c memory malloc free realloc

11
推荐指数
2
解决办法
4647
查看次数

pthread_exit,pthread_join和pthread_detach之间的区别

我是pthreads的新手,我想知道确切的差异是什么.

pthread_exit退出一个线程.因此pthread_join将返回; 但是,分离的作用与pthread_join有什么不同?

例如,我创建一个线程,并说让线程完成,我想完全终止线程,以便我以后可以重新创建它.什么是更好的使用.pthread_join还是pthread_detach?

所以执行的顺序是

pthread_exit();
pthread_join(); or pthread_detach();
Run Code Online (Sandbox Code Playgroud)

c linux multithreading pthreads

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

pthreads在线程之间共享内存

因此,我有一小段代码在理论上可以轻松进行解析。

结构非常简单,非常类似于以下内容:

for (int i = 0; i < some_value; ++i) {
    // we have a function called do_stuff
    // somewhere in the code

    // Create a new pthread
    // using do_stuff as start routine
}
Run Code Online (Sandbox Code Playgroud)

现在,所有变量都不在线程之间共享。即,不需要线程之间的变量间通信。但是我确实使用变量i将数据写入数组等。

我想知道的是:如果我将变量i作为pthread启动例程的参数传递,并且i更改的值(因为i在下一个循环迭代中增加),那么i现有线程中的值是否也会更改?

c linux multithreading pthreads

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

函数中分配的内存会发生什么?

所以我想知道函数中使用的内存会发生什么。我正在编写一个多线程程序,我想知道如果我只是在返回后调用函数及其内存会发生什么。

c memory function

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

标签 统计

c ×4

linux ×2

memory ×2

multithreading ×2

pthreads ×2

free ×1

function ×1

malloc ×1

realloc ×1