Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.
Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.
Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].
Před rokem byla streamovací služba HBO Max přejmenována na Max. Dle managementu slovo HBO v názvu nebylo důležité. Včera byl Max přejmenován zpět na HBO Max. Kolik milionů dolarů to stálo? 😂
Byla vydána nová major verze 8.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.
Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.4. Přehled novinek s náhledy a videi v oznámení na blogu.
Instituce státní správy nebudou smět využívat produkty, aplikace, řešení, webové stránky a webové služby poskytované čínskou společností DeepSeek. Na doporučení Národního úřadu pro kybernetickou a informační bezpečnost rozhodla o jejich zákazu vláda Petra Fialy na jednání ve středu 9. července 2025.
void main(void)
{
int *p;
p = (int *) malloc(sizeof(int *) * 5);
p[2]=10;
p[50]=11;
printf("%d", p[50]);
free(p);
}
A jak by se, prosím vás, dalo toto zapsat správně?
Díky.
3. Pointer p ukazuje na int, ale alokujete pamět na 5 ukazatelů na int, nikoliv na 5 integerů.Na většině systémů jsou oba typy 32bitové, takže žádný problém.
sizeof(int) == sizeof(int*)
. Za tímhle tvrzení si stojím. Tečka.
#include <stdio.h> int main (void) { printf ("%i, %i\n", sizeof(int), sizeof(int*)); return 0; } #gcc -o sizeof -Wall -pedantic sizeof.c #./sizeof 4, 4 #Nikdy jsem netvrdil, že ten zápis v otázce je dobře nebo dokonce že by se to tak mělo dělat. Nikdy jsem netvrdil, že přístup "na x86 to bude fungovat, tak to tak nechám" je správný. Proto mi ani nemusíte opakovat, že
program, který většinou funguje, je daleko nebezpečnější, než program, který nefunguje skoro nikdy.Opravdu nemusíte. Vím to sám.
#include <stdio.h> #include <stdlib.h> int main(void) { int *p; p = (int *) malloc(sizeof(int *) * 5); p[2]=10; p[50]=11; printf("%d", p[50]); free(p); return 0; }
p = (int *) malloc(sizeof(int *) * 5); p[2]=10;Vytvoril si si totiz volnu pamat velkosti (5*smernik na int) a nasledne zapisujes do tohto pola ako by to bolo pole intov. Pravdepodobne to malo vyzarat takto:
p = (int *) malloc( sizeof(int) * 5 );Takisto tu je problem s tym, ze zapisujes na miesto, ktore ti takpovediac nepatri (p[50]=11;)...
#include <stdio.h> #include <stdlib.h> int main(void) { int *p; p = (int *) malloc( sizeof(int) * 51 ); p[2]=10; p[50]=11; printf("%d", p[50]); free(p); return 0; }
... tak to na funkčnost programu přímý vliv nějak extra asi mít nebude
-Wall
)
Zásada č.II: vždy
používej nějaký malloc debugger.
Jedním z nejjednodušších je electric fence, stačí jen přilinkovat k binárce -lefence
. Nedělá nic jiného než že zajistí, že takto špatně napsaný program spolehlivě chcípne na SIGSEGV (jak se sluší a patří).
char **pole;
scena = fopen( "./config/scena.txt" , "rt");
pole = (char **)malloc(sizeof(char*));
char buffer[512];
while(fscanf(scena, "%s",&buffer) != EOF){
pole[i] = (char *)malloc(sizeof(char) * strlen(buffer));
strcpy(pole[i], buffer);
i++;
}
void main (void) { printf ("%d\n", sbrk (0)); int *p = (int *) malloc (sizeof (int) * 10); printf ("%d\n", sbrk (0)); int *i = (int *) sbrk (0); printf ("Tohle je jeste moje\n"); *(i - 1) = 100; printf ("Tohle uz ne a nastane konec\n"); *i = 100; }
i[55] = 5
to přepíše - pak se program bude chovat zcela nevypočitatelně.
Tiskni
Sdílej: