PDA

Visualizza la versione completa : [c++] Errori semantici... un po' di informazioni


jtb
23-12-2008, 00:02
Salve a tutti......premetto che scrivendo applicazioni sono molto distratto e compilo senza guardare bene il codice in cerca di errori. La mia domanda è:
Se non si gestiscono bene certi tipi di errore si può arrivare a far danno al computer???
Non vorrei, data la mia fretta, compilare applicazioni che possano recare danno al computer.... :ciauz: :ciauz: :ciauz:

Xaratroom
23-12-2008, 00:07
Gli errori di tipo sintattico non potranno mai generare problemi sulla tua macchina ...
Mentre errori di tipo semantico potrebbero ....
Tuttavia, essendo tu alle prime armi, non credo che riusciresti, neanche volutamente, a fare "danno" al tuo sistema operativo (e tanto meno al tuo computer).

jtb
23-12-2008, 00:22
Quale sarebbe un errore semantico per esempio??????

MacApp
23-12-2008, 09:34
Originariamente inviato da jtb
Quale sarebbe un errore semantico per esempio??????
Sette più cinque fa ventitre. (la frase è sintatticamente corretta, ma semanticamente errata)

Stoicenko
23-12-2008, 09:40
Parlando di programmazione potresti aver scritto un programma che cancella i files da una cartella ed essere giusto (compila) ma che poi, per distrazione, hai scritto il path errato da cancellare e cancelli mezzo volume "c:"..

jtb
23-12-2008, 17:03
Intendevo errori per esempio nella gestione della memoria.....cose del genere....
perdonate queste domande ma voglio essere sicuro di non avere problemi col computer....

Stoicenko
23-12-2008, 17:10
Difficile che tu possa accedere a zone della memoria esterne a quelle assegnate al tuo processo senza usare le api del sistema operativo e senza fare pasticci strani

jtb
23-12-2008, 17:24
Per esempio ecco sinteticamente cosa ce scritto in un libro di programmazione c++ per la scuola:



char a[7];
int x;

strcpy(a,"AA123BB");

x=-1;



Non so se può succedere con i moderni compilatori(il libro è abbastanza vecchio) ma dice che in questo caso strcpy copierebbe in a una stringa di 7 caratteri in cui non ci sarebbe spazio per il carattere di fine stringa \0 che andrebbe a finire nel primo byte di x, con la modifica di x in "-1" il carattere di fine stringa scomparirebbe.....Dice che errori cosi sono rari ma oltre ad avere un valore errato in una variabile, porterebbe anche un instabilità nel sistema....

Rimando a voi il compito di verificare se questa situazione è possibile......questi libri per la scuola non mi sembrano un granché.....

Xaratroom
23-12-2008, 17:27
In quel caso è compito del sistema operativo, fare in modo che un qualsiasi programma non acceda (anche solo in lettura) ad aree di memoria "che non gli sono state assegnate".
Se il tuo programma dovesse "gestire in modo errato la memoria", sarà semplicemente killato

Puoi incollare il codice completo del programma ?

Comunque non causa instabilità di tutto il sistema ...
Semplicemente il programma non avrà più il comportamento che ti aspetti

jtb
23-12-2008, 17:35
Ok....si vede che quel libro parla di vecchi sistemi...Ciao. :ciauz: :ciauz: :ciauz:

Loading