buffer[]中打印出来有1024个值,为什么当buffer[]的长度大于572时,pbuffer[]的值会变为空或乱码?for循环是把buffer中的元素(都是半字节的)两个一组合放到pbuffer中。 uint8_t i=0,j=0,k=0,index=0,pbuffer[512]; uint16_t tmp_char=0,z=0; uint8_t buffer[573]; GetGBKCode(buffer,str); for(z=0;z<512;z++) { pbuffer[z]=buffer[2*z]; pbuffer[z]=((pbuffer[z]&0x0f)<<4); pbuffer[z]|=(buffer[2*z+1]&0x0f); } |
buffer越界了. |
越界 访问别的地址数据去了 |