prosim kde mam chybu po spusteni programu ve VS 08 mi to vyhodi nejakou chybu jinak program se provede dobre
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cstring>
using namespace std;
class Cow
{
public:
Cow();
Cow(const char *nm,const char *ho, double wt);
~Cow();
Cow(const Cow &);
Cow &operator=(const Cow &);
void ShowCow();
private:
char name[22];
char *hobby;
double weight;
int delka;
int delka_1;
};
void Cow::ShowCow()
{
cout<<"Vaha je "<<weight;
cout<<"\nHobby je "<<hobby;
cout<<"\nJmeno je "<<name;
}
Cow::Cow()
{
static const char *s = "Ahoj";
char jmeno[22]="Pepa";
strncpy(name,jmeno,5);
int poc = strlen(s);
hobby = new char[poc+1];
strcpy(hobby,s);
weight = 99;
delka = 0;
delka_1 = 0;
}
Cow::Cow(const char *nm,const char *ho, double wt)
{
delka = strlen(nm);
hobby = new char[delka+1];
strcpy(hobby,nm);
delka_1=strlen(ho);
strncpy(name,ho,10);
weight = wt;
}
Cow::Cow(const Cow &d)
{ int delka = d.delka;
hobby = new char[delka+1];
strcpy(hobby,d.hobby);
strncpy(name,d.name,10);
weight = d.weight;
}
Cow & Cow :: operator=(const Cow &c)
{
int delka = c.delka;
hobby = new char[delka+1];
strcpy(hobby,c.hobby);
strncpy(name,c.name,10);
weight = c.weight;
return *this;
}
Cow::~Cow()
{
delete [] hobby;
}
int main()
{
Cow milka;
milka.ShowCow();
cout<<"\n";
Cow nepka("Plavani","nepka",76);
nepka.ShowCow();
cout<<"\n";
Cow depka(nepka);
depka.ShowCow();
cout<<"\n";
Cow lepka("fff","ff",44);
lepka = milka;
lepka.ShowCow();
}
Fórum › C / C++
Chyba po spusteni
Zkusil jsem to na mém VS08 a kompilace proběhla v pořádku, bez chyb. Co tě možná zarazilo, byly řádky typu
c:\(...)main.cpp(62) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy'
to je způsobeno tím, že funkce strcpy nekontroluje velikost cílového bufferu a může dojít k přetečení. To je podle Microsoftu kritická chyba. Pokud píšeš zdrojáky zodpovědně, pak by to neměl být problém (V tomto případě neexistuje ani reálné riziko, že by se někdo pokusil do tvého programu naočkovat škodlivý kód. :-D)
Pokud je to tohle, cos myslel, tak se tím nezabývej..
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žení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 19 hostů
Podobná vlákna
Spuštění souboru, spuštění .NET 2.0 aplikace pod .NET 1.1 — založil Michal
Chyba - začátek, hned chyba — založil Levin
Spusteni TP — založil Gwaihir
Po spuštění — založil Spectator
Moderátoři diskuze