Byla vydána nová verze 260 správce systému a služeb systemd (Wikipedie, GitHub). Odstraněna byla podpora skriptů System V. Aktualizovány byly závislosti. Minimální verze Linuxu z 5.4 na 5.10, OpenSSL z 1.1.0 na 3.0.0, Pythonu z 3.7.0 na 3.9.0…
Byla vydána nová verze 5.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v poznámkách k vydání. Videopředstavení na YouTube.
Bylo oznámeno vydání nové verze 8.1 "Hoare" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Doprovodný příspěvek na blogu Khronosu rozebírá kódování a dekódování videa pomocí Vulkan Compute Shaders v FFmpeg.
Byl představen open-source a open-hardware prototyp nízkonákladového raketometu kategorie MANPADS, který byl sestaven z běžně dostupné elektroniky a komponent vytištěných na 3D tiskárně. Raketa využívá skládací stabilizační křidélka a canardovou stabilizaci aktivně řízenou palubním letovým počítačem ESP32, vybaveným inerciální měřicí jednotkou MPU6050 (gyroskop a akcelerometr). Přenosné odpalovací zařízení obsahuje GPS,
… více »Vědci z univerzity La Sapienza v Římě vyvinuli systém, který dokáže identifikovat jednotlivce pouze na základě toho, jak narušují signály Wi-Fi. Autoři tuto novou technologii nazvali WhoFi. Na rozdíl od tradičních biometrických systémů, jako jsou skenery otisků prstů a rozpoznávání obličeje, nevyžaduje tato metoda přímý fyzický kontakt ani vizuální vstupy. WhoFi může také sledovat jednotlivce na větší ploše než kamera s pevnou polohou; stačí, je-li k dispozici Wi-Fi síť.
SuperTux (Wikipedie), tj. klasická 2D plošinovka inspirovaná sérií Super Mario, byl vydán v nové verzi 0.7.0. Videoukázka na YouTube. Hrát lze i ve webovém prohlížeči.
Ageless Linux je linuxová distribuce vytvořená jako politický protest proti kalifornskému zákonu o věkovém ověřování uživatelů na úrovni OS (AB 1043). Kromě běžného instalačního obrazu je k dispozici i konverzní skript, který kompatibilní systém označí za Ageless Linux a levné jednodeskové počítače v ceně 12$ s předinstalovaným Ageless Linuxem, které se chystají autoři projektu dávat dětem. Ageless Linux je registrován jako operační
… více »PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují
… více »GIMP 3.2 byl oficiálně vydán (Mastodon, 𝕏). Přehled novinek v poznámkách k vydání.
FRANK OS je open-source operační systém pro mikrokontrolér RP2350 (s FRANK M2 board) postavený na FreeRTOS, který přetváří tento levný čip na plně funkční počítač s desktopovým uživatelským rozhraním ve stylu Windows 95 se správcem oken, terminálem, prohlížečem souborů a knihovnou aplikací, ovládaný PS/2 myší a klávesnicí, s DVI video výstupem. Otázkou zůstává, zda by 520 KB SRAM stačilo každému 😅.
split_string, ktora berie parameter ret ako navratovu hodnotu. Potom naalokuje dvojrozmerne pole. A spravne.
int split_string (char **ret, char *str, unsigned char del)
{
ret = (char **) malloc (sizeof (char *) * (count + 1));
ret[i] = (char *) malloc (sizeof (char) * (strlen (back_str) + 1));
}
Potom ju volam na tomto mieste:
char **row_parts = NULL;
unsigned int parts_count = split_string (row_parts, line, ';');
Tu to ale spadne.
printf ("%u %s\n", parts_count, row_parts[0]);
Preco je row_parts[0] nepovoleny pristup do pamati ak ret[0] v split_string je normalne dostupny?
Prikladam este vystup z debuggera:
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
parse_row (line=0x400150 "chalupa") at proj4.c:169
169 printf ("%u %s\n", parts_count, row_parts[0]);
(gdb)
Vopred dakujem za kazdu radu.
Řešení dotazu:
split_string, proměnnou back_str atd.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000Přistupujete na adresu 0, čili derefernce NULL-pointeru. Skoro bych řekl, že tam ty hvězdičky v hlavičce funkce mají být 3 a parametr by se měl předávat jako
&row_parts), protože takhle to IMHO nezměníte. Čili bude stále NULL.
int split_string (char ***ret, char *str, unsigned char del)
{
...//tu sa s ret nepracuje
*ret = (char **) malloc (sizeof (char *) * (count + 1));
back_str = str;
for (i = 0; *back_str && i < strlen (str); i++)
{
printf ("%u: %ld", i, strlen (back_str));
*ret[i] = (char *) malloc (sizeof (char) * (strlen (back_str) + 1));
Povodne som to aj mal s tymi 3 "hviezdickami", ale potom mam chybu vnutri tej split_string.
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000c00
0x00002a25 in split_string (ret=0xbffff55c, str=0x400150 "chalupa", del=59 ';') at proj4.c:244
244 *ret[i] = (char *) malloc (sizeof (char) * (strlen (back_str) + 1));
To sa mi ale velmi nezda, ten ret by uz mal byt na tom mieste alokovany ako ukazovatel na ukazovatele alebo sa mylim?
Este pre uplnost, tie ostatne premenne su nastavene spravne, takze by to miesto malo byt naalokovane dobre, sice neosetrujem tam zatial chyby mallocu, ale pamati mam zatial viac nez dost.
Dakujem za radu, nechcem byt nezdvorili, ale cely zdrojak sem dat nemozem.Taky nechci být nezdvořilý, ale tímhle si dost rapidně snížíte počet lidí, co budou ochotni odpovídat. O to ale nejde.
Povodne som to aj mal s tymi 3 "hviezdickami", ale potom mam chybu vnutri tej split_string.Střelím od boku, protože po půlnoci si s prioritou nejsem úplně jistý - je
*ret[i] správně uzávorkované - nemá to být (*ret)[i]?
Tiskni
Sdílej: