char[10][10]数组如何转化为char**呢?

wodejj 2008-02-26 01:50:41
有一个函数接受参数为char**

我声明一个char[10][10]数据传入,应该怎么转化?
...全文
253 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
mathe 2008-02-26
  • 打赏
  • 举报
回复
需要知道接受char **的函数对这个输入值如何理解。
二维数组直接强行转化为char **通常来说是不对的。无论a,还是a[0]同char **的类型都是不匹配的。
dubiousway 2008-02-26
  • 打赏
  • 举报
回复
很多人对多维数组理解得很复杂啊,4楼说的对!
就呆在云上 2008-02-26
  • 打赏
  • 举报
回复
的却,array是 char (*)[10] 类型的
也就是说,如果你是二维的,就不可以直接转化为一个char **类型的指针
ltc_mouse 2008-02-26
  • 打赏
  • 举报
回复
呵呵,你是需要const char ** 呀,那就需要加一个const。
const char **是表示指向const char *的指针,所以可以传入const char *的数组

char arr[10][10];
const char *pArr[10];
for(int i=0; i<10; ++i) pArr[i]=arr[i];
wodejj 2008-02-26
  • 打赏
  • 举报
回复
TO: 野地芳菲
我的错!似乎编译通过了!
wodejj 2008-02-26
  • 打赏
  • 举报
回复
TO: 野地芳菲

似乎传入pArr不行,报错:cannot convert parameter 7 from 'char *[10]' to 'const char ** '
zhaoyg1986 2008-02-26
  • 打赏
  • 举报
回复
char a[10][16];
char **p=&a[0]
------------------------
我的错了.匹配类型是指向数组的指针 char (*p)[16];
wodejj 2008-02-26
  • 打赏
  • 举报
回复
好多回答,可是不知道哪个是对的!
过去的我 2008-02-26
  • 打赏
  • 举报
回复
试了一下.发现我错了, arry是 char (*)[10] 类型的,
过去的我 2008-02-26
  • 打赏
  • 举报
回复
不可以直接传char ,直接传的话要在形参前加个const ,

只有用个char **p=a ,fuction(p)
kooris 2008-02-26
  • 打赏
  • 举报
回复
我刚才回答错了…… 可能是C为了指针的范围有约束就这样设置的。
kooris 2008-02-26
  • 打赏
  • 举报
回复
&array[0]
Supper_Jerry 2008-02-26
  • 打赏
  • 举报
回复
char array[10][10]直接传(char **)array就可以了
ltc_mouse 2008-02-26
  • 打赏
  • 举报
回复
似乎没办法吧,类型不匹配。
与char[10][10]匹配的类型是char(*)[10]

char arr[10][10];
char *pArr[10];
for(int i=0; i<10; ++i) pArr[i]=arr[i];
然后将pArr传入函数~
zhaoyg1986 2008-02-26
  • 打赏
  • 举报
回复
char a[10][16];
char **p=&a[0]
  • 打赏
  • 举报
回复
不能转化。

char x[10];
char * p = x;
char **pp = &p;

64,849

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