C - 访问二维数组槽函数不起作用,崩溃

标签 c arrays

我正在尝试使用二维矩阵进行计算。为什么会崩溃而没有错误?

代码:

int main (void)
{
    int myArray[2][3] = {{1,2,3},{5,4,3}};
    int height = 2;
    int width = 3;

    modifyArray( (int**)myArray,height, width);

}

void modifyArray(int **array, int height1, int width1)
{

    int result;

    for(i=0;i<height1;i++) 
    {
        for(j=0;j<width1;j++)
        {
          result = (**((array+i*3)+j));
          printf("%d", result)
         }
   }
}

最佳答案

转换为 ( int ** ) 强制将 myArray 视为指向 int 的指针数组。

事实并非如此 - 它是编译器将其视为二维数组的单个内存块。

关于C - 访问二维数组槽函数不起作用,崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809989/

相关文章:

c - xcode上C程序的逻辑错误

javascript 方法 array.shift() 返回未定义

php - wordpress 中的 add_action 函数

python - 将 Python 翻译成 C

javascript - 如何在 JavaScript 中将对象数组减少为单一深度?

c - 在c中增加 union 数据

c++ - 在不同的 GPU 上初始化结构

c - 有没有重构工具可以自动将大函数拆分成小函数?

c - 这个快速排序程序有什么问题吗?

java - 为什么我可以将并行流收集到任意大的数组而不是顺序流?