c++中动态数组越界了,为什么?大一萌新求教

我在构造函数中初始化,把TXT中的数据传入数组中,然后调用了add() ,发现越界了这里的lenth+=count 好像没有把数组长度变长,为什么求求大家看看.

看你截图,lenth+=m 这里没有改变长度的原因是因为 m的值没有变。

你截图中read_record(m)看起来是要读取数据长度然后赋值给传进去的m,然后使用读取到的长度m来初始化Student数组。

这里m声明的是int型,作为参数传递进去是值传递,所以read_record无法修改m的值,所以不管程序运行多少次,m的值都为初始化时的0,所以后面的lenth+=m没有改变长度。


//引用传递

void read_record(int & m)

指针传递

void read_record(int *m)


建议你查询下值、引用、指针分别传递的作用

温馨提示:答案为网友推荐,仅供参考
相似回答