Spoluzakladatel a předseda správní rady americké softwarové společnosti Oracle Larry Ellison vystřídal spoluzakladatele automobilky Tesla a dalších firem Elona Muska na postu nejbohatšího člověka světa. Hodnota Ellisonova majetku díky dnešnímu prudkému posílení ceny akcií Oraclu odpoledne vykazovala nárůst o více než 100 miliard dolarů a dosáhla 393 miliard USD (zhruba 8,2 bilionu Kč). Hodnota Muskova majetku činila zhruba 385 miliard dolarů.
Bylo vydáno Eclipse IDE 2025-09 aneb Eclipse 4.37. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
T-Mobile od 15. září zpřístupňuje RCS (Rich Communication Services) zprávy i pro iPhone.
Společnost ARM představila platformu Arm Lumex s Arm C1 CPU Cluster a Arm Mali G1-Ultra GPU pro vlajkové chytré telefony a počítače nové generace.
Unicode Consortium, nezisková organizace koordinující rozvoj standardu Unicode, oznámila vydání Unicode 17.0. Přidáno bylo 4 803 nových znaků. Celkově jich je 159 801. Přibylo 7 nových Emoji.
Apple představil (YouTube) telefony iPhone 17 Pro a iPhone 17 Pro Max, iPhone 17 a iPhone Air, sluchátka AirPods Pro 3 a hodinky Watch Series 11, Watch SE 3 a Watch Ultra 3.
Realtimová strategie Warzone 2100 (Wikipedie) byla vydána ve verzi 4.6.0. Podrobný přehled novinek, změn a oprav v ChangeLogu na GitHubu. Nejnovější verzi Warzone 2100 lze již instalovat také ze Snapcraftu a Flathubu.
Polské vývojářské studio CD Projekt Red publikovalo na Printables.com 3D modely z počítačové hry Cyberpunk 2077.
Organizátoři konference LinuxDays 2025 vydali program a zároveň otevřeli registrace. Akce se uskuteční 4. a 5. října na FIT ČVUT v pražských Dejvicích, kde vás čekají přednášky, workshopy, stánky a spousta šikovných lidí. Vstup na akci je zdarma.
Uživatelé komunikátoru Signal si mohou svá data přímo v Signalu bezpečně zálohovat a v případě rozbití nebo ztráty telefonu následně na novém telefonu obnovit. Zálohování posledních 45 dnů je zdarma. Nad 45 dnů je zpoplatněno částkou 1,99 dolaru měsíčně.
Dobry den, mam nasledujici kod v C, prvni cast naalokuje pole retezcu s "boxes" radky a pro delku kazdeho retezce "BOXLEN+1" znaku. V tomto pripade je boxes rovno peti, kod tedy naalokuje misto pro pet retezcu.
V druhe casti kodu do kazdeho z peti retezcu nakopiruji nejaky text ("123"). Problem je vsak s poslednim retezcem (parts[4]), kdy mi program pri pokusu o jeho inicializaci pres strncpy hodi segmentation fault.
char **parts = (char **) malloc(boxes); for (int i = 0; i < boxes; i++) parts[i] = (char *) malloc(BOXLEN + 1); strncpy(parts[0], "123", BOXLEN); strncpy(parts[1], "123", BOXLEN); strncpy(parts[2], "123", BOXLEN); strncpy(parts[3], "123", BOXLEN); strncpy(parts[4], "123", BOXLEN);
Nevite prosim, cim by to mohlo byt?
parts = (char **) malloc(boxes * sizeof(char *));Pokud je velikost ukazatele jiná než 1, což je prakticky všude, je přepisována nepřidělená paměť. Moje další připomínky jsou více méně formální. Pokud je
boxes < 4
, pak je parts[3]
poslední zapisovatelný prvek. Pokud je boxes
makro nebo konstanta rovná nejméně pěti, o nic nejde.
Dalším problém může nastat, pokud BOXLEN < 4
, protože se řetězce "123"
s koncovým nulovým
znakem nevejdou do alokovaných prostorů.
Pokud jePokud jeboxes < 4
, pak jeparts[3]
poslední zapisovatelný prvek.
boxes < 5
, pak do parts[4]
nepůjde zapisovat, tedy přidělit adresu pro alokovaný řetězec.
char **parts = (char **) malloc(boxes * sizeof(char *));
A na to pozor.
Dalsi mene napadna chyba je v
strncpy(parts[4], "123", BOXLEN); kde by melo byt BOXLEN + 1, pokud tedy BOXLEN ma byt max. delka retezce (coz vyvozuju z alokace BOXLEN + 1 vyse). Jinak neni zajisten ukoncovaci null znak, protoze strncpy ho neresi.
Tiskni
Sdílej: