Ahoj, snazim se v Arduinu (upravene C/C++) udelat z jednoho projektu knihovnu. Potrebuju misto vypisu do serioveho portu vratit pole znaku.
Original:
void do_md2(char *arg) { char md2str[33]; MD2_CTX context; unsigned char digest[16]; md2str[0] = '\0'; MD2Init(&context); MD2Update(&context, (unsigned char*)arg, strlen(arg)); MD2Final(digest, &context); make_digest(md2str, digest, 16);
Serial.println(md2str); }
Jde to nejak, nebo musim vracet ukazatel?
Zkousel jsem:
void do_md2(char *arg, char *hash) {
char md2str[33];
MD2_CTX context;
unsigned char digest[16];
md2str[0] = '\0';
MD2Init(&context);
MD2Update(&context, (unsigned char*)arg, strlen(arg));
MD2Final(digest, &context);
make_digest(md2str, digest, 16);
hash = md2str;
}
// a pak to volat pomoci:
char hash[33];
do_md2("The quick brown fox jumps over the lazy dog", hash);
Serial.println( hash );
ale vypisuje to nejake blbosti "¹DEǤa". Kde delam chybu?
V C moc neumim, proto bych vam byl vdecny za pomoc.