Nefungující knihovna <cstring> – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nefungující knihovna <cstring> – C / C++ – Fórum – Programujte.comNefungující knihovna <cstring> – C / C++ – Fórum – Programujte.com

 

Jakub
~ Anonymní uživatel
905 příspěvků
19. 2. 2021   #1
-
0
-

Zdravím, už si nějakou dobu lámu hlavu s tím, že mi nefungují funkce z knihovny cstring. Když zadám funkci do programu například ,,strcpy(promenna, promenna2);" tak mi to hodí error window, že se v programu vyskytují chyby. Jednou se mi stalo, když mi to házelo error, že jsem spustil debug a v něm to jelo bez problémů. Nevěděl by někdo co s tím? V příloze posílám program a obrázek toho co to vypíše po spuštění v debug.


#include <iostream>
#include <string>
#include <cstring>
const int cislo = 20;
char* name(void);
char* lname(void);
char* db(void);

/*struct struktura
{
char jmeno[cislo];
char prijmeni[cislo];
char datum[15];
};*/

using namespace std;
int main()
{
/*struktura* clovek = new struktura;
cout << "Zadejte vase jmeno: ";
cin.get(clovek->jmeno, cislo).get();
cout << "Zadejte vase prijmeni: ";
cin.get(clovek->prijmeni, cislo).get();
cout << "Zadejte vase datum narozeni: ";
cin.get(clovek->datum, cislo).get();
return 0;*/
char* jmeno = name();
cout << jmeno;
return 0;
}
char* name()
{
char jmeno[cislo];
cout << "Zadejte vase jmeno: ";
cin.get(jmeno, cislo).get();
char* ps = new char[strlen(jmeno) + 1];
strcpy(ps, jmeno);
return ps;
}

Připojen obrázek.

Nahlásit jako SPAM
IP: 46.135.97.–
19. 2. 2021   #2
-
0
-

Měl bys sem napsat jakou chybu to napíše. Jinak podle nesmyslů, co to vypsalo, bych očekával neinicializovaný ukazatel, pomocí kterého pak čteš smetí odkudsi z paměti. Zmatek pravděpodobně vzniká vrácením ukazatele na paměť, která může být při návratu z funkce uvolněna.

Jinak ten mix C a C++ se mi jeví jako nešikovný. Vhodnější se mi zdá moužívat std:string.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Jakub
~ Anonymní uživatel
905 příspěvků
19. 2. 2021   #3
-
0
-
Nahlásit jako SPAM
IP: 46.135.97.–
Jakub
~ Anonymní uživatel
905 příspěvků
19. 2. 2021   #4
-
0
-

#2 hlucheucho
jsem nováček, takže bys, kde použil std::string misto ceho?

Nahlásit jako SPAM
IP: 46.135.97.–
gna
~ Anonymní uživatel
1891 příspěvků
20. 2. 2021   #5
-
0
-

Tak, jak to máš, by to mělo fungovat. Ale protože to VS se strcpy ani nezkompiluje, tak ten výstup, který jsi ukázal, nejpíš bude z nějaké rozpracované dřívější verze a těžko říct, co tam máš špatně.

std::string je třída pro textové řetězce, takže bys ji použil místo polí charů (a ukazatelů na ně).

Nahlásit jako SPAM
IP: 213.211.51.–
MilanL+1
Grafoman
21. 2. 2021   #6
-
0
-

#1 Jakub
a nebude to tím, že jak definici tak inicializaci struktury máš zakomentované?

to je jediné čeho jsem si všiml na 1. pohled.

Nahlásit jako SPAM
IP: 185.112.167.–
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, 88 hostů

Podobná vlákna

Cstring aneb strlen() — založil swiftblade19

Nefungujici kod — založil shockwave

Nefungující obrázky — založil dragon124

Nefungující login — založil Krupy(nejede login)

Nefungujíci program — založil dragon124

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ý