我有这样的代码:指针数组是否等于一个字符数组?
import std.stdio;
import std.string;
void main()
{
char [] str = "aaa".dup;
char [] *str_ptr;
writeln(str_ptr);
str_ptr = &str;
*(str_ptr[0].ptr) = 'f';
writeln(*str_ptr);
writeln(str_ptr[0][1]);
}
我认为我创建的指针char [] *str_ptr
的阵列,使得每一个指针将指向单个char
。但它看起来像str_ptr
指向字符串str
的开始。我必须做出决定,因为如果我试图访问(例如)writeln(str_ptr[1]);
,我得到了很多关于控制台输出的信息。这意味着我正在链接到边界之外的元素。
任何人都可以解释它是否是一个指针数组,如果是的话,在这种情况下指针数组是如何工作的?
'char [] *'是指向数组的指针,而不是指针数组。 –
@Adam,D中的指针数组应该是什么样子? –
看到我的答案,它就像'char * []'。 –