首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

动态分配数组的有关问题

2012-07-18 
动态分配数组的问题C/C++ codeint lengthcout Please input seq length:cin lengthchar* seq

动态分配数组的问题

C/C++ code
            int length;    cout << "Please input seq length:";    cin >> length;    char* seq = new char[length];    cout << "Please input seq: ";    cin >> seq;


简单的代码如上。

假如输入的length为1,但输入seq的时候可以输入长度大于1的字符串;并且内存中seq往后的地址都被修改。

这里动态分配数组的长度起不到限制作用吗?动态分配数组只是给了数组一个起始地址,然后就不管了?

[解决办法]
探讨
C/C++ code


int length;
cout << "Please input seq length:";
cin >> length;
char* seq = new char[length];
cout << "Please input seq: ";
cin >> seq;



简单的代码……

[解决办法]
探讨

引用:
C/C++ code


int length;
cout << "Please input seq length:";
cin >> length;
char* seq = new char[length];
cout << "Please input seq: ";
cin >> seq;



简单的代码……

放着好好的string类型……

[解决办法]
C++本来就不负责你的越界问题,最多只会在程序崩了之后提示你是什么问题而已。。

就算你不写动态数组,写固定长度的数组也一样啊。。越界保护是需要程序员自己养成良好习惯去避免的。

热点排行