使用数组分配内存

时间:2016-02-13 08:17:55

标签: c++ pointers structure

有人可以告诉我,一般情况下,C中会有以下情况吗?

{{1}}

此命令是否在整数类型的结构H中创建L变量,其大小为n?

2 个答案:

答案 0 :(得分:1)

它将创建一个H.n指向int的数组。指向第一个数组元素的指针将存储在H.L中。

如果您想要一个int数组,请删除星号。

另外,您可能更乐意使用vector<int*>

使用起来容易得多。

答案 1 :(得分:0)

在表达式声明的右侧

O(nlogn)

使用一元运算符H.L = new int* [H.n]; 创建了一个类型为int *[H.n]的数组。也就是说,数组的每个元素都有new []类型。

方括号中使用的表达式int *指定已分配数组的元素数,并且必须转换为类型H.n。通常它是一些整数类型,例如size_t

根据C +标准(5.3.4新)

  
      
  1. ...如果是数组,则new-expression返回指向初始值的指针   数组的元素。
  2.   

因此,左侧左值int应该具有H.L类型或某种类型(通常在极少数情况下),可以从int **转换。