如何输出从函数接收到的字符**?
假设我有:
char** foo = magicFunction();
魔术函数将返回一个 char**,但我不知道该函数如何工作或 char** 的长度,以及它保存的 char* 的长度。 (我正在使用执行此操作的库,并且我将函数替换为 magicFunction() )
如果我尝试访问带括号的属性:
std::cout << foo[0][0];
我打印出来的只是0
。当我尝试增加第二个括号访问器时,我得到了奇怪的符号,这可能是我不应该访问的内存。
我也试过取消引用:
std::cout << *foo;
std::cout << **foo;
但我仍然只打印出 0
。
当我只打印 foo 时:
std::cout << foo;
我得到了十六进制地址:0x562e4699dda0
(尽管每次运行程序时它都会波动)
最佳答案
除非另有说明,否则指针数组将以 NULL 结尾,而字符串通常以 '\0' 字符结尾。因此,为了打印您的数据,我会尝试:
for( char **ptr = foo; *ptr != NULL; ptr++ ) {
std::cout << *ptr << std::endl;
}
关于c++ - 如何输出一个字符**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58514698/