VST 3 je nově pod licencí MIT. S verzí 3.8.0 proběhlo přelicencování zdrojových kódů z licencí "Proprietary Steinberg VST3 License" a "General Public License (GPL) Version 3". VST (Virtual Studio Technology, Wikipedie) je softwarové rozhraní pro komunikaci mezi hostitelským programem a zásuvnými moduly (pluginy), kde tyto moduly slouží ke generování a úpravě digitálního audio signálu.
Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 25.10. Podrobný přehled novinek v poznámkách k vydání.
V Londýně probíhá dvoudenní Ubuntu Summit 25.10. Na programu je řada zajímavých přednášek. Zhlédnout je lze také na YouTube (23. 10. a 24. 10.).
Gemini CLI umožňuje používání AI Gemini přímo v terminálu. Vydána byla verze 0.10.0.
Konference OpenAlt 2025 proběhne již příští víkend 1. a 2. listopadu v Brně. Nabídne přibližně 80 přednášek a workshopů rozdělených do 7 tematických tracků. Program se může ještě mírně měnit až do samotné konference, a to s ohledem na opožděné úpravy abstraktů i případné podzimní virózy. Díky partnerům je vstup na konferenci zdarma. Registrace není nutná. Vyplnění formuláře však pomůže s lepším plánováním dalších ročníků konference.
Samsung představil headset Galaxy XR se 4K Micro-OLED displeji, procesorem Snapdragon XR2+ Gen 2, 16 GB RAM, 256 GB úložištěm, operačním systémem Android XR a Gemini AI.
Před konferencí Next.js Conf 2025 bylo oznámeno vydání nové verze 16 open source frameworku Next.js (Wikipedie) pro psaní webových aplikací v Reactu. Přehled novinek v příspěvku na blogu.
Sovereign Tech Fund oznámil finanční podporu následujících open source projektů: Scala, SDCC, Let's Encrypt, Servo, chatmail, Drupal, Fedify, openprinting, PHP, Apache Arrow, OpenSSL, R Project, Open Web Docs, conda, systemd a phpseclib.
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.
Ahoj vespolek, jsem zacatecnik v cecku a snazim se psat trochu chytrejsi programy. Prave u jednoho jsem se sekl a nemuzu prijit na to, v ktere casti kodu je chyba
. Pri kompilaci to nevipise nic, ani varovani, bohuzel behem spusteni to spande a vypise Neoprávněný přístup do paměti (SIGSEGV) .. pouzivam Archlinux, prejel jsem to i debuggerem a ten mi vypise, ze se jedna o chybu
Program received signal SIGSEGV, Segmentation fault.
0x00000000004005d5 in serazeni ()
... zkousel jsem to znovu prepsat, jestli jsem neudelal nejaku hrubku, ale nic, bohuzel nevim.. jsem zacatecnik, tak to prosim berte na vedomi... kod je prilozeny v souboru. Dekuji vsem za napady, pripominky, dotazy a kritiku.
j=3; nebo tot nééé r[2]=58;, a pak se zamyslet na tím, že číslování polí je od 0 po N-1 a s větším index-em se dostanete mimo alokovaný rozsah.
To kopirovani jsem prepsal na :
k=r[j];
r[j]=r[j+1];
r[j+1]=k;
U toho noveho zpusobu (nevim jak se tomu rika v cecku, v matice je to myslim mnozina vsech cisel R) je to efektivnejsi, dekuji moc za navrh.
Ohledne toho enteru, napsal jsem tam printf("\n"); nebo jste myslel neco jineho? Kazdopadne dekuji za pripominky a jsem Vam velmi vdecny, jsem o neco chytrejsi.
To printf("\n"); je v pořádku, jen trochu pomalé, v tomhle případě by úplně stačilo putchar('\n');.
Ještě jednu radu, já začínám tím že si napíšu
#include <stdio.h>
int main(void)
{
return 0;
}
a pak teprve do téhle kostry začnu psát, nebo spíš doplňovat program
i tebe se chci zeptat, jelikoz v tom mas praxi a si dobry, mival jsi podobne problemy jako ja? jen aby me to psychicky rozladilo /povzbudilo
A protožemain()nepřebírá žádné vstupní hodnoty, je vhodné to zdůraznit:int main(void), protože když tam nedáš nic, překladač automaticky předpokládá že tam má být nějakýint.
Vy nějaký takový znáte? Obávám se, že si to spíš pletete s tím, že ve starších dialektech C se při neuvedení návratového typu implicitně předpokládal int.
řádek 41: Když už máš funkci main() nadeklarovanou jako int, tak musíš také nějaký int vracet, takže tam připiš return 0;. A protože main() nepřebírá žádné vstupní hodnoty, je vhodné to zdůraznit: int main(void), protože když tam nedáš nic, překladač automaticky předpokládá že tam má být nějaký int.Tohle se dělo u návratových typů. Pokud neuvedete
void jako parametr, překladač předpokládá, že o parametrech té funkce nic neví a tedy mohou být jakékoliv. Což je u main, když ty parametry nepoužijete, vlastně pravda.
serazeni.c skompiluj ako:
gcc -Wall -g -o atest serazeni.ckde
atest bude tvoj spustitelny program. ten mozes spustit zapomoci gdb debuggeru, napriklad:
mato@foxi:(~/lair/abc)$ gdb ./atest
GNU gdb 6.1.1 [FreeBSD]
(gdb) run
Starting program: /home/mato/lair/abc/atest
Program received signal SIGBUS, Bus error.
0x0000000000400665 in serazeni (r=0x7fffffffeaf0, i=2) at abc.c:20
20 if(r[j]>r[j+1]){
(gdb)
a vidis, kde nastal problem (najskor pretecenie pola).
no, smyslem toho programu bylo porovnavat hodnoty a prehazovat je s vedlejsim (levym) prvkem v poli do te doby, dokud to nebude serazene od nejmensiho po nejvetsi... bohuzel jsem se opet zasekl a ten cyklus (upravil jsem to)
for(g=0;r[g]<r[++g];){
if(g==i){
complete=1;
break;
}
}
udela nekonecnou smycku (zajimave je, ze je vytezovano jen 1 jadro ze 4... a to jadro druhe... :D
jinak zatim dekuji za ten debugging... a kdyz jsme u te syntaxe a smyslu, jelikoz jsem zacatecnik, tak se jenom zeptam.. na psani uspesnych a funkcnich programu porebuji praxi (psat a psat) nebo na to existuje nejaka publikace? dekuji Vam.
ak som teda spravne pochopil ten program sa snazi robit bubblesort (bublinkove triedenie)? zotriedenie pola vyriesia 2 jednoduche cykly:
int a,b,temp;
for (a =0 ; a < MAX; a++) {
for (b =0 ; b < MAX-1; b++) {
if (pole[b] > pole[b+1]) { /* swap n+1 with n */
temp = pole[b];
pole[b] = pole[b+1];
pole[b+1] = temp;
}
}
}
(kde MAX je zadefinovany ako dlzka pola).
ja mam velmi daleko od dobreho programatora; ale i ten sebalepsi programator pise _obcas programy s bugmi.
kazdy zacinal na zelenej luke, zaciatky su tazke (pre niekoho viac, pre niekoho menej).treba sa naucit rozmyslat v danom jazyku - to chce cas. comu nerozumies mozes preskocit a vratit sa neskor.
drz sa tych knih co mas, tie su naozaj dobre.
#include <stdio.h>
void serazeni(int r[], int i)
{
int j, k, g;
for(j = 0;; j++) {
for(g = 0; r[g] < r[g+1]; g++) {
if(g == i-1)
return;
}
if(j == i)
j = 0;
if(r[j] > r[j+1]) {
k = r[j];
r[j] = r[j+1];
r[j+1] = k;
}
}
}
int main()
{
int i, size;
int r[] = {542, 12, 58, 10, 7};
size = sizeof(r)/sizeof(int);
serazeni(r, size);
for(i = 0; i < size; i++) {
printf("%d, ", r[i]);
}
printf("\n");
return 0;
}
Ušetřím si tak jeden cyklus a kód je o dost čitelnější. Tvůj algoritmus se zasekne v nekonečné smyčce kvůli téhle části:
if(j==i){
j=0;
}
else {
Tedy Pokud jsi prošel celé, pole vrať se na začátek, v jiném případě proveď porovnání. Neporovná se ti první a druhý (či lépe nultý a první) prvek v poli a algoritmus tak nikdy nedoběhne.
)
int pole[10]; sizeof(pole);V tomhle případě sizeof() vrátí 40 (na 64 bitové architektuře 80) protože máme pole o 10 prvcích, každý 4 byty (8 bytů) velký.
int pole[10]; sizeof(pole)/sizeof(int);Vrátí počet prvků v poli děleno velikostí jednoho prvku - význam je předpokládám jasný.
int pole[10]; sizeof(pole)/sizeof(pole[0]);čili velikost celého pole děleno velikostí prvního prvku v poli.
na 64 bitové architektuře 80
Jak na které. Třeba u gcc na x86_64 je to 40.
long, kde u LLP64 a LP64 (Windows a Linux) tento rozdíl je.
Tiskni
Sdílej: