Lva*_*oij 2 c++ arrays pointers
对于计算机科学课,我有以下任务.
给定一个包含128行和32列的二维二维数组.通过将列彼此相继放置在存储器中来存储阵列.完成以下函数,该函数返回给定指向数组第一个元素的指针的正确元素,以及一些列和行值.
#define N_COLUMNS 32
#define N_ROWS 128
static inline double get_element(const double *A, const int row, const int column)
{...
}
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所做的,但我不认为这是正确的.
return *A + column * sizeof(double) + row * sizeof(double);
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?
根据我的理解,假设从零开始的索引,可以通过使用指针算法如下获得期望的结果.
return *( A + ( column * N_ROWS ) + row );
Run Code Online (Sandbox Code Playgroud)
这里sizeof(double)不需要使用,因为它A是适当的类型.添加到它将提前sizeof(double)加倍.