急!帮忙啊。对缓冲区的第一个字节进行初始化,然指针后移,对缓冲区里面的数据进行处理,这会产生什么问题吗?
1 AnsiString SSendOri="我爱你";
2 char* SendBuf = new char[ SSendOri.Length() + 1 ];
//把字符串放到字符数组里面,以进行加密
//缓冲区第一个字节放的是加密类型
3 SendBuf[0]='C'; //当不加这句话时,程序能行。
4 strcpy( SendBuf+1, SSendOri.c_str() );
//加密,第一个字节不加密
5 des_enc(SendBuf+1,1);
//我需要把字符数组再转化成AnsiString型,以供发送所以加了下面两行代码,把这两句拿掉就没有问题
//问题是:为什么这两行代码会影响SendBuf呢?(调试时发现的确影响)
6 AnsiString SSendDec;
7 SSendDec=String( SendBuf);
//解密
8 des_dec(&dc, SendBuf+1,1);
当把3拿掉时,程序可行(能成功解密)!
当把6.7拿掉时,程序也可行(能成功解密),但当他们同时存在是便不行了,这是什么原因呢?搞都搞不明白。