Byl vydán Mozilla Firefox 146.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 146 bude brzy k dispozici také na Flathubu a Snapcraftu.
Před rokem převzala Digitální a informační agentura (DIA) vlastnictví a provoz jednotné státní domény gov.cz. Nyní spustila samoobslužný portál, který umožňuje orgánům veřejné moci snadno registrovat nové domény státní správy pod doménu gov.cz nebo spravovat ty stávající. Proces nové registrace, který dříve trval 30 dní, se nyní zkrátil na několik minut.
IBM kupuje za 11 miliard USD (229,1 miliardy Kč) firmu Confluent zabývající se datovou infrastrukturou. Posílí tak svoji nabídku cloudových služeb a využije růstu poptávky po těchto službách, který je poháněný umělou inteligencí.
Nejvyšší správní soud (NSS) podruhé zrušil pokutu za únik zákaznických údajů z e-shopu Mall.cz. Incidentem se musí znovu zabývat Úřad pro ochranu osobních údajů (ÚOOÚ). Samotný únik ještě neznamená, že správce dat porušil svou povinnost zajistit jejich bezpečnost, plyne z rozsudku dočasně zpřístupněného na úřední desce. Úřad musí vždy posoudit, zda byla přijatá opatření přiměřená povaze rizik, stavu techniky a nákladům.
Organizace Free Software Foundation Europe (FSFE) zrušila svůj účet na 𝕏 (Twitter) s odůvodněním: "To, co mělo být původně místem pro dialog a výměnu informací, se proměnilo v centralizovanou arénu nepřátelství, dezinformací a ziskem motivovaného řízení, což je daleko od ideálů svobody, za nimiž stojíme". FSFE je aktivní na Mastodonu.
Paramount nabízí za celý Warner Bros. Discovery 30 USD na akcii, tj. celkově o 18 miliard USD více než nabízí Netflix. V hotovosti.
Nájemný botnet Aisuru prolomil další "rekord". DDoS útok na Cloudflare dosáhl 29,7 Tbps. Aisuru je tvořený až čtyřmi miliony kompromitovaných zařízení.
Iced, tj. multiplatformní GUI knihovna pro Rust, byla vydána ve verzi 0.14.0.
FEX, tj. open source emulátor umožňující spouštět aplikace pro x86 a x86_64 na architektuře ARM64, byl vydán ve verzi 2512. Před pár dny FEX oslavil sedmé narozeniny. Hlavní vývojář FEXu Ryan Houdek v oznámení poděkoval společnosti Valve za podporu. Pierre-Loup Griffais z Valve, jeden z architektů stojících za SteamOS a Steam Deckem, v rozhovoru pro The Verge potvrdil, že FEX je od svého vzniku sponzorován společností Valve.
Byla vydána nová verze 2.24 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.
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: