C++ 指针数组中将有多少内存分配

C++ 指针数组中将有多少内存分配,c++,c,memory,C++,C,Memory,在以下声明中: char *myarray[] = {"Amir"}; 对于指针myarray[],分配了多少字节的内存?这取决于操作系统体系结构。因为它是一个char*的数组,所以在本例中,它的大小相当于一个指针 对于32位寻址,需要4个字节 64位寻址,将花费8字节。C和C++都放置空终止符。@ USER881301在发布答案后,我才发现它是“代码> char *数组,而不是字符数组。很抱歉。@KunalPurichar的大小始终为1=1字节。@KunalPuri现在您将进一步了解:“C

在以下声明中:

char *myarray[] = {"Amir"};

对于指针myarray[],分配了多少字节的内存?

这取决于操作系统体系结构。因为它是一个char*的数组,所以在本例中,它的大小相当于一个指针

对于32位寻址,需要4个字节


64位寻址,将花费8字节。

C和C++都放置空终止符。@ USER881301在发布答案后,我才发现它是“代码> char *<代码>数组,而不是字符数组。很抱歉。@KunalPuri
char
的大小始终为1=1字节。@KunalPuri现在您将进一步了解:“C++内存模型中的基本存储单元是字节。一个字节至少足以包含基本执行字符集(5.3)的任何成员Unicode UTF-8编码格式的八位代码单元,由一个连续的位序列组成,其数目是定义的实现。“C或C++实现可以选择字节中的位数,但它不会改变身份字节===字符类型。<代码> MyLaule[] /Code >不是指针。它实际上什么都不是,因为
myarray[]
不是左值,它只是一个声明器语法
myarray
是一个数组,
myarray[0]
是一个指针
myarray[0]
指向字符串文本的第一个元素。在目标系统中,使用代码< > sisiOf的东西< /代码>,得到了<代码> > />代码。它会说什么?记住要考虑到它是非法的,编译器错误,在现代C++中将一个字符串文字(<代码> const char [] /代码>)分配给非代码> const < /Cux>指针。因此我相信C++标签是错误的…但谁知道呢。还有,什么是Char?@AnttiHaapala我想OP的意思是说
Char
,而不是chart。我想这是OP想澄清的另一件事。