【发布时间】:2016-09-08 14:07:40
【问题描述】:
我在理解 char 指针方面有一些问题。 假设有以下方法声明(对不起,我没有方法的实现,希望足以解释我的问题):
short GetInfo(char **param1, char **param2);
我试着用两种不同的方式来称呼它:
// 1. When I call it this way it works
char param1_val[20];
char *param1_ptr = param1_val;
char param2_val[20];
char *param2_ptr = param2_val;
GetInfo(¶m1_ptr, ¶m2_ptr);
// 2. When I call it that way I get an 'access violation exception'
char *param1_array[20];
char *param2_array[20];
GetInfo(param1_array, param2_array);
我以为
char param1_val[20];
char *param1_ptr = param1_val;
与
相同char *param1_array[20];
但似乎它们是不同的。 有没有办法让我的第二个案例工作?还是我把事情搞混了,我必须像案例 1 那样做?
【问题讨论】:
-
指针很痛苦,指向指针的指针加倍。这是非常自找的。也就是说,您应该知道什么是数组、什么是指针以及它们之间的关系。
-
@MSalters:这是一个我不能再问的人编写的给定界面。我知道指针很痛苦,尤其是对于 C++ 的新手而言。这就是我在 SO 的原因。