c++ - 这些大小对于变量数组和变量指针数组是否正确?

标签 c++ arrays pointers size

下面代码注释中的整个数组的大小和语句是否正确?

//gArray uses sizeof(char)*100 = 1*100 = 100 bytes.
char gArray[100];

//gArray uses sizeof(char)*100*50 = 1*100*50 = 5000 bytes.
char gArray[100][50];

//gArray is a 2D array, each element is a pointer to a char (although
//char data type is irrelevant).
//gArray uses sizeof(void*)*100*50 = (4 or 8) * 100 * 50 = 20000 or 40000 bytes.
char* gArray[100][50];

谢谢。

最佳答案

sizeof(char) 根据定义 1 因此它将是 100、5000 和 20000 或 40000(在大多数系统上 - 不禁止 128+ 位指针按标准)。

关于c++ - 这些大小对于变量数组和变量指针数组是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6782050/

相关文章:

c++ - C2143 : syntax error : missing ';' before '*'

ios - 如何从 JsonArray 中获取 NSDictonarys?

c - 如何在字符数组C中使用正则表达式

c++ - 使用 'new' 和指针理解 C++ 代码

c - 在文件流中后退一位

c++ - 复制二维数组 C++

c++ - 遍历 map 时编译出错

在 C 中将 void* 从短数组 (short*) 转换为 float 数组 (float)

c++ - g++ 5.1.0 未构建项目,clang 显示未知错误

PHP - 如何从数组中获取最后一个元素之前的元素?