Svobodná historická realtimová strategie 0 A.D. (Wikipedie) byla vydána ve verzi 28 (0.28.0). Její kódový název je Boiorix. Představení novinek v poznámkách k vydání. Ke stažení také na Flathubu a Snapcraftu.
Multimediální server a user space API PipeWire (Wikipedie) poskytující PulseAudio, JACK, ALSA a GStreamer rozhraní byl vydán ve verzi 1.6.0 (Bluesky). Přehled novinek na GitLabu.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04-1.2 a 20.04 OTA-12.
Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.0 otevřeného operačního systému pro chytré hodinky AsteroidOS (Wikipedie). Přehled novinek v oznámení o vydání a na YouTube.
WoWee je open-source klient pro MMORPG hru World of Warcraft, kompatibilní se základní verzí a rozšířeními The Burning Crusade a Wrath of the Lich King. Klient je napsaný v C++ a využívá vlastní OpenGL renderer, pro provoz vyžaduje modely, grafiku, hudbu, zvuky a další assety z originální kopie hry od Blizzardu. Zdrojový kód je na GitHubu, dostupný pod licencí MIT.
Byl představen ICT Supply Chain Security Toolbox, společný nezávazný rámec EU pro posuzování a snižování kybernetických bezpečnostních rizik v ICT dodavatelských řetězcích. Toolbox identifikuje možné rizikové scénáře ovlivňující ICT dodavatelské řetězce a na jejich podkladě nabízí koordinovaná doporučení k hodnocení a mitigaci rizik. Doporučení se dotýkají mj. podpory multi-vendor strategií a snižování závislostí na vysoce
… více »Nizozemský ministr obrany Gijs Tuinman prohlásil, že je možné stíhací letouny F-35 'jailbreaknout stejně jako iPhony', tedy upravit jejich software bez souhlasu USA nebo spolupráce s výrobcem Lockheed Martin. Tento výrok zazněl v rozhovoru na BNR Nieuwsradio, kde Tuinman naznačil, že evropské země by mohly potřebovat větší nezávislost na americké technologii. Jak by bylo jailbreak možné technicky provést pan ministr nijak nespecifikoval, nicméně je známé, že izraelské letectvo ve svých modifikovaných stíhačkách F-35 používá vlastní software.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 162 (pdf).
Sdružení CZ.NIC, správce české národní domény, zveřejnilo Domain Report za rok 2025 s klíčovými daty o vývoji domény .CZ. Na konci roku 2025 bylo v registru české národní domény celkem 1 515 860 s koncovkou .CZ. Průměrně bylo měsíčně zaregistrováno 16 222 domén, přičemž nejvíce registrací proběhlo v lednu (18 722) a nejméně pak v červnu (14 559). Podíl domén zabezpečených pomocí technologie DNSSEC se po několika letech stagnace výrazně
… více »Google představil telefon Pixel 10a. S funkci Satelitní SOS, která vás spojí se záchrannými složkami i v místech bez signálu Wi-Fi nebo mobilní sítě. Cena telefonu je od 13 290 Kč.
retazec[i]
retazec+i'?
char *c;
char *new_ptr;
{
...
for (int i = 0; i < n; i++) {
...
// sizeof(char) není nutný, protože
// překladač správně zjistí,
// že používáme char
new_ptr = c + (sizeof(char) * i);
...
}
...
}
MY_STRUCT *p; ...
p=p+sizeof(MY_STRUCT);
ale
p=p+1;
O tom je pointrová matematika.
To je síce pravda. Ale keď mám pole štruktúr...Snad pole pinterů na struktury, ne? Pak je to
p = p + sizeof(MY_STRUCT *)
Existuje niečo také ako "zarovnanie"
inak povedané, ptr[index] je ekvivalentné s *(ptr + index), *(index + ptr) i index[ptr] ... odovzdať zadanie s tým posledným zápisom by tiež mohlo byť zábavné
)
sizeof(MY_STRUCT *), tak se dostanu na pointer následující struktury, což je to, co chci... Nebo mi něco uniklo?
Omlouvám se, ale v C jsem psal naposledy před pěti lety a tohle je to, co mi v hlavě zbylo...
Děkuji za pochopení.
[] funguje jako operator + pro ukazatele a cele cislo. Plati toto:
int arr[10]; *(arr + 10) == arr[10];O tomhle je ta pointerova aritmetika.
arr[10] == arr[11] == … == Segmentation fault, core dumped
(Nekamenujte mne, prosím, za pravděpodobnou neznalost elementárních skutečností, nejsem céčkař – naštěstí
).
V takovémhle případě dokonce ve slušném OS platíS OS to bohužel moc nesouvisí, protože malloc při normálním provozu nealokuje paměť od OS. Paměť se alokuje po větších blocích a tam si pak dělá libc vlastní správu. Alokování paměti přímo od OS společně s "ochrannými bloky" pro coredump zajišťuje například electricfence (či nekterý z přehršle pokročilejších nástroju). MSVC má také takovou feature. Samozřejmě mezi základní pravidla psaní v C patří (vedle např. "netolerovat warningy"), že při vývoji se vždy linkuje s efence. V provozu se samozřejmě nic takového pouhžít nedá, to zpomalení je o několik řádů.arr[10] == arr[11] == … == Segmentation fault, core dumped
for (p = ...; *p; p++) {
...
}
P.S.: Pokud vás nikdo nepochopil, zkuste se zamyslet nad tím, zda není problém ve vašich formulacích.
++retezec?
K čemu jsou tyhle školní úlohy? že by se z toho někdo naučil programovat, o tom dost pochybuju…
#include <stdio.h>
int main()
{
char *str = "Nejaky retezec", *tmp = str;
while (*tmp)
printf("%c", *tmp++);
exit(0);
}
Tohle ti vypise cely retezec. Nebo je i tohle neco jineho nez jsi chtel?
char * buf = "Good niht white pride!"
while(* buf != 0)
{
printf("znak na adrese %d je %c\n",buf,*buf);
++buf;
}
void posun(int cislo){
(*(&cislo - 1)) = (*(&cislo - 1)) + 0x10;
}
len neveim ako to mam spravit pre ten retazec.
& na parametr předávaný hodnotou nemá námitek.
Prečo? Prameter odovzdávaný hodnotou sa uloží na stack.
Možná. A nebo také ne…

