相关疑难解决方法(0)

如何使用memset将内存指针设置为NULL?

我有一个结构

typedef struct my_s {

   int x;
   ...
} my_T;

my_t * p_my_t;
Run Code Online (Sandbox Code Playgroud)

我想设置的地址p_my_tNULL,到目前为止这是怎么了,我试着这样做:

memset (&p_my_t, 0, sizeof(my_t*))
Run Code Online (Sandbox Code Playgroud)

不过,这对我来说并不合适.这样做的正确方法是什么?


问题修正案 - 提出一个更复杂的问题:

这是我想要做的:

  • 两个过程,A和B.
  • 在A中的malloc p_my_t,B有N个线程并且可以访问它
  • 在A中开始删除,但我不能简单地释放它,因为B中的线程可能仍在使用它.
  • 所以我调用一个函数,将p_my_t的地址传递给B,在B中将其地址设置为NULL,这样B中的其他线程就不能再使用了
  • 从B回电后,我在A中释放内存

注意:没有标准的方法来通过进程之间的共享内存来管理内存分配.你将不得不做一些相当仔细的思考发生了什么.

c++ null pointers memset

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

标签 统计

c++ ×1

memset ×1

null ×1

pointers ×1