【发布时间】:2012-01-15 00:09:11
【问题描述】:
我有矩阵 M:
float M[4][3] = {
0, 0, 0,
0, 1, 1,
1, 0, 1,
1, 1, 0};
而且我需要转换 M 以使用方法“foo”:
foo(float **matrix){
printf("%f",matrix[0][0]);
}
我使用以下代码成功编译了代码:
foo( (float**) M )
但是当我执行它时,我得到了一个段错误。怎么了?我在 Ubuntu Oneiric 中使用 g++。
提前致谢。
好的,谢谢 Luchian,但是如何使用:
float **M = new float*[4];
M[0] = {0,0,0};
我知道它不能编译,但是有类似的东西吗?
【问题讨论】:
-
@juanma2268:一般的经验法则,如果你需要一个演员来编译,那么它经常(并不总是!)错误并且你的演员隐藏了一个问题。我认为这里就是这种情况。