У меня есть некоторые проблемы при понимании указателей на символы. Допустим, имеется следующее объявление методы (извините, но я не имею реализации методы, я надеюсь, что это достаточно, чтобы объяснить мою проблему):Функция C++ с параметром char **
short GetInfo(char **param1, char **param2);
Я попытался назвать 2 различными способами:
// 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
@MSalters: Это определенный интерфейс, написанный кем-то, с кем я не могу больше спрашивать. Я знаю, что указатели - это боль, особенно для тех, кто очень новичок в C++. Вот почему я здесь, в SO. – onestarblack