以下情况:
int** pToPField = new int* [8];
现在,我有一个指向指针字段的指针。每个都指向一个整数,对吗?
现在,我想分配前两个int字段,例如:
*(*(pToPField)) = 1;
*(*(pToPField + 1)) = 2;
或类似:
*(pToPField[0]) = 1;
*(pToPfield[1]) = 2;
该错误始终是核心转储。我的语法有问题吗?我试图从对这个问题的第一个答案中找出答案:How do I use arrays in C++?
我没有运气。
问候
最佳答案
您的语法是正确的,但是您没有为数组中的指针所指向的整数分配任何空间,因此您正在访问无法访问的随机存储器,从而导致分段错误。
例:
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 ...