如何输出从函数接收的字符**?
假设我有:
char** foo = magicFunction();
魔术函数将返回一个字符**,但我不知道该函数是如何工作的,或者字符**的长度,以及它所包含的字符的长度。(我正在使用一个执行此操作的库,并且我正在将函数替换为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;
}