我是一个学生,本学期要学习C ++中的数据结构课程,并且遇到了今晚不太了解的内容。假设我要创建一个指向堆上数组的指针:
int* arrayPtr = new int [4];
我可以使用指针语法访问此数组
int value = *(arrayPtr + index);
但是,如果我要在为数组分配的空间结束后立即向内存位置添加另一个值,则可以访问它
*(arrayPtr + 4) = 0;
int nextPos = *(arrayPtr + 4);
//the value of nextPos will be 0, or whatever value I previously filled that space with
*(arrayPtr + 4)在内存中的位置超过了为数组分配的空间的末尾。但是据我了解,以上内容仍然不会造成任何问题。因此,除了C ++的要求外,为什么还要在声明数组时给它们指定特定的大小?
慕村225694
料青山看我应如是
相关分类