How to initialize const members of structs on the heap

前端 未结 4 1971
忘了有多久
忘了有多久 2020-12-12 23:58

I would like to allocate a structure on the heap, initialize it and return a pointer to it from a function. I\'m wondering if there\'s a way for me to initialize const membe

4条回答
  •  轮回少年
    2020-12-13 00:44

    Like so:

    ImmutablePoint *make_immutable_point(int x, int y)
    {
      ImmutablePoint init = { .x = x, .y = y };
      ImmutablePoint *p = malloc(sizeof *p);
    
      if (p == NULL) abort();
      memcpy(p, &init, sizeof *p);
    
      return p;
    }
    

    (Note that unlike C++, there is no need to cast the return value of malloc in C, and it is often considered bad form because it can hide other errors).

提交回复
热议问题