Új hozzászólás Aktív témák
-
shev7
veterán
válasz feherpeter #217 üzenetére
at kell konvertalnod az int-et char*-ba. Mivel ez relative gyakori muvelet van ra konyvtari fv. itoa a baratod.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz CPT.Pirk #219 üzenetére
probald ki mit csinal ez, es erteni fogod
#include <stdio.h>
int main( int argc, const char* argv[] )
{
// Prints each argument on the command line.
for( int i = 0; i < argc; i++ )
{
printf( "arg %d: %s\n", i, argv[i] );
}
}[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz feherpeter #221 üzenetére
google-t ismered?
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz feherpeter #223 üzenetére
nem ertem a felhaborodasodat... adtam linket, vagy nem?
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
utananeztem a perrornak, es ahogy nezem ennek az a lenyege, hogy egy globalis valtozo tarolja, hogy a program futtatasa soran milyen hiba lepett fel, es a parameterul adott string utan kiirja. Tehat teszem azt, ha az atoi-t ugy probalnad meghivni, hogy elotte nem ellenorzod le hogy konvertalhato-e szamma a string, akkor ha hiba tortent, beallitana az errno nevu globalis valtozot (hivas elott erdemes nullazni, es includolni kell az errno.h-t) Ha az atoi hivas utan ellenorzod, hogy az errno erteke 0. Ha nem, akkor hivsz egy perror-t ami kirna a szoveget, meg az errno hibakodnak megfelelo szoveget. De mivel te mindig leellenorzod, hogy a szam konvertalhato-e, a program futasa soran sosem kap rossz parametert, sosem fog az errno erteke megvaltozni, ezert a perror hivas ebbol a szempontbol felesleges, irhatnal egybol a stderr-re is.
Visszaterve a temara: mivel fogalmam sincs mi az ami Kernighan-Ritchie C es mi az ami nem, fogalmam sincs mi a baja. De ha perror-t lehet hasznalni Kernighan-Ritchie C-ben, akkor lehet, hogy arra gondol a tanero amit fennt levezettem mert akkor az lehet hogy Kernighan-Ritchie-sebb
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
ami valoszinuleg szinten programozas. Ha programozni tudsz, akkor barmilyen nyelvben meg tudsz irni egy ilyen programot. Valoszinulge pont azert kerte a tanero KRC-ben, mert ebben senki sem programozik, igy nehezebb a netrol/ismerostol segitseget kerni.
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
miert is nem illik cimeket kivonni? siman kivonhatoak egymasbol es megadja a string hosszat
btw szerinted ez mit csinal? vagyis inkabb mikor lesz igaz?
*str++
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
megengedik? azert annal kicsit tobbrol van szo...
az strlen fuggveny is ugy van implementalva, hogy a visszateresi ertek pointerek kulonbsege, pont mint a peldaban...
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Sk8erPeter #1377 üzenetére
tomb merete fix
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
ugy ertettem, hogy ha pointert mint tombot hasznalunk futasi idoben valtoztathato a "tombnek" a merete. Ha arra van szukseg fogod es nagyobbat foglalsz
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Sk8erPeter #1384 üzenetére
"ezt sem értem, mert dinamikusan is, futásidőben is lehet memóriát foglalni tömbnek, attól függően, hogy mondjuk mekkora egy másik tömb, aminek az elemeit át szeretnénk másolni egy új tömbbe, attól függően módosítjuk a foglalt memóriaméretet."
En ugy tudom, hogy tombre ilyet nem lehet. Ha azt mondom, hogy int x[5] akkor az elete vegeig 5 elemu tomb lesz. Sot en ugy tudom standard C-ben olyan sincs hogy
f(int x){
int array[x];
}Ellenben ha fogsz egy pointert akkor a pointerrel akkora teruletet foglalsz le amekkorat akarsz, es futasi idoben ugy varialod ahogy akarod.
Es a memoriakezelesrol:
Ha a tombodet nem globalis valtozokent deklaralod, akkor a tombnek a helyet a stack-en foglalja le. Ugyan ez igaz a pointer-re is, tehat a pointer altal mutatott cim is a stack-en lesz. Ellenben, ha a pointer-hez allokalsz memoriateruletet, azt mar a heap-en fogja lefoglalni.[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Sk8erPeter #1399 üzenetére
de pont errol beszeltem. Az ujtomb valtozo nem egy "statikus" tomb. Az egy pointer. Amirol mit is irtam? Ja tenyleg, azt hogy futasi idoben lehet neki memoriat foglalni.
Tehat megegszer, mert ugy tunik nem jon at
ha egy valtozot igy deklaralsz
int *tomb
az egy pointer lesz. Ponternek futasi idoben foglasz meretet, ujra foglalod stb...
ha egy valtozot igy deklaralsz:
int tomb[100]
az egy tomb, array, nevezzuk akarminek, lesz. A pointernek foglalt terulettel ellentetben ennek a memoriaigenye mar forditaskor eldol, es a stack-en fog csucsulni megvaltoztathatatlanul, es nem a heap-en ahogy a pointer altal foglalt terulet, amivel azt csinalsz amit akarsz, lefoglalod, felszabaditod, ujrafoglalod.
Ertem?
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Sk8erPeter #1412 üzenetére
bar nem nekem szol a kerdes probalok valaszolni, ha mar itt vagyok:
"A double *ujtomb; sorban tehát deklarálunk egy pointerváltozót ujtomb néven, aminek csak később foglaljuk le a szükséges memóriát, először még csak meghatározzuk, hogy "lesz ilyen"."
Lenyegeben igen.
Amikor megtudtuk az eredeti tömb számunkra szükséges elemeit megszámolva, mekkora új tömbre van szükségünk, azután lefoglaltuk neki a számára szükséges memóriát.
Inkabb nevezzuk memoriateruletnek, de igen.
Ezután tömbként és egyben pointerként használtuk fel a későbbiekben, rakosgattunk bele elemeket, és itt ez most kicsit zavaros számomra, hogy akkor most melyik fogalmat is használjuk, ami helytálló. Mert tömbnek foglalunk helyet, de pointertömb...
Na itt kezdodik a fogalomzavar. Eloszor is ne hivd pointertombnek mert az nem az. A pointertom az szamomra a pointerek tombjet jelenti, es itt nem errol van szo. Hogy mi is tortenik ahhoz egy kis magyarazat.
Vegyunk eloszor egy egyszeru byte pointert: byte *p;
a p valtozo tartalma egy memoria cim. A *p ahogy a deklaraciobol is olvashato egy byteot jelent (vagyis a p pointer altal mutatott erteket). Ha tovabbmegyunk a *(p+1) - a p memoriaterulet utani byte-on levo byte-ot jelenti. Na es most jon a turpissag, maradjatok meg velem hogy ne legyen olyan bonyolult az elet, behoztak ezt a tomb pointer megfeleltetest. (illetve nem behoztak, eddig is igy mukodott, csak mivel korabban nem voltak pointerek, nem foglalkoztunk a problemaval) Azaz a p[5] az megegyezik azzal mintha azt irnad hogy *(p+5).de ugye ez csak byteoknal mukodne ilyen egyszeuen. Int-nel mar bonyolultabb a tema. Ott a kovetkezo egyenloseg igaz: p[5] = *(p+sizeof(int)*5)
Namost mivel ez alapbol igy mukodott tomboknel, ( ha deklaralsz egy olyat hogy
int tomb[100]; akkor a tomb igy magaban egy pointer, es a hatterben pont egy ilyen konverzio zajlik le) akkor a pointerek bevezetesevel csak annyi tortent, hogy ez "mukodik a masik iranyba is"MOD: ja es ezert indexeljuk 0-tol a tomboket C-ben
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Sk8erPeter #1420 üzenetére
mert ha egytol indexelnenk, akkor
p[1] = *p
p[2]= *(p+1)
.
.
.0-s indexelesnel mindket oldalon ugyan az a szam van
"hogy lehet deklarálni úgy egy változót, hogy byte *p; . Ez mire jó ebben a formában? "
Na most ennek utananeztem, hogy ne irjak hulyeseget. A lenyege, hogy egyertelmu legyen. A * operator ugyanis jobbra kot. Barmennyire is irod kozel a tipushoz
Szoval ha irsz egy ilyet:
long* first, second;
akkor deklaraltal egy long pointert (first) es egy long valtozot (second). De akkor mar miert nem irnad le egyertelmuen:
long *first, second; es igy senki nem fogja azt gondolni hogy ket pointert deklaraltal.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
-
shev7
veterán
válasz Sk8erPeter #1591 üzenetére
nem veletlen az a break a while cikluson belul... ha a es b ket vegtelen hosszu egyforma string akkor tenyleg vegtelen ciklus lesz...
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
egyreszt ez nem ertem miert kell:
while(c!=EOF && c!='\n')
c=getchar();Masreszt hiaba csa 10-et olvasol be ha a vizsgalat a main-ben 100-ig megy. Ott mar nem vizsgalod, hogy eljutottal-e a \0-ig
Masreszt ez talan problemat fog okozni, ha i erteke 100
s[i]='\0';
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Sk8erPeter #1663 üzenetére
teny, hogy feleslegesen nem fut a ciklusod de a divider valtozo behozasa a kepbe csak feleslegesen bonyolitja az algoritmust, es rontja az olvashatosagot, (nekem legalabbis beletelt par percbe mig felfogtam, hogy mi van, es miert is mukodik jol) Ha valami uzenetet akar kiirni, ahhoz nem kell ez a varazslas, megy az a return elott is.
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Sk8erPeter #1666 üzenetére
"Már kezdem bánni, hogy megcsináltam a programot a srác helyett... "
azt sose band. Es a kritikat se vedd szemelyes sertesnek. A cel nem az, hogy megmutassuk rossz amit irtal, egyaltalan nem. A cel az, hogy mas is tanuljon belole.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Sk8erPeter #1671 üzenetére
"Vagy csak én vagyok a maradi, hogy meg szoktam köszönni, ha segítenek nekem?"
Mit koszonjon meg? Nem latod, hogy nem mukodik neki
lepj tul ezen te vagy azon keves lelkesek egyike akik jofejsegbol ingyen megcsinaljak mas hazijat. Majd megunod, en is meguntam. De addig meg ne hagyd hogy ilyenek eltantoritsanak, ha jol tudom te is meg csak tanulod a dolgokat, jo gyakorlas ez. Mi meg majd szetszedjuk, es abbol is tanul mindenki aki a topicot latogatja. Savazas nem lesz, abban biztos lehetsz!
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
mivel egyszerre kered be az osszes kockadobas eredmenyet, igy az ujra bekeres azt jelenti, hogy az egesz sorozatot ujra be kell kerned. Ha mar bekeresnel is ellenorizni akarsz, akkor celszeru karakterenkent beolvasni, es csak az adott karaktert kerni ujra
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz nepszter1 #1686 üzenetére
oszthato 6-tal? vagy en nem ertem mit szeretnel tudni...
MOD: Karma: bocsi... azt hittem hogy akik C-ben programoznak, vagy akarmiben is programoznak, azoknak a matekhoz legalabb valami kozuk van... anelkul...
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz nepszter1 #1693 üzenetére
pedig hidd el, sokkal segitokeszebbek az emberek, ha nem azt kered, hogy hello ird meg az egeszet, hanem ha azt mondod, hogy idaig jutottam, ez hianyzik meg...
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz cellpeti #1698 üzenetére
karaktersorozatot ugy alapbol char* valtozoba olvasol be. Korabban volt egy hosszabb eszmefuttatas a topikban arrol hogy milyen korulmenyek kozott igaz az hogy pointer = tomb. De a lenyeg, ha letaroltad char*-ba akkor azzal dolgozhatsz ugy mint tombbel.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz cellpeti #1702 üzenetére
de amikor bekered szavany bemenetrol akkor egybol el is tarolod. Vagy a bekeres nem megy? akkor kerdezd azt
char* str; // ez lehetne char str[50] is de akkor 50-nel nagyobb inputnal bajban vagy
scanf("%s", str);''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
mondjuk ha olyan utasitasokba amiknek nem te irtad a kodjat hanem pl konyvtari fuggvenyek nem akarnal belepni, hanem csak atlepnel rajta, akkor szerintem tobb szerencsed lenne
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Korcsii #1789 üzenetére
stdlib-ben vannak rendezo fv-ek (pl qsort) neked csak a rendezeshez hasznalt fuggvenyt kell megirni, (ami megmondja, hogy ket elem kozul az elso a nagyobb, a masodik a nagyobb, vagy egyenloek)
@doc:
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Korcsii #1793 üzenetére
"függvény talán azért lenne szerencsésebb, mert 3x kell használni, és így elég lenne egyszer megírni... de igazán semmi ötletem nincs erre, max az, hogy egy sima váltózóból kap egy értéket, és azt megvizsgálva a megfelelőt pörgeti végig... na de ez lehet még hosszabb/rosszabb, mint ha mindenhova odaírnám..."
Ezt csak en nem ertem mit akar jelenteni?
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
en meg bme-en hallgattam a bsc-s szornyszulott bevezetese elott. Azon kevesek egyike voltam aki ertekelte es szerette a targyat. Szerintem is nagyon hasznos volt. Peldaul regexp elemzo automatat sokkal konnyebb irni par formalis nyelvek eloadas utan
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Sk8erPeter #1817 üzenetére
Hat determinisztikus allapotautomatat nem annyira nehez rajzolni hozza. Ha az megvan onnan nem nehez. De nem lovom le a poent
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
semmi extra. Csak mivel Sk8erPeter nem kert segitseget (vagy legalabbis nem lattam, hogy segitseget kert volna) gondoltam nem veszem el tole a felfedezes oromet, es nem irom le meg nagy vonalakban sem, hogy hogyan csinalnam
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
-
shev7
veterán
válasz Sk8erPeter #1985 üzenetére
for(i=0;i<strlen(tomb1) && i<strlen(tomb2); i++)
{
if(tomb2[i] != '\t' || tomb2[i] != ' ')
tomb1[i]=tomb2[i];
}kerdes: mi lesz a tomb1 4. eleme, ha a tomb2 4. eleme szokoz volt
ket index kell, az egyikkel tomb1-et indexeled, a masikkal tomb2-t.
illetve ezekkel a feltetelekkel mindig bajban vagyok en is de szerintem ez nem jo. && kene || helyett, nem? Mert ez a feltetel mindig igaz.
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
válasz Korcsii #1990 üzenetére
hat mert ha irsz egy fv-t akkor nem lehetsz biztos abban, hogy a parameterul kapott tombok megfelelo meretuek lesznek, ertsd: a tomb1 eleg nagy ahhoz, hogy tomb2 tartalma beleferjen.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Ritkaság! Alienware AW5520QF Oled Gamer Monitor!55"/4k/120hz/0,5ms/Alienfx RGB
- LG34UM68-P 21:9-es Ultra Wide monitor eladó!
- HP Envy x360 15,6 IPS LED Gorilla Glass i7, 16GB, 1TB fémházas 3az1 notebook + HP toll - harmad áron
- ASUS ProArt GeForce RTX 4080 SUPER 16GB GDDR6X OC (ASUS-VC-PRO-RT4080S-O16G) Bontatlan új 3 év gar!
- Szép állapotú 2020-as MacBook Air 13 - M1-es processzor, 8GB RAM, 256GB SSD