/*HASHING*/
unsigned char *do_hashing(unsigned char *buffer){
unsigned char outbuffer[20];
unsigned char output[20];
SHA1(buffer, strlen(buffer), outbuffer);
for (int i=0; i<20; i++) {
output[i]=outbuffer[i];
}
printf("The hash: ");
for (int i = 0; i < 20; i++) {
printf("%02x ", outbuffer[i]);
}
printf("\n");
return output;
}
/*HASHING*/
如果我刪除printf函數,爲什麼這個函數產生不同的輸出(錯誤的)。例如:爲什麼printf(「%02x」...)更改輸出?
./ftest
The hash: a1 2a 9c 6e 60 85 75 6c d8 cb c9 98 c9 42 76 a7 f4 8d be 73
The hash: a1 2a 9c 6e 60 85 75 6c d8 cb c9 98 c9 42 76 a7 f4 8d be 73
=with for-loop print
./ftest
The hash: 6c 08 40 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00
=without for-loop print
因爲這個函數內發生錯誤我還沒有包括在此情況下,主功能或#包括。
更具體地說,返回一個指向**局部變量的指針。 – 2013-03-27 15:24:23