DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > Programiranje
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

Programiranje Java, Perl, VB, ASP, .NET, C, C++, Pascal, Delphi Sponzor: VIP izazov 3

Odgovori
 
Alati teme Način prikaza
Staro 20. 12. 2010.   #11
Dragi Tata
dinosaurus
Master
 
Avatar Dragi Tata
 
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
Dragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoro
Default

Citat:
Originalno napisao nn.nn Pogledajte poruku
^ A evo još jednog: http://translate.google.com/
Претпостављам да се зезаш али да те неко не би схватио озбиљно, транслитерација и превођење су две сасвим различите ствари.
Dragi Tata je offline   Odgovorite uz citat
Staro 20. 12. 2010.   #12
jablan
VD IT Direktora
Invented the damn thing
 
Avatar jablan
 
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
jablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamen
Default

^ Izgleda šašavo, ali radi (hint: "prevedi" ćirilični tekst sa srpskog na hrvatski).

http://translate.google.com/#sr|hr|%D0%B4%D1%80%D0%B0%D0%B3%D0%B8%20%D1%82%D0% B0%D1%82%D0%B0


__________________
blog

Poslednja izmena od jablan : 20. 12. 2010. u 20:31.
jablan je offline   Odgovorite uz citat
Staro 20. 12. 2010.   #13
Dragi Tata
dinosaurus
Master
 
Avatar Dragi Tata
 
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
Dragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoro
Default

Citat:
Originalno napisao jablan Pogledajte poruku
Ето ти разлике између превођења и транслитерације
Dragi Tata je offline   Odgovorite uz citat
Staro 20. 12. 2010.   #14
japan
novi klan
Professional
 
Avatar japan
 
Datum učlanjenja: 03.02.2007
Poruke: 326
Hvala: 43
427 "Hvala" u 50 poruka
japan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskoro
Default

A sa srpskog na srpski + Read phonetically? Ja bih rekao da je to transliteracija...?
__________________
We professional we dealin' with business
japan je offline   Odgovorite uz citat
Staro 21. 12. 2010.   #15
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

khm, khm ... "C++, alociranje memorije za strukturu"
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 21. 12. 2010.   #16
misko_
profesionalac
Qualified
 
Datum učlanjenja: 22.09.2007
Lokacija: Split
Poruke: 111
Hvala: 8
39 "Hvala" u 10 poruka
misko_ is on a distinguished road
Default

Citat:
Originalno napisao jablan Pogledajte poruku
Međutim, uvek možeš da "napipaš" vrednost polovljenjem intervala, pošto malloc vraća NULL ako ne uspe da alocira zadatu veličinu.
Da malloc možda i da, ali new C++ operator ne radi tako.
I to me zbunjuje jer i mnogim knjiga piše da je.
Evo što sam otkrio.

Prvo kod kompajiram sa g++ na RHEL sa:
[sasa@localhost my_code]$ g++ test.cpp -g -o test && ./test

Napisao sam sljedeći code:
Kôd:
#include <iostream>

int main(int argc, char *argv[])
{
    double * array;
    array = NULL;
    printf("PRVI ALLOC\n");

    array = new double[1000000000];

    if( NULL == array )
    {
        printf("Nije uspio alocirati.\n");
    }
}
Program se uredno komapjlira, ali kada ga pokrenemo dobijem ovo
Kôd:
[sasa@localhost my_code]$ g++ test.cpp -g -o test && ./test
PRVI ALLOC
terminate called after throwing an instance of 'std::bad_alloc'
  what():  St9bad_alloc
