C/C++ vraceni pole znaku z funkce – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C/C++ vraceni pole znaku z funkce – C / C++ – Fórum – Programujte.comC/C++ vraceni pole znaku z funkce – C / C++ – Fórum – Programujte.com

 

martin
~ Anonymní uživatel
1602 příspěvků
3. 9. 2013   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 178.18.17.–
KIIV
~ Moderátor
+43
God of flame
3. 9. 2013   #2
-
0
-

hash = md2str;   ... musis zkopirovat, ne jen prepsat lokalni pointer na misto, ktery zachvili ani nebude platit

strcpy nebo tak (a nebo rovnou misto ty promenny pouzit to co predavas z venku)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
martin
~ Anonymní uživatel
1602 příspěvků
3. 9. 2013   #3
-
0
-

#2 KIIV
Diky, uz to funguje :-)

void do_md2(char *arg, char *returnedHash) {
	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(returnedHash, digest, 16);
}
Nahlásit jako SPAM
IP: 69.164.219.–
KIIV
~ Moderátor
+43
God of flame
3. 9. 2013   #4
-
0
-

jeste se pak muzes zbavit toho zbytecnyho "md2str"

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 55 hostů

Podobná vlákna

Vrácení pole — založil Janek

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý