指针指向指向字段的指针字段中的访问值,每个指针都指向int

时间:2016-03-21 21:23:01

标签: c++ arrays pointers field

以下情景:

int** pToPField = new int* [8];

现在我有一个指向指针字段的指针。每个都指向一个int,对吧?

现在我想分配前两个int字段,如:

*(*(pToPField)) = 1;
*(*(pToPField + 1)) = 2;

或者喜欢:

*(pToPField[0]) = 1;
*(pToPfield[1]) = 2;

错误始终是核心转储。我的语法错了吗?我试图从这个问题的第一个答案中找出答案:How do I use arrays in C++? 我没有运气。

此致

1 个答案:

答案 0 :(得分:3)

您的语法是正确的,但是您没有为数组中的指针指向的整数分配任何空间,因此您正在访问您无法访问的随机内存,从而导致分段故障。

示例:

pToPField[0] = new int;
pToPField[1] = new int;
// and so on...

请考虑使用std::vector

std::vector<int> pToPField(8);

pToPField[0] = 1;
pToPField[1] = 2;
// and so on ...