Proběhla hackerská soutěž Pwn2Own Ireland 2025. Celkově bylo vyplaceno 1 024 750 dolarů za 73 unikátních zranitelností nultého dne (0-day). Vítězný Summoning Team si odnesl 187 500 dolarů. Shrnutí po jednotlivých dnech na blogu Zero Day Initiative (1. den, 2. den a 3. den) a na YouTube.
Byl publikován říjnový přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Pracuje se na podpoře M3. Zanedlouho vyjde Fedora Asahi Remix 43. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.
Iniciativa Open Device Partnership (ODP) nedávno představila projekt Patina. Jedná se o implementaci UEFI firmwaru v Rustu. Vývoj probíhá na GitHubu. Zdrojové kódy jsou k dispozici pod licencí Apache 2.0. Nejnovější verze Patiny je 13.0.0.
Obrovská poptávka po plynových turbínách zapříčinila, že datová centra začala používat v generátorech dodávajících energii pro provoz AI staré dobré proudové letecké motory, konvertované na plyn. Jejich výhodou je, že jsou menší, lehčí a lépe udržovatelné než jejich průmyslové protějšky. Proto jsou ideální pro dočasné nebo mobilní použití.
Typst byl vydán ve verzi 0.14. Jedná se o rozšiřitelný značkovací jazyk a překladač pro vytváření dokumentů včetně odborných textů s matematickými vzorci, diagramy či bibliografií.
Specialisté společnosti ESET zaznamenali útočnou kampaň, která cílí na uživatele a uživatelky v Česku a na Slovensku. Útočníci po telefonu zmanipulují oběť ke stažení falešné aplikace údajně od České národní banky (ČNB) nebo Národní banky Slovenska (NBS), přiložení platební karty k telefonu a zadání PINu. Malware poté v reálném čase přenese data z karty útočníkovi, který je bezkontaktně zneužije u bankomatu nebo na platebním terminálu.
V Ubuntu 25.10 byl balíček základních nástrojů gnu-coreutils nahrazen balíčkem rust-coreutils se základními nástroji přepsanými do Rustu. Ukázalo se, že nový "date" znefunkčnil automatickou aktualizaci. Pro obnovu je nutno balíček rust-coreutils manuálně aktualizovat.
VST 3 je nově pod licencí MIT. S verzí 3.8.0 proběhlo přelicencování zdrojových kódů z licencí "Proprietary Steinberg VST3 License" a "General Public License (GPL) Version 3". VST (Virtual Studio Technology, Wikipedie) je softwarové rozhraní pro komunikaci mezi hostitelským programem a zásuvnými moduly (pluginy), kde tyto moduly slouží ke generování a úpravě digitálního audio signálu.
Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 25.10. Podrobný přehled novinek v poznámkách k vydání.
V Londýně probíhá dvoudenní Ubuntu Summit 25.10. Na programu je řada zajímavých přednášek. Zhlédnout je lze také na YouTube (23. 10. a 24. 10.).
>
int main(void)
{
int a,k,i;
scanf("%d", &a);
int b[2000];
for(i = 0; i < a; i++){
b[i];
}
b[i] = k;
printf("\n%d\n", k);
return 0;
}
Nevite proc to nefunguje? na zacatku se ma ulozit hodnota do promenne a. Potom se definuje neinicializovane pole b. Potom by se mela zapsat hodnota z promenne a do pole b a pak by se mela hodnota pole b priradit do promenne k.
#include <iostream>
#include <array>
using namespace std;
void main(int argc, char* argv[])
{
array<int, 3> arr = { 1, 2, 3 };
for (int i : arr) cout << i << endl;
system("pause");
}
lhs = rhs;lhs je věc, do které se přiřazuje. Normálně tedy proměnná, prvek pole nebo struktury, ..., obecně něco adresovatelného. rhs je hodnota, která se přiřazuje. Porovnej si na základě toho svoje popisy, co se má dít, s kódem. Zjistíš, že vůbec neodpovídají. [*] Pro puristy: coby příkaz. Přiřazení je samozřejmě výraz, takže lze přiřadit i někde uprostřed výrazu, ale tímto teď nekomplikuji.
waste01.c: In function ‘main’:
waste01.c:7:5: warning: ISO C90 forbids mixed declarations and code [-Wpedantic]
int b[2000];
^
waste01.c:9:2: warning: statement with no effect [-Wunused-value]
b[i];
^
waste01.c:11:10: warning: ‘k’ is used uninitialized in this function [-Wuninitialized]
b[i] = k;
^
Clang 3.4 -Wall -pedantic
waste01.c:9:5: warning: expression result unused [-Wunused-value]
b[i];
~ ~^
waste01.c:11:12: warning: variable 'k' is uninitialized when used here [-Wuninitialized]
b[i] = k;
^
waste01.c:5:12: note: initialize the variable 'k' to silence this warning
int a,k,i;
^
= 0
2 warnings generated.
Měl by ses snažit, aby ti kompilátor žádné warningy nevyhazoval i při velmi drsném nastavení, co se má kontrolovat. Minimálně v tomto případě bys totiž hned viděl, že ten tvůj kód nedává moc smysl.
Co si BTW představuješ pod pojmem "pole"? Přijde mi, že ti to není vůbec jasné...
int pole[1001][3]
jak se da zadat vstup do toho pole?
nebo kdyz na vstupu zadame cislo do promenne N a cislo N ma predstavovat pole[N][3]
pole[N][3] - hodnota v poli "pole" na řádku N, sloupci 3 pole[N][3] = x; // Do pole "pole" přiřaď na řádek N, sloupec 3 hodnotu "x"
int N = 20;
int pole[N][3];
pole[1-N][1-3] = 3; // Do pole "pole" prirad cislo 3 na radek 1 az N, sloupec 1 az 3 hodnotu 3
muze to tak byt?
staticky alokované pole (to, co operátor [] vyrobí) nemůže mít proměnnou velikost, takže použít jako délku pole nekonstantní proměnnou není přípustné
V tomhle případě to projde, protože ta alokace se provádí až za běhu. Neprošlo by to u globální proměnné nebo kdyby pole bylo static. Použije se ale samozřejmě aktuální hodnota N v okamžiku té inicializace.
The definition of the subscript operator [] is that E1[E2] is identical to (*((E1)+(E2))).Klidně můžete napsat i 50[mojepole]. Souhlasím, žě nemusíme mást (česky?) začátečníka, ale taky mu nemusíme lhát. A jeho pole je něco, čemu se nadává VLA a je naprosto v souladu s C99, C11 pak tuto "featuru" stanoví jako volitelnou (když není dostupné, musí být definováno __STDC_NO_VLA__).
Přiřadit hodnotu více prvkům v poli najednou nelze, na to je třeba použít cyklus.Když se chce, tak jde i toto
int N = 20; int pole[N][3]; /*int pole[20][3] */ pole[1-N][1-3] = 3; /*pole[-19][-2] = 3; */Tedy zápis mimo alokovaný prostor.
Záporné indexy mohou fungovat takto, ale že by to byla zrovna začátečnická praktika…
int pole[3] = {0,1,2};
int *ptr = &pole[2];
printf("%d,%d,%d",pole[0],pole[1],pole[2]);
printf("%d,%d,%d",ptr[-2],ptr[-1],ptr[0] );
Ne. Nevymýšlejte si, prosím, svou vlastní syntaxi. Četl jste snad někde něco o tom, že jako index pole můžete napsat rozsah, navíc se znakem, který obvykle znamená odečítání? Překladač není člověk a nebude hádat, co jste tím asi tak mohl myslet. To, co jste napsal, by ve skutečnosti znamenalo
pole[-19][-2] = 3
Pokud chcete naplnit celé pole, musíte to udělat cyklem:
int i, j;
for (i = 0; i < N; i++)
for (j = 0; j < 3; j++)
pole[i][j] = 3;
nebo pokud překladač podporuje C99 syntaxi
for (int i = 0; i < N; i++)
for (int j = 0; j < 3; j++)
pole[i][j] = 3;
cisla[2][123123]?
int, short, long, float). Protože v tom jediném pointru, který podprogram dostane, není žádná informace o rozměrech, musí dostat dalšími parametry počet řádku a sloupců. A pak se po prostoru pole může pohybovat.
Nebo je to myšleno, že program dostane datový proud na STDIN? Pak si na to musí udělat/alokovat místo, načíst data a opět se pointry dostane, kam potřebuje.
int main(void)
{
int a,k,i; // tři proměnné int neinicializované
scanf("%d", &a); //přečteme číslo a uložíme proměnnou do "a"
int b[2000]; // neinicializované pole
for(i = 0; i < a; i++){ //provedeme cyklus několikrát pokud bude a>i
b[i]; //zde nic neděláme nemá to význam
} //konec cyklu
b[i] = k; //neinicializovanou proměnnou přečteme a zapíšeme do pole někam kam ukazuje proměnná i čili zapisujeme buhví co a bůh ví kam
printf("\n%d\n", k); //vypíšeme nesmysl co je v neinicializované proměnné k
return 0; //konec
}
Co takhle si nejdříve něco přečíst Programování v jazyce C
b[i] = k; //neinicializovanou proměnnou přečteme a zapíšeme do pole někam kam ukazuje proměnná i čili zapisujeme buhví co a bůh ví kam
To není tak úplně pravda, bezprostředně po skončení cyklu bude mít proměnná i hodnotu a. Že to nedává smysl, protože pravá strana je neinicializovaná a levou pak nikdy nepoužijeme (a nedávalo by to smysl ani obráceně, protože levá strana také není inicializovaná), to už je jiná kapitola.
Musím říct, že tady mne tazatel dostal. Většinou u špatně napsaného programu aspoň tuším, co měl autor na mysli. Tady se naprosto neodvažuji hádat; podobné pocity jsem měl při čtení zdrojáku z úlohy 6 tady.
Tiskni
Sdílej: