【发布时间】:2009-03-30 19:47:58
【问题描述】:
在普通的旧 C(不是 C++ 或 C#)中,是否有一种简单的方法可以将二维数组中的列作为单独的一维数组引用?连续这样做很容易。假设我有 2 个功能:
double doSomethingWithARow( double theRow[3] );
double doSomethingWithACol( double theCol[100] );
那么,我可能会像这样使用第一个:
double matrix[100][3];
double result;
// pass a single row to a function as an array
// this essentially passes the 3-element array at row 48 to the function
for( int i=0; i < 100; i++ )
{
result = doSomethingWithARow( matrix[i] );
}
我想要一种轻松访问列的方法。
for( int j=0; j < 3; j++ )
{
result = doSomethingWithACol( ??????????? );
}
到目前为止,我唯一想到的就是转换矩阵以将行与列交换。但是这段代码应该在内存和速度方面尽可能高效。有了 C 中引用指针的所有复杂方法,似乎应该有一种方法可以做到这一点。
【问题讨论】: