小编J. *_*ava的帖子

memset(foo-> a + foo-> b,0,10)是什么意思?

我在一个我正在使用的库中有这段代码,我想知道它是做什么的,因为我遇到了内存问题,我想这就是原因.

所以这段代码如下:

    int new_size = foo->a_size + 10;
    foo->a = realloc(foo->a, new_size*sizeof(struct items));
    memset(foo->a+foo->a_size, 0, 10);
Run Code Online (Sandbox Code Playgroud)

foo->a是类型struct items*,foo->a_size是类型int.

第一线的重新分配新的内存有10个街区,但现在我想知道,如果memset()设置都foo->afoo->a_size0或应该从11-20到0这一组块foo->a?我试图自己运行此代码块并仅接收Segmentation fault

编辑:

问题是,memset()设置是foo->afoo->a_size0还是设置块从偏移foo->a_size0in foo->a.后一个假设是正确的,但我还需要修复,memset()所以最后一个参数是10 * sizeof(struct items).我也是从编辑变量名foo->bfoo->a_size.

c pointers

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

什么是参考计数器,它是如何工作的?

我一直在写代码,现在我应该有另一个程序调用我的库。我应该为我的图书馆的输出制作一个参考计数器。我所理解的基本思想是,我需要在我想要传递的结构中包含引用计数器结构。所以我的问题如下:

  1. 制作参考计数器时应注意什么?

  2. 制作参考计数器时有哪些完整的禁忌?

  3. 真的有详细的例子从哪里开始吗?

提前感谢您的回答!

c

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

标签 统计

c ×2

pointers ×1