请教二级指针的用法! char a[3][4]={"aaaa","bbbb","cccc"};char **p=new char*(3);p=(char**)a;printf("a[0]=%s",*p[0]);这样写好像不行,我想用p来访问a的值,请问应该怎么改呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 char **p=new char*(3); 改为:char **p=new char*[3]; char **p=new char*(3); p=(char**)a; ---->p的指向已改变,内存泄漏了 char *a[]={"aaaa","bbbb","cccc"};char **p = a;printf("a[0]=%s", *p[0]); char*a[]={"aaaa","bbbb","cccc"};char**p=a;因为那个二维数组已经是char a[3][4]这样定义了,所以不能改,有没有办法直接用p=a,然后访问a的元素呢?即:char a[3][4]={"aaaa","bbbb","cccc"};char **p=a;然后访问? char **p=new char*(3); 不需要new新的空间;char **p=(char**)a;printf("a[0]=%s",p); 这样就可以了 char **p是指向指针的指针,不是指向二维数组的指针。指向二维数组的指针应该这样定义:char (*p)[4];new char*(3)表示分配一个char*型变量,初始化为3。分配一个二维数组应该这样:new char[3][4]; char a[3][4]={"aaaa","bbbb","cccc"}; char **p=a; printf("a[0]=%s",*p[0]); 谢谢各位,oyljerry 的方法可以,少用指针啊。。现在是重头学了 vc 多线程操作list 问题? 打开暴风影音播放器,用桌面作为单文档程序背景时,单文档背景随着播放器播放内容动态改变 如何显示帧缓存 鼠标放到一个控件上面,在其他的空间可以显示提示信息 求水晶报表打包的动态库,,谢谢。up有分 请问如何让工具栏最左边的把手重画。跟OFFICE 2003 的工具栏把手一样。 CMyDialog的MoveWindow不能用,要怎么动态改变一个dlg的大小啊? 为什么我现在不能UP自己或别人的帖子?参与给分! 请问谁公司有用代码量计算工资的??? 有谁用vc做过一台pc与多个单片机通讯的程序? 问一个DirectX9的投影问题。 如何禁止端口和串口
改为:
char **p=new char*[3];
char *a[]={"aaaa","bbbb","cccc"};
char **p = a;
printf("a[0]=%s", *p[0]);
因为那个二维数组已经是char a[3][4]这样定义了,所以不能改,
有没有办法直接用p=a,然后访问a的元素呢?
即:
char a[3][4]={"aaaa","bbbb","cccc"};
char **p=a;
然后访问?
不需要new新的空间;
char **p=(char**)a;printf("a[0]=%s",p); 这样就可以了
char (*p)[4];
new char*(3)表示分配一个char*型变量,初始化为3。分配一个二维数组应该这样:
new char[3][4];