Portál AbcLinuxu, 4. listopadu 2025 07:00
Řešení dotazu:
Je opravdu C a C++ nebezpecny?Napisat kod bezpecny v C vs RUST je v RUST lahsie. C umoznuje lahsie si strelit do nohy. Az velmi lahko. A niekedy s falosnym pocitom spravnosti. Preco lahko, tak si o C, C++ a Ruste na wikipedii.
// falosnym pocitom spravnosti
	char *pole;
	
	pole=malloc(50);
	if(pole == NULL)
	{
		fputs("error alloc memory", stderr);
		exit(1);
	}
	vstup_dlzka=strlen(vstup_text); // = 55
	pole[vstup_dlzka]='!';
	// toto moze za istych okolnosti fungovat bezchybne a niekedy skoncil chybou
            Vyvojari Chromia pisi o nevhodnosti techto jazyku.Nepíší.
Melo by se jim podle nich vyhybat.Ani tohle nepíší. Poradit potřebujete s čím?
Nepopírá.
 
            memcheck pomáhá odhalovat zmíněné chyby. Pravda, u složitých a výpočečně náročných programů může zabrat běh programu ve Valgrindu nesnesitelně mnoho času.
            -std=c++17 -fPIE -Wall -Wextra -Wshadow -Werror -fstack-protector-strong -fsanitize=address -fsanitize=undefined -fsanitize=leak -fno-omit-frame-pointerToto mi pomaha odhalit 99.9999% blbosti, ktore sa mi podari obcas dat do kodu. Akurat sa treba pripravit na to, ze kompilacia bude trvat neuveritelne dlho, vyzerie mnozstvo ramky a vysledne binarky budu mat stovky MiB az jednotky GiB. Na druhu stranu, beh je potom len o nieco pomalsi, nez kod bez sanitizerov, takze sa daju vykonavat testy skoro na urovni realneho nasadenia (vyhoda oproti valgrindu).
        Tiskni
            
                Sdílej:
                
                
                
                
                
                
            
    
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.