JSuuu 2022-07-17 23:34 采纳率: 0%
浏览 30

对于利用二维数组表示二级指针的问题

关于用二级数组去引用二级指针的问题

例如如下代码:
int array[2][2] = {{1, 1}, {2, 2}};
int **p = array;
int b = p[0][0];
为什么这样写会报段错误呢?

我的理解

我理解p可以表示数组array的首元素地址,那么按照数组下标的引用方式不应该为*(p + (i * col + j) * sizeof(int))吗,既然p指向了首元素地址,那么数组方式引用后不该指向对应的元素,希望有人能够指出这段理解中的错误。

  • 写回答

3条回答 默认 最新

  • yun6853992 2022-07-18 00:24
    关注

    指针的含义是表示了一个变量的地址, 那么指针的指针,就是表示一个指针的地址。
    int ** 存储的就是一个指针的指针,可是 指针需要用变量的地址去做初始化才真正有意义,否则就是NULL, 对int **的初始化,就应该是从内向外进行,先初始化一个指针,在用指针来初始化这个指针的指针,(你代码中,int array[2][2]虽然表示的是二维数组,但是array本质还是一个二维数组的首地址,用一个指针存储就够了)

    这里挺绕的,多用代码试试~

    img

    评论

报告相同问题?

问题事件

  • 创建了问题 7月17日

悬赏问题

  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器