man va_start
)
void func(int& bla)
{
bla = 20; //vrátil jsem hodnotu
}
void func(int *bla)
{
*bla = 20;
}
/* pouziti: */
int n;
func(&n);
To je napřesdržku, nedej bože abych nějakého jeho študáka potkal jako kolegu. To není strestné?Pokud se jedná o střední školu (a nižší ročník než čtvrťák), tak by se to dalo kvalifikovat jako "ohrožování mravní výchovy mládeže".
va_list list;
char * ptr;
void fun (int * retval, ...) {
va_start (list, retval);
ptr = va_arg (list, char *);
for (*retval = 0; *ptr; (*retval)++, ptr++)
;
}
PS: kompilovať ani inak kontrolovať sa mi to nechcelo, idea je snáď jasná
for((*(&retazec-3))=0;(int)(*(&retazec-3))<(int)(*(&retazec-4));(*(&retazec-3))++)
{
(((char*)(*(&retazec)))[(int)(*(&retazec-3))])=(((char*)(*(&retazec)))[(int)(*(&retazec-3))])^0x39;
fprintf(stdout,"%c",(((char*)(*(&retazec)))[(int)(*(&retazec-3))]));
}
asm(""::"eax" (*(&retazec-4)))
Víte, k čemu slouží domácí úkoly? K tomu, abyste si na nich ověřil, zda látce rozumíte, a pokud ne, abyste to napravil. Tím, že si úkol necháte napsat od někoho jiného, ztrácí úkol svůj smysl.
Jinak je ten váš kód moc hezký, začíná mi to (opticky) trochu připomínat LISP… :-)
#define A ( (int)(*(&retazec-3)) ) #define B ( (int)(*(&retazec-4)) )
*str++. Vis vubec neco u ukazatelich?
strlen: push ecx xor ecx,ecx xor eax,eax dec ecx cld repne scansb neg ecx mov eax,ecx pop ecx retDo
ES:EDI hoď adresu řetězce, výsledek dostaneš v ecx. V céčku to zabal do asm{}(nebo jak se tam vkládá kód assembleru) + navíc tam bude řádek, kde ukládáš tu adresu do es:edi, ale jelikož jsem v C nikdy s vkládaným assemblerem nedělal (podle mně je to čuňárna), tak nevím jak.
void neco(const char *retezec, unsigned long long int& vysledek)
{
vysledek = 0;
while(*retezec++) ++vysledek;
}
Tak to zadání nesplňuje - retezec je totiz nazev promenne typu char* (ukazatel na první znak v poli x znaků). Pokud bys použil *(&retezec), zase jsi přistoupil k proměnné pomocí jména. Ukazatel na proměnnou totiž bez jména proměnné nezjistíš. Když předáš funkci rovnou ukazatel, přistoupíš k ukazatelu jménem. Úloha je neřešitelná. A navíc, kde je napsáno, že v C na všech platformách jsou předávány argumenty funkcím na stacku? Většinou tomu tak je, ale nemusí.
A navíc, kde je napsáno, že v C na všech platformách jsou předávány argumenty funkcím na stacku? Většinou tomu tak je, ale nemusí.Některé platformy ani zásobník nemají.
int uloha_a(char *str){
int pocet = 0, i = -1; /*pocet -> (&i - 1), str -> (&str + 4)*/
while (((char *) * (&i + 4))[i++] != NULL){ /*prehladavanie retazca po znaku, s podmienkou skoncenia*/
if (((char *) * (&i + 4))[i] >= '0' && ((char *) * (&i + 4))[i] <= '9')/*porovnavanie znaku z cislicou*/
(*(&i - 1))++; /*ak je znak cislica, pocet sa inkrementuje o 1*/
}
}
asm("" :: "eax" ((*(&i - 1)) - 1)); /*vratenie poctu cislic v retazci, cez 32 bit zasobnik eax */
}
Pomocou gdb som si zistil o kolko sa nachdza adresa dvoch dalsich premennych, a zapisal to.
(co ja bych za to dal mit v ATmega32 neco tak velikeho jako EAX
, nejlepe na matematiku...)
Tiskni
Sdílej: