行。你问的问题很简单。:)
我想有一系列指向字符数组的指针......
你在正确的轨道上。至少是这样char *[]
。但是,众所周知,这很容易翻译成char **
. 当然,要拥有指向存储的指针,您需要添加第三颗星。到目前为止,您的问题是正确的。
如何将指向该 const char * 值的指针存储到我的 DbRecord 位置 [0]
那么有两种方法可以做到这一点。您提出的问题的正确答案是取消引用指针。例如:
bool AddToArray(const char* value,
const char *** database)
{
bool success = false;
((*database)[0]) = value;
if ( (*database)[0] == value ) success == true;
return success;
}
从技术上讲,将指针作为数组访问也会将其作为索引取消引用。所以[0]
那里将直接取消引用指针。根据您布置分配和内存的方式,您也可以这样做:
...
(*(database[0])) = value;
...
注意那里的细微差别。第一个示例将其视为指向指针数组的指针(或指向数组数组的指针,具体取决于您的想法),而第二个示例将其视为指向数组的指针数组(或数组指针的指针)。
作为 C 开发人员,学习掌握多级指针是您可以做的最好的事情之一,但在 C++ 中,这通常是一种不受欢迎的做法。
希望这可以帮助。
编辑:char *[]
不是char [][]