alkaa tympiä tuo jatkuva muistin vapauttelu ja siitä seuraavat ongelmat ja virheet/kaatuilut, miten tuon saa automaattiseksi??? jos se kerran javassa toimii niin miksei c :ssä???
automaattinen roskienkeruu
miten?
5369
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 5
Vanhimmat
Jos muistin vapauttaessa (tai käytettäessä) tulee virheitä, virhe on yleensä siinä, että kirjoitetaan/luetaan ohi varatun muistialueen. Virheet tulisi siis etupäässä korjailla pois koodista.
Virheiden prosessointiin voi tietty käyttää try-catch-throw -käskyjä (tai oikeemmin try ja catch blokit ja throw -makro).
LPTSTR SafeStrcpy(LPTSTR string1, LPTSTR string2){
try {
return strcpy(string1, string2);
}
except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
EXCEPTION_EXECUTE_HANDLER :
EXCEPTION_CONTINUE_SEARCH ) {
return NULL;
}
}
Synä on jäykkä standardi, ei siihen niin vain tehdä muutoksia, eli C ja C ovat mitä ovat nyt ja hamaan maailman taappiin saakka.
Jos kurinalainen muistinkäsittely tuntuu ylivoimaiselta, niin siirry jawa-maailmaan, tai C#:iin, siellä saa elää kuin pellossa.
nuhapunppumainen ja helkkarin kankea sovelus sen koosta riippumatta: nythän on hyvinkin pitkälti niin, että nämähän ovat ceellä ja ceeplusplussalla tehdyt sovelukset valovuoden edellä suoritusnopeuksia mitattaessa verrattuna sen ohjelmointipellossa eläjän jawettiin. Ceesharpista mä en osaa sanoa muuta kuin sen, että siinä voi käsittääkseni tehdä saman asia yhdellä rivillä verrattuna ceeplusplussaan ja etenkin ceehen, jossa siihen samaan tekemiseen joutuu kirjottaan rivitolkulla koodia, jos välttämättä haluaa niillä riveillä keksiä polkupyörän uudestaan. Mutta suoritusnopeudet ja soveluskoot ovat sitten keksittynä tietenkin ylivoimaisia, mutta siinä pitää siis muistaa, että sen saavuttamiseen siten ohjelmoimalla voi mennä vuosia isommaltakin porukalta.
http://www.hpl.hp.com/personal/Hans_Boehm/gc/
C kielessähän voi ylikirjoitaa new ja delete operaatorit
" C ja C ovat mitä ovat nyt ja hamaan maailman taappiin saakka."
sanooko C99 mitään ?