Aborted
Iz ovoga zakljucujem da se ovako treba raditi provjera alocirane memorije u C++.
Kôd:
#include <iostream>
int main(int argc, char *argv[])
{
    double * array;
    array = NULL;
    printf("PRVI ALLOC\n");

    try
    {
        array = new double[1000000000];
    }
    catch( std::bad_alloc )
    {
        printf("array ALOCIRANJE NIJE USPIJELO\n");
        exit( -5 );
    }
    catch(...)
    {
        printf("NESTO NIJE USPIJELO\n");
    }
}
Kada ovaj kode pokrenem i kompajliram, dobijem:
Kôd:
[sasa@localhost my_code]$ g++ test.cpp -g -o test && ./test
PRVI ALLOC
array ALOCIRANJE NIJE USPIJELO
U dosta knjiga će se naći da se nakon new treba sa if( NULL == p ) prvojeriti da li je memorija stvarno alocirana.
Iz ovoga moga eksperimenta je jasno da je to koncept koji više ne funkcionira.

Mene sada zanima, od kada se to izmjenilo?
I ako netko ima još kakvih dodatnih informacija može ih iznjeti u vezi ove tematike.
misko_ je offline   Odgovorite uz citat
Staro 21. 12. 2010.   #17
misko_
profesionalac
Qualified
 
Datum učlanjenja: 22.09.2007
Lokacija: Split
Poruke: 111
Hvala: 8
39 "Hvala" u 10 poruka
misko_ is on a distinguished road
Default

Citat:
Originalno napisao jablan Pogledajte poruku
Off Topic: BTW, čovek Splićanin, a ti razvezao ćirilicom...
Off Topic:
snalazim se sa http://www.cirilicalatinica.com/
P.S. ja sam bio prva gneracija kada su izbacili cirilicu iz hrvatskih skola, pa se sada mucim, kako su me zeznuli.
misko_ je offline   Odgovorite uz citat
Staro 21. 12. 2010.   #18
Dragi Tata
dinosaurus
Master
 
Avatar Dragi Tata
 
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
Dragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoro
Default

OK, prelazim na latinicu da se čovek ne muči (BTW, originalan post je od nekog iz Smedereva - kasno sam ukapirao da dve različite osobe postavljaju pitanja u istoj temi).

Ukratko, objašnjenje je sledeće: operator new je vraćao NULL ako nema dovoljno memorije u davna vremena pre standardizacije jezika (1998) i knjige koje pominješ su verovatno napisane pre tog vremena. Danas new baca bad_alloc ako nema dovoljno memorije, kao što si i sam otkrio. Ako želiš da i dalje koristiš stari način sa NULL, onda moraš da radiš ovako:

Kôd:
 array = new (nothrow) double[1000000000];
Obrati pažnju na "nothrow".
Dragi Tata je offline   Odgovorite uz citat
Staro 21. 12. 2010.   #19
Dragi Tata
dinosaurus
Master
 
Avatar Dragi Tata
 
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
Dragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoro
Wink

Citat:
Originalno napisao bluesman Pogledajte poruku
khm, khm ... "C++, alociranje memorije za strukturu"
Гледај ти своја посла - видиш да се лепо забављамо овде
Dragi Tata je offline   Odgovorite uz citat
2 članova zahvaljuje Dragi Tata za poruku:
Staro 12. 04. 2011.   #20
morando
nedovoljno naspavan
Na probnom radu
 
Datum učlanjenja: 25.03.2011
Poruke: 21
Hvala: 7
1 "Hvala" u 1 poruci
morando is on a distinguished road
Default

Da malo razbudim ovaj forum, a i da ne otvaram novu temu pošto je već vezano.

Imam problem sa kodom:
Kôd:
#include <iostream>
#include <new>

int main()
{
	int* iptr = new std::nothrow int;
	*iptr = 4;

	std::cout << "*iptr = " << *iptr << std::endl;

	std::cout << "Press enter to exit...";
	std::cin.get();
	return 0;
}
Koristim MVS express 2010 i na ovaj kod dobijam output:
Citat:
...main.cpp(6): error C2061: syntax error : identifier 'nothrow'
Čitao sam text sa ove stranice i lepo piše da treba samo uključiti "new" header gde je "nothrow" definisan. Gde sam pogrešio?

EDIT: Rešio, nisam stavio u zagrade.

Poslednja izmena od morando : 12. 04. 2011. u 21:08.
morando je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum


Vreme je GMT +2. Trenutno vreme je 17:48.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.