infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: alexandru din Septembrie 21, 2009, 15:42:21



Titlul: ciudatenie
Scris de: alexandru din Septembrie 21, 2009, 15:42:21
Aceste doua fisiere, aparent identice la afiseaza 2 rezultate diferite: 0, 1.
Am testat sub ubuntu: geany, Netbeans 6.7.1


Titlul: Răspuns: ciudatenie
Scris de: Pripoae Teodor Anton din Septembrie 21, 2009, 16:23:26
Mie imi da ok. Compileaza din linia de comanda si vezi ce iti da.


Titlul: Răspuns: ciudatenie
Scris de: alexandru din Septembrie 21, 2009, 16:33:36
Mie imi da ok. Compileaza din linia de comanda si vezi ce iti da.
Folosit cu g++ 4.3.3 si da diferit.


Titlul: Răspuns: ciudatenie
Scris de: Pripoae Teodor Anton din Septembrie 21, 2009, 20:24:33
Ubuntu cat ? Mie pe gcc 4.4.0 imi da ok, cum am zis.


Titlul: Răspuns: ciudatenie
Scris de: alexandru din Septembrie 22, 2009, 05:33:16
Ubuntu cat ? Mie pe gcc 4.4.0 imi da ok, cum am zis.
Ubuntu 9.04 pe 32 de biti.

g++ name.cpp -lm -Wall -O2 -o name


Titlul: Răspuns: ciudatenie
Scris de: Pripoae Teodor Anton din Septembrie 22, 2009, 15:23:56
Nu stiu de ce iti da prost, si mie imi da prost pe ubuntu 9.04 cu sursele astea. Vezi sa nu faci ceva dubiosenii pe acolo, si daca tot nu merge pune-ti altceva in loc de ubuntu (fedora) ;).


Titlul: Răspuns: ciudatenie
Scris de: alexandru din Septembrie 22, 2009, 18:53:54
Nu stiu de ce iti da prost, si mie imi da prost pe ubuntu 9.04 cu sursele astea. Vezi sa nu faci ceva dubiosenii pe acolo, si daca tot nu merge pune-ti altceva in loc de ubuntu (fedora) ;).
Cand fac debug la cea care da 1 ... la un moment dat  wildcard se termina si devine text, in do{}while(); . Si la varianta "corecta" nu se intampla asa ... ma gandesc ca poate sa fie datorita jocului cu iteratorii . Dar de ce unele compilatoare interpetreaza diferit? Visual C++ da rezultatul corect ... si la tine la fel :D


Titlul: Răspuns: ciudatenie
Scris de: Pripoae Teodor Anton din Septembrie 22, 2009, 19:14:40
Pentru ca fiecare compilator genereaza diferit codul. Si sistemele de operare diferite (sau kernelurile diferite) interpreteaza diferit executabilul (alocarea zonelor de memorie, etc). Nu de putine ori n-am primit eroare la codul urmator :

Cod:

int main () {
   int a[10];
   a[16] = 2;
   printf("%d", a[16]);
}



Titlul: Răspuns: ciudatenie
Scris de: Andrei Grigorean din Septembrie 22, 2009, 19:43:01
Nu am avut rabdare sa ma uit pe cod, insa de obicei in cazurile astea exista o eroare in program de genul celei exemplificate mai sus de toni.