Diskuze: pretazenie =
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 7 zpráv z 7.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Operator= nieje zavolaný pretože binFileArch aj binFile sú ukazatele, a teda na poslednom riadku len meníš na čo ukazuje. Ak chceš aby sa operator= zavolal na objekte musíš získať objekt na ktorý pointer ukazuje.
*(backUp[numOfBackUps].binFileArch) = *binFile;
to mi nenapadlo, diky, nechce sa mi zakladat nove vlakno tak skusim tu este, nevies nahodou ako spravit hlboku kopiu tohto? takto mi to hadze segfaulty
class CData
{
private:
uint32_t version;
uint8_t block[50];
public:
....
CData & operator=(const CData & a){
version = a.version;
for (int i = 0; i < 50; i++)
block[i] = a.block[i];
return *this;
}
};
Nevidím tam žiadny problém chyba musí byť niekde inde. Skontroluj si či máš správne inicializované ukazatele, či si ich náhodou neuvoľnil, atď.
no valgrind my hlasi chybu v tomto :
==8249== Use of uninitialised value of size 8
==8249== at 0x4020E2: CData::operator=(CData const&) (in /home/expoox/Dokumenty/BI-PA2/du4/a.out)
==8249== by 0x40113D: CFile::AddVersion() (in /home/expoox/Dokumenty/BI-PA2/du4/a.out)
==8249== by 0x401B62: main (in /home/expoox/Dokumenty/BI-PA2/du4/a.out)
==8249==
==8249== Invalid write of size 4
==8249== at 0x4020E2: CData::operator=(CData const&) (in /home/expoox/Dokumenty/BI-PA2/du4/a.out)
==8249== by 0x40113D: CFile::AddVersion() (in /home/expoox/Dokumenty/BI-PA2/du4/a.out)
==8249== by 0x401B62: main (in /home/expoox/Dokumenty/BI-PA2/du4/a.out)
==8249== Address 0x0 is not stack'd, malloc'd or (recently) free'd
ale nechapem co tym mysli kedze v konstruktore premennu version nulujem a zistil som ze to pada na riadku
version = a.version;
Chyba nieje v "funkci-i" operator=, ale v tom že jeden z objektov ktoré používaš už neexistuje. Aby si to lepšie pochopil prikladám tento kód.
class CData
{
private:
uint32_t version;
uint8_t block[50];
public:
CData & operator=(const CData & a){
version = a.version;
for (int i = 0; i < 50; i++)
block[i] = a.block[i];
return *this;
}
};
int main()
{
CData a;
CData b;
a = b; //Toto je v poriadku, to dokazuje ze chyba nieje v operator-e
CData *ptr = NULL;
CData &ref = *ptr; //referencia teraz ukazuje na nieco co neexistuje
a = ref; //Chyba
ref = a; //Chyba
}
Takže si musíš všetko skontrolovať (kde operator= voláš, kde inicializuješ pointr-e,atď..)
dobre mam to, chyba bola v tom ze som mal dynamicke pole dynamickych poli ale to vnutorne pole nebolo naalokovane, takze si mal pravdu, dakujem
Zobrazeno 7 zpráv z 7.