【发布时间】:2018-03-22 16:15:51
【问题描述】:
我正在制作一个随机的 n*n 矩阵,但在程序已经运行之前我不知道 n 的值。
我能够像这样在 main() 中创建 n*n 个矩阵:
double (*m1)[n];
m1 = malloc(sizeof *m1 * n);
double (*m2)[n];
m2 = malloc(sizeof *m2 * n);
但是现在我必须在 main 之外使用这些矩阵并且需要它们是全局的,但是我完全不知道如何使它们成为全局的。我打算用多个线程阅读这两个矩阵,并且需要它们易于访问。我知道我可以制作一个结构来传递多个参数,但是我需要在全局范围内定义一个具有可变长度数组的结构,这样问题就会重新出现。感谢您的宝贵时间。
【问题讨论】:
-
简单的标准variable-length array 怎么样?喜欢
double m1[n][n];?如果其他函数需要使用矩阵,将它们作为参数传递? -
尝试点击这个链接,你可能会得到一些线索[stackoverflow.com/questions/7839637/…
-
@Someprogrammerdude 之后我将使用多个线程读取数组。据我所知,我无法将具有可变长度数组的结构传递给线程。因此,希望它们全球化的问题。
-
正确的解决办法是不要用全局变量做意大利面条式编程。