gpt4 book ai didi

指向具有指针元素的结构的 C 指针 - 如何分配内存并用作函数输出

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:21 25 4
gpt4 key购买 nike

如果我有以下 C 结构:

struct group_of_pointers {
double *p1, *p2, *p3;
} *pointers;

现在,我想给pointers->p1、pointers->p2、pointers->p3分配n个空间(每个空间的sizeof为double)。我该怎么做呢?我是否必须为指向结构“指针”本身的指针分配任何空间?

谢谢。

预计到达时间:相关问题:我需要这个结构的原因是因为我想从一个函数返回 3 个可变长度数组。我应该做吗

void foo(const double* const input, double *output1, double *output2, double *output3) 

或者我应该做什么

struct group_of_pointers *foo(const double* const input)

前者看起来有点困惑,因为输入和输出都捆绑在一起。但这就是 C 的方式吗?

最佳答案

是的,你必须先为指针结构分配空间。然后为每个组件分配。

pointers = malloc(sizeof *pointers);
pointers->p1 = malloc(n * sizeof(double));
pointers->p2 = malloc(n * sizeof(double));
pointers->p3 = malloc(n * sizeof(double));

关于指向具有指针元素的结构的 C 指针 - 如何分配内存并用作函数输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8992811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com