Dincolo De Ratiune, Din minunile informaticii/tehnologiei |
Bine ati venit ca musafir! ( Logare | Inregistrare )
Dincolo De Ratiune, Din minunile informaticii/tehnologiei |
21 Nov 2005, 02:59 PM
Mesaj
#1
|
|
Domnitor Grup: Membri Mesaje: 3.591 Inscris: 22 September 03 Forumist Nr.: 826 |
Tocmai am patit o chestie... aveam un program care nu mergea. Adica mergea, dar se comporta cu totul aiurea. Scris in C. Deci, ma apuc sa incerc sa descopar ce nu e bine. Elimin cateva mesaje (printf-uri), bag cateva in plus, ii dau drumul si... MERGE! Adica, practic, nu i-am facut nimic, si merge!
Uimit de intamplare, ii spun colegei mele. La care ea zice: Stai, asta nu e nimic. Saptamana trecuta aveam un program care nu mergea, i-am bagat un comentariu si a mers! Voi ati avut intamplari de genul asta? Sunt computerele noastre paranormale? De ce se comporta asa? Acest topic a fost editat de Olaf: 21 Nov 2005, 03:59 PM |
|
|
21 Nov 2005, 11:50 PM
Mesaj
#2
|
|
Vornic Grup: Membri Mesaje: 382 Inscris: 11 May 05 Forumist Nr.: 6.278 |
sunt fenomene 'normale' care apar atunci cand programezi neingrijit.
de exemplu, daca intr-o functie iti declari un array si il preclucrezi dar treci de limitele lui, stiva crescind de la adrese mari spre adrese mici, ajungi sa suprascrii adresa de return a functiei (adresa apelantului). La iesirea din functie, programul crapa. Daca adaugi/declari o banala variabila (chiar si nefolosita) in functie, poti sa constati ca programul merge pentru ca variabila adaugata va fi suprascrisa in locul adresei de return. deci, nimic paranormal. Acest topic a fost editat de bonobo: 21 Nov 2005, 11:52 PM |
|
|
22 Nov 2005, 10:31 AM
Mesaj
#3
|
|
Domnitor Grup: Membri Mesaje: 3.591 Inscris: 22 September 03 Forumist Nr.: 826 |
Crede-ma, am avut FOARTE mare grija sa nu depasesc memoria alocata... In plus, nu am declarat nici o variabila noua.
|
|
|
Promo Contextual |
22 Nov 2005, 10:31 AM
Mesaj
#
|
ContextuALL |
|
|
|
22 Nov 2005, 10:39 AM
Mesaj
#4
|
|||
Domnitor Grup: Membri Mesaje: 6.255 Inscris: 3 October 03 Forumist Nr.: 899 |
Reformuleaza, pentru ca afirmatia ta este ambigua. Si fiecare interpretare are consecinte diferite -------------------- Azi avem.
|
||
|
|||
22 Nov 2005, 10:42 AM
Mesaj
#5
|
|
Domnitor Grup: Membri Mesaje: 3.591 Inscris: 22 September 03 Forumist Nr.: 826 |
Adica sunt sigur ca nu am facut niciuna din greselile de care zice bonobo. Le-am facut alta data, dar acum m-am invatat minte
Pe de alta parte, stiu ca nu exista "paranormal" in legatura cu computerul, dar intamplarea asta ma depaseste. |
|
|
22 Nov 2005, 10:43 AM
Mesaj
#6
|
|
Domnitor Grup: Membri Mesaje: 6.255 Inscris: 3 October 03 Forumist Nr.: 899 |
Parca este totusi posibilitatea sa compilezi cu tot felul de chestii de debug (sa verifice ca chiar nu iesi din array-uri si chestii de genul asta). Incearca, si vezi ce iese. S-ar putea sa ai surprize
Parerea mea e ca oricum, in C/C++ este nedeterminist cand termini de scris si depanat programul. Acest topic a fost editat de axel: 22 Nov 2005, 10:44 AM -------------------- Azi avem.
|
|
|
22 Nov 2005, 12:29 PM
Mesaj
#7
|
|
Cronicar Grup: Moderator Mesaje: 2.894 Inscris: 7 December 03 Forumist Nr.: 1.410 |
Olaf, atata timp cat ai modificat orice in plus fata de simplele comentarii, chiar si acele printfuri, ai modificat spatiul alocat programului si datelor. Chiar daca inainte de modificare parte a spatiului datelor era gresit alocat (eventual nealocat complet) totusi putea functiona printr-un "concurs de imprejurari" ("nimeni" nu scria peste zona nealocata). Dupa modificare insa, acest "noroc" se poate schimba.
Desigur, asta nu inseamna ca exclud implicarea paranormalului in programare. -------------------- ... incertitude in certitude ... independence in dependence ... insight in sight ...
|
|
|
22 Nov 2005, 12:35 PM
Mesaj
#8
|
|
Domnitor Grup: Membri Mesaje: 3.591 Inscris: 22 September 03 Forumist Nr.: 826 |
Pai da, dar n-ar fi trebuit, in cazul asta, sa dea eroare la iesirea din functie? Cand incerc sa dezaloc structurile "depasite"?
|
|
|
Versiune Text-Only | Data este acum: 26 April 2024 - 09:18 AM |