使用数组分配内存
Memory allocation using array
谁能告诉我,一般来说,下面的 C 语言会做什么?
H.L = new int* [H.n];
此命令是否在大小为 n 的整数类型的结构 H 中创建 L 变量?
它将创建一个数组 H.n
指向 int
的指针。指向第一个数组元素的指针将存储在 H.L
中。
如果您想要 int
的数组,请删除星号。
附带说明一下,使用 vector<int*>
可能会更快乐。
使用起来更方便。
表达式语句右侧
H.L = new int* [H.n];
使用一元运算符 new []
创建了一个 int *[H.n]
类型的数组。也就是说,数组的每个元素都具有类型 int *
。
方括号中使用的表达式H.n
指定分配数组的元素数,必须转换为类型size_t
。通常它是一些整数类型,例如 int
.
根据C+标准(5.3.4新)
- ...If it is an array, the new-expression returns a pointer to the initial
element of the array.
所以左边的左值 H.L
应该有类型 int **
或某种可以从 int **
.
转换的类型(通常在极少数情况下)
谁能告诉我,一般来说,下面的 C 语言会做什么?
H.L = new int* [H.n];
此命令是否在大小为 n 的整数类型的结构 H 中创建 L 变量?
它将创建一个数组 H.n
指向 int
的指针。指向第一个数组元素的指针将存储在 H.L
中。
如果您想要 int
的数组,请删除星号。
附带说明一下,使用 vector<int*>
可能会更快乐。
使用起来更方便。
表达式语句右侧
H.L = new int* [H.n];
使用一元运算符 new []
创建了一个 int *[H.n]
类型的数组。也就是说,数组的每个元素都具有类型 int *
。
方括号中使用的表达式H.n
指定分配数组的元素数,必须转换为类型size_t
。通常它是一些整数类型,例如 int
.
根据C+标准(5.3.4新)
- ...If it is an array, the new-expression returns a pointer to the initial element of the array.
所以左边的左值 H.L
应该有类型 int **
或某种可以从 int **
.