Digitální a informační agentura (DIA) na přelomu roku dokončila rozsáhlou modernizaci hardwarové infrastruktury základních registrů. Projekt za 236 milionů korun by měl zabránit výpadkům digitálních služeb státu, tak jako při loňských parlamentních volbách. Základní registry, tedy Registr práv a povinností (RPP), Informační systém základních registrů (ISZR) a Registr obyvatel (ROB), jsou jedním z pilířů veřejné správy. Denně
… více »Evropská komise (EK) zahájila nové vyšetřování americké internetové platformy 𝕏 miliardáře Elona Muska, a to podle unijního nařízení o digitálních službách (DSA). Vyšetřování souvisí se skandálem, kdy chatbot s umělou inteligencí (AI) Grok na žádost uživatelů na síti 𝕏 generoval sexualizované fotografie žen a dětí. Komise o tom dnes informovala ve svém sdělení. Americký podnik je podezřelý, že řádně neposoudil a nezmírnil rizika spojená se zavedením své umělé inteligence na on-line platformě.
Bratislava OpenCamp pokračuje vo svojej tradícii a fanúšikovia otvorených technológií sa môžu tešiť na 4. ročník, ktorý sa uskutoční 25. 4. 2026 na FIIT STU v Bratislave. V súčasnosti prebieha prihlasovanie prednášok a workshopov – ak máte nápad, projekt, myšlienku, o ktoré sa chcete podeliť s komunitou, OpenCamp je správne miesto pre vás.
Krádež není inovace (Stealing Isn't Innovation). Koalice umělců, spisovatelů a tvůrců protestuje proti používání autorsky chráněných děl velkými technologickými společnostmi pro trénování AI systémů bez povolení či kompenzace.
Stát, potažmo ministerstvo vnitra plánuje zřízení nového, neveřejného virtuálního operátora, který by byl primárně určený na zajištěni kritické infrastruktury státu. Cílem je zajistit udržitelné, bezpečné, mobilní, vysokorychlostní datové a hlasové služby umožňující přístup ke kritickým aplikacím IZS a krizového řízení.
Byla vydána nová verze 10.0 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze nové balíčky ownCloud Infinite Scale a Uptime-Kuma.
Byla vydána nová verze 3.0.8 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Microsoft poskytl FBI uživatelské šifrovací klíče svého nástroje BitLocker, nutné pro odemčení dat uložených na discích třech počítačů zabavených v rámci federálního vyšetřování. Tento krok je prvním známým případem, kdy Microsoft poskytl klíče BitLockeru orgánům činným v trestním řízení. BitLocker je nástroj pro šifrování celého disku, který je ve Windows defaultně zapnutý. Tato technologie by správně měla bránit komukoli kromě
… více »Spotify prostřednictvím svého FOSS fondu rozdělilo 70 000 eur mezi tři open source projekty: FFmpeg obdržel 30 000 eur, Mock Service Worker (MSW) obdržel 15 000 eur a Xiph.Org Foundation obdržela 25 000 eur.
typedef struct _node {
struct _node* pNext; // pointer to next node in dynamically allocated list
int data; // data carried by this item
} Node;
int main() {
char name[1024];
Node *head = NULL;
do
{
printf("Zadej jmeno: ");
scanf("%s", name);
// dynamic allocation of single structure (heap)
Node* newNode = malloc(sizeof(Node));
newNode->data = strlen(name);
newNode->pNext = NULL;
if(head == NULL) // First element
{
head = newNode;
continue;
}
// Not first element
Node* pNode = head; // current node
while(pNode->pNext != NULL)
pNode = pNode->pNext;
// Add
pNode->pNext = newNode;
}
while(strcmp(name, "KONEC") != 0);
Node* pNode = head;
Kdyz si to rozeberu, tak:
pNode = head;Zkopiruje prvni node do druheho.
while (pNode->next != NULL) {
pNode = pNode->next;
}
Tohle prochazi seznam od prvniho node. Ale jak si to mam predstavit? Program v druhe iteraci utvoril kopii stuktury prvniho node (head), tzn. jeho obsah zkopiroval do pointeru na strukturu jmenem pNode.
V tom pripade podle toho, co vim, polozka pNode->next jako "protejsek" head->next obsahuje adresu na strukturu, ktera je nulova (head->next = NULL). Vysledek WHILE je tedy nenulovy a provede se prikaz:
pNode = pNode->next;A tady nerozumim, co se timto prikazem mysli. Resp. jak se timto zajisti traverze. Co presne udela? Ja to vidim takto: pNode je kopie head a pNode->next jako pointer obsahuje adresu na strukturu, ktera ma hodnotu NULL. Prikaz tedy ve druhe iteraci prepise pNode na strukturu, kde maji vsechny prvky NULL hodnotu. Dalsi WHILE tedyneprobehne a dojde k pridani noveho node do pNode-next. Pak dojde ke treti iteraci, znovu se vytvori pNode jako kopie head a udela se test. Jenze tady me chapani konci... nechapu, proc se znovu kopiruje head... Vim, ze kopie struktury ukazuje na stejne misto v pameti (kopie "mělká"). Dojde snad k tomu, ze kdyz ve treti (az n-te) iteraci porad kopiruju head, ty predchozi nody jsou nejak uchovavany provazane v pameti, kam ukazuje head? Potom by se jednalo o jakesi pole struktur. Ono to asi cele bude jinak ja jen chtel nastinit, k cemu jsem zatim v mych uvahach dospe. Nedokazu jaksi prolomit tu barieru abstrakce, takze kdyby me nekdo nakopl, velmi bych to ocenil. Jeste tu mam jednu moznost: pNode->next je v definici struktury ukazatel na strukturu samu. Takze struktura se prepise sama sebou? Potom nerozumim, jakym zpusobem je pak propojena s head...
Řešení dotazu:
Kdyz si to rozeberu, tak:pNode = head;Zkopiruje prvni node do druheho.while (pNode->next != NULL) { pNode = pNode->next; }Tohle prochazi seznam od prvniho node. Ale jak si to mam predstavit? Program v druhe iteraci utvoril kopii stuktury prvniho node (head), tzn. jeho obsah zkopiroval do pointeru na strukturu jmenem pNode.
Linkovaný zoznam sa graficky znázorňuje, ako rad krabičiek pospájaných šipkami. Šipka v tom rade, je vlastne to 'next' a je to pointer na štruktúru Node(krabičku). pNode je dočasná premenná. Priradením pNode=head sa povie, že premenná pNode (šípka) ukazuje na tú istú krabičku, na ktorú ukazuje šípka head. Nekopíruje sa celá štruktúra, ale sa kopíruje adresa na štruktúru - teda pointer. V tom while cykle sa potom premenná pNode postupne namieri na ďalšiu a ďalšiu krabičku v zozname a cyklus skončí vtedy, keď bude namierená na poslednú krabičku - teda tú, ktorej next je NULL.
Po skonečení while cyklu je pNode teda šípka ukazujúca na posledný prvok v zozname. A do pNode->next sa priradí adresa na pridávaný prvok - ten, na ktorý ukazuje šípka newNode. Tým je prvok pridaný na koniec zonamu.
Ahoj, pNode = head; Zkopiruje prvni node do druheho.Tvoje uvaha je chybna jiz na tomto prvnim kroku. pNode totiz neni kopie head, ale jen ukazatel (pointer, proto to male p) na head. Tedy cast
while (pNode->next != NULL) { pNode = pNode->next; }dela to, ze v existujici strukture hleda adresu posledniho prvku v seznamu. Koukni se treba sem, ten pNode se posouva stejne jako pAkt na te strance na obrazku 3.
Tiskni
Sdílej: