如何声明指向指针数组的指针

用户76234

我有一个任务来创建一个指向结构的指针数组。我只需要使用 void 函数和“malloc”。我不知道该怎么做,你能帮我吗?

void create1(apteka*** a, int size)
{
    **a = (apteka**) malloc(size* sizeof(apteka*));
        for (int i = 0; i < size; i++)
        {
            x[0][i] = (apteka*)malloc(size * sizeof(apteka));
        }
}
阿尔克

我有一个任务来创建一个指向结构的指针数组

你需要两个“尺寸”:

  1. 指针数
  2. 结构体的大小

你只通过一个。

因此,例如像这样修复您的代码

#include <stdlib.h> /* for malloc(), free() */

void create1(void *** pppv, size_t n, size_t s)
{
  assert(NULL != pppv);

  *pppv = malloc(n * sizeof **pppv);

  if (NULL != *pppv)
  {
    for (size_t i = 0; i < n; ++i)
    {
      (*pppv)[i] = malloc(s);

       if (NULL == (*pppv)[i])
       {
         /* Failed to completely allocate what has been requested, 
            so clean up */
         for (--i; i >= 0; --i)
         {
           free((*pppv)[i]);
         }

         free(*pppv);

         *pppv = NULL;

         break;
       }
    }
  }
}

像这样使用它:

#include <stdlib.h> /* for size_t, free(), exit(), EXIT_FAILURE */
#include <stdio.h> /* for fputs() */

void create1(void ***, size_t, size_t);

struct my_struct
{
  int i;
  ... /* more elements here */
}

#define N (42) /* Number of elements */

int main(void)
{
  struct my_struct ** pps = NULL;

  create1(&pps, N, sizeof **pps);
  if (NULL == pps)
  {
    fputs(stderr, "create1() failed\n", stderr);
    exit(EXIT_FAILURE);
  }

  /* use array pps[0..N]->i here */

  /*Clean up */

  for (size_t i = 0; i < N; --i)
  {
    free(pps[i]);
  }

  free(pps);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何声明指向char *数组的指针数组

来自分类Dev

声明指向NULL的指针

来自分类Dev

声明指向2D枚举数组的指针

来自分类Dev

如何在C中声明指向struct的指针数组,然后使用它?

来自分类Dev

如何为P / Invoke声明指向结构的指针?

来自分类Dev

C ++ 11 decltype:如何声明指针指向的类型?

来自分类Dev

如何声明指向类对象的指针的矢量?

来自分类Dev

如何声明指向易失性结构的指针

来自分类Dev

声明指向3 x 3数组的指针并使用指针进行打印

来自分类Dev

在C ++中的2D数组中声明指向1D数组的指针

来自分类Dev

声明指针类型?

来自分类Dev

声明指向函数返回数组的指针实际上是合法的吗?

来自分类Dev

无法在C中的struct中声明指向struct的指针数组

来自分类Dev

一个新的声明指针,它指向何处?

来自分类Dev

从结构定义中声明指向接受结构的函数的指针?

来自分类Dev

在类定义中声明指向要定义的类的指针

来自分类Dev

从结构定义中声明指向接受结构的函数的指针?

来自分类Dev

如何在D lang中声明指向模板函数的指针?

来自分类Dev

如何在D中声明指向非常量/可变数据的const指针?

来自分类Dev

如何在D中声明指向非常量/可变数据的const指针?

来自分类Dev

如何使用iso_c_binding声明指针指针?

来自分类Dev

指向字符数组的指针数组的正确声明

来自分类Dev

关于如何在C中声明指针的困惑

来自分类Dev

指向指针数组的指针

来自分类Dev

指向指针数组的指针!如何删除?

来自分类Dev

指向指针数组的指针!如何删除?

来自分类Dev

指向数组指针的双星指针;如何访问数组的指针?C ++

来自分类Dev

如何修改指针指向的数组

来自分类Dev

如何添加指向数组的指针?

Related 相关文章

  1. 1

    如何声明指向char *数组的指针数组

  2. 2

    声明指向NULL的指针

  3. 3

    声明指向2D枚举数组的指针

  4. 4

    如何在C中声明指向struct的指针数组,然后使用它?

  5. 5

    如何为P / Invoke声明指向结构的指针?

  6. 6

    C ++ 11 decltype:如何声明指针指向的类型?

  7. 7

    如何声明指向类对象的指针的矢量?

  8. 8

    如何声明指向易失性结构的指针

  9. 9

    声明指向3 x 3数组的指针并使用指针进行打印

  10. 10

    在C ++中的2D数组中声明指向1D数组的指针

  11. 11

    声明指针类型?

  12. 12

    声明指向函数返回数组的指针实际上是合法的吗?

  13. 13

    无法在C中的struct中声明指向struct的指针数组

  14. 14

    一个新的声明指针,它指向何处?

  15. 15

    从结构定义中声明指向接受结构的函数的指针?

  16. 16

    在类定义中声明指向要定义的类的指针

  17. 17

    从结构定义中声明指向接受结构的函数的指针?

  18. 18

    如何在D lang中声明指向模板函数的指针?

  19. 19

    如何在D中声明指向非常量/可变数据的const指针?

  20. 20

    如何在D中声明指向非常量/可变数据的const指针?

  21. 21

    如何使用iso_c_binding声明指针指针?

  22. 22

    指向字符数组的指针数组的正确声明

  23. 23

    关于如何在C中声明指针的困惑

  24. 24

    指向指针数组的指针

  25. 25

    指向指针数组的指针!如何删除?

  26. 26

    指向指针数组的指针!如何删除?

  27. 27

    指向数组指针的双星指针;如何访问数组的指针?C ++

  28. 28

    如何修改指针指向的数组

  29. 29

    如何添加指向数组的指针?

热门标签

归档