c-使用在main1()中生成的值,并在main2()中使用它们



如果我有一个如下所示的程序:

 void main1() {} /* Note that these aren't called main. */
 void main2() {}
  ...
 int main() {
            main1();
            main2();
            return 0;
            }

我有一些值,或者可以是在main1()中生成的矩阵,然后我想在main2()中使用这个矩阵。我们如何传递这些值:因为我必须有main的子函数,我必须在main1()中生成一个未知长度的大矩阵,我必须使用main2()中的这些矩阵值。但我不知道该怎么做?如何存储矩阵并在main2()中使用它?谢谢:

有几个选项:

  1. 使用全局变量来保持矩阵,并将大小定义为您期望的最大值
  2. 如果您不喜欢全局变量,只需将矩阵封装在结构中,并将其用作参数和返回类型
  3. 更好的方法是使用指针并动态分配/释放内存

定义一个保存矩阵的矩阵结构指针,将指向它的指针发送到main1()分配并填充它,然后将它发送给main2():

struct matrix;
void main1(struct matrix** ppmatrix) {} /* Note that these aren't called main. */
void main2(struct matrix* pmatrix) {}
  ...
int main() {
    struct matrix* pmatrix;
    main1(&pmatrix); // allocate and fill matrix struct
    main2(pmatrix);  // use matrix
    return 0;
}

这是在C中实现这一点的正确方法。在C++中,您应该通过引用传递这些内容。

相关内容

  • 没有找到相关文章

最新更新