Bylo vydáno OpenBSD 7.8. S předběžnou podporou Raspberry Pi 5. Opět bez písničky.
Valkey (Wikipedie) byl vydán v nové major verzi 9.0. Valkey je fork Redisu.
Byly publikovány informace o kritické zranitelnosti v knihovně pro Rust async-tar a jejích forcích tokio-tar, krata-tokio-tar a astral-tokio-tar. Jedná se o zranitelnost CVE-2025-62518 s CVSS 8.1. Nálezci je pojmenovali TARmageddon.
AlmaLinux přinese s verzí 10.1 podporu btrfs. XFS bude stále jako výchozí filesystém, ale instalátor nabídne i btrfs. Více informací naleznete v oficiálním oznámení.
Společnost OpenAI představila svůj vlastní webový prohlížeč ChatGPT Atlas. Zatím je k dispozici pouze na macOS.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.5 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Rodina jednodeskových počítačů Orange Pi se rozrostla (𝕏) o Orange Pi 6 Plus.
Na Humble Bundle běží akce Humble Tech Book Bundle: All Things Raspberry Pi by Raspberry Pi Press. Se slevou lze koupit elektronické knihy od nakladatelství Raspberry Pi Press a podpořit Raspberry Pi Press, Raspberry Pi Foundation North America nebo Humble.
Přidaný režim autonomního řízení vozidel Tesla Mad Max je dostupný pro vybrané zákazníky v programu EAP (Early Access Program). Nový režim je na silnici agresivnější, častěji mění pruhy a ne vždy dodržuje rychlostní limity. Agentura JPP spekuluje, že v Česku by se mohl nový režim namísto Mad Max jmenovat Mad Turek...
Byla vydána nová verze 9.18 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Nově také pro NanoPi R3S, R3S LTS, R76S a M5. Přehled novinek v poznámkách k vydání.
Dobry den,
chci poprosit s pomoci nalezeni chyby v nasledujicim kodu:
(komentuji radky kde valgrind hlasi chybu).
char *get_term(char *str, int pos)
{
int n;
int word = 0;
int w = 0, w_m = 0;
short in_word = 0;
short out_word = 0;
char **words;
for(n = 0; str[n] != '\0'; n++)
{
if (str[n] == '<' || str[n] == ' ' || str[n] == '>')
{
if (in_word)
{
if (w > w_m)
w_m = w;
}
out_word = 1;
in_word = 0;
w = 0;
}
else if (!in_word)
{
word++;
out_word = 0;
in_word = 1;
}
if (in_word)
w++;
}
/*ZDE*/ if ((words = (char **)malloc(word*(sizeof(char *)))) == NULL)
{
fprintf(stderr, "chps : %s\n", strerror(errno));
exit (1);
}
for (n = 0; n < word; n++)
{
if ((words[n] = (char *)malloc(w_m*sizeof(char))) == NULL)
{
fprintf(stderr, "chps : %s\n", strerror(errno));
exit (1);
}
}
in_word = out_word = 0;
w = w_m = word = 0;
for(n = 0; str[n] != '\0'; n++)
{
if (str[n] == '<' || str[n] == ' ' || str[n] == '>')
{
if (in_word)
{
if (w > w_m)
{
w_m = w;
}
/*ZDE*/ words[word - 1][w] = '\0';
}
out_word = 1;
in_word = 0;
w = 0;
}
else if (!in_word)
{
word++;
out_word = 0;
in_word = 1;
}
if (in_word)
words[word - 1][w++] = str[n];
}
if (pos <= word)
return(words[pos - 1]);
else
return(" ");
}
Funkce se vola napr get_term("<NAME opt1 opt2 opt3>", 2); a
vrati opt1.
Dekuji.
#include <string.h> #include <stdio.h> #include <stdlib.h> char *get_term(const char *str, int pos) { char *p, *q, *r; size_t len; if ((pos < 1) || !str) { return NULL; } len = strlen(str); if ((*str != '<') || (str[len - 1] != '>')) { return NULL; } p = (char *)str + 1; while (--pos) { p = strchr(p, ' '); if (!p || !*p) { return NULL; } p++; } q = strchr(p, ' '); if (!q) { q = (char *)str + len - 2; } if (p > q) { return NULL; } r = malloc(q - p + 2); if (!r) { return NULL; } memcpy(r, p, q - p + 1); r[q - p + 1] = '\0'; return r; } int main() { const char *s = "<a b c d>"; int i; for (i = 1; i <= 5; i++) { char *p = get_term(s, i); printf("%d: %s\n", i, p ? p : "not found"); if (p) { free(p); } } return 0; }
Tiskni
Sdílej: