1. 2014.12.26 复杂计算,例如加密与解密运算,花了一天时间,一层层包开代码,通过测试输入输出的数据,对比查找出错点,最后才发现先创建的数组没有初始化,导致结果不可预测。呜呜呜,好低级的错误。
教训:使用malloc等函数分配内存,该变量最好用memset初始化,防止分配的不定初始值,对结果产生影响
static Byte* BitToByte(Byte *In, int bits) {
int i;
Byte *out = (Byte*)malloc(bits);
memset(out, 0x0, bits); //2014.12.27 少了得出问题
for (i = 0; i < bits; i++) {
out[i / 8] |= In[i] << (7 - i % 8);
}
return out;
}