Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
OPPO Reno14 F 5G si propone come smartphone di fascia media con caratteristiche equilibrate. Il device monta processore Qualcomm Snapdragon 6 Gen 1, display AMOLED da 6,57 pollici a 120Hz, tripla fotocamera posteriore con sensore principale da 50MP e generosa batteria da 6000mAh con ricarica rapida a 45W. Si posiziona come alternativa accessibile nella gamma Reno14, proponendo un design curato e tutto quello che serve per un uso senza troppe preoccupazioni.
Destiny Rising: quando un gioco mobile supera il gioco originale
Destiny Rising: quando un gioco mobile supera il gioco originale
Tra il declino di Destiny 2 e la crisi di Bungie, il nuovo titolo mobile sviluppato da NetEase sorprende per profondità e varietà. Rising offre ciò che il live service di Bungie non riesce più a garantire, riportando i giocatori in un universo coerente. Un confronto che mette in luce i limiti tecnici e strategici dello studio di Bellevue
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-12-2008, 15:04   #1
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
[C]Eccezione non gestita... almeno credo

Ciao a tutti, sto facendo degli esercizi in C presi da un sito, e uno diceva che dato un numero in input devo trovare il più vicino numero palindromo.
Io ho usato un ciclo while che controlla se la stringa contenente l'input è uguale alla stessa stringa inversa, che viene 'calcolata' dalla funzione reverse.
Ora quando compilo (uso Visual C++), mi dà questi errori:
Codice:
Eccezione first-chance a 0x1026f671 in The next palindrome.exe: 0xC0000005: Violazione di accesso nella lettura del percorso 0x00000331.
Eccezione non gestita a 0x1026f671 in The next palindrome.exe: 0xC0000005: Violazione di accesso nella lettura del percorso 0x00000331.
Che faccio?
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 27-12-2008, 15:10   #2
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
in c le eccezzioni non possono essere gestite perchè sono una caratteristica propria del c++, comunque cìè qualcosa che non va nel codice che hai scritto
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 27-12-2008, 15:38   #3
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
Ok, grazie, ora controllo, se continua a non andare vi posto il codice
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 27-12-2008, 15:58   #4
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Puoi dare un'occhiata al Contest 10
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 27-12-2008, 16:37   #5
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
Ho dato giusto un'occhiata veloce al codice che c'è nella prima pagina, quello scritto in C, ma è esageratamente più lungo del mio (sarà che sono io ad aver fatto maree di errori).
Questo è quell che ho scritto:
Codice:
#include <stdio.h>
#include <string.h>

char* reverse(char *s)
{
  int i, j;
  char *t;
  strcpy(t,s);
  for(i = 0 , j = strlen(s) - 1 ; j >= 0 ; i++, j--)
     *(s + i) = *(t + j);
  return s;
}

int palindrome(char *n){
	int num = (int)n;
	while(n != reverse(n)){
		num++;
		n = (char*)num;
	}
	return num;
}

int main(int argc, char *argv[])
{
	int input;
	printf("Inserisci un numero: ");
    scanf("%d", &input);
	char *in = (char*)input;
	int pal = palindrome(in);
	printf("%d è un numero palindromo", pal);
	return 0;
}
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 27-12-2008, 17:41   #6
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da wizard1993 Guarda i messaggi
in c le eccezzioni non possono essere gestite perchè sono una caratteristica propria del c++,
in quel caso non si tratta di un'eccezione (con una sola Z) C++, ma di un'eccezione SEH e si puó gestire anche in C usando __try/__except.
prima che arrivi l'obiezione: __try/__except é un'estensione Microsoft al C e non é presente su tutti i compilatori; ad esempio manca al MinGW, uno dei motivi percui il MinGW non é molto consigliato per programmare su Windows. il team di ReactOS, che é costretto ad usare il MinGW, ha dovuto scrivere da zero una mini-libreria per la gestione manuale delle eccezioni SEH.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 27-12-2008, 18:21   #7
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
Grazie per la spiegazione, ma quali istruzioni dovrei mettere nel blocco try/except?
Te lo chiedo perché non conoscevo quest'istruzione.
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2008, 13:23   #8
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da agente mm8 Guarda i messaggi
Grazie per la spiegazione, ma quali istruzioni dovrei mettere nel blocco try/except?
Te lo chiedo perché non conoscevo quest'istruzione.
le parole chiave non sono "try" ed "except", ma precisamente "__try" ed "__except": hanno il prefisso del doppio underscore perché é convenzione metterlo nelle keyword che non fanno parte del C ma sono estensioni al linguaggio.
in un blocco __try/__except devi mettere l'istruzione che potrebbe potenzialmente causare l'eccezione SEH, ma nel tuo caso mi sembra che piu che catturare l'eccezione devi semplicemente correggere un bug

intanto se ti interessa qui c'é la guida su __try/__except:
http://msdn.microsoft.com/en-us/libr...57(VS.85).aspx
http://msdn.microsoft.com/en-us/library/zazxh1a9.aspx
http://msdn.microsoft.com/en-us/library/s58ftw19.aspx

PS: quando usi lo Structured Exception Handling (SEH) evita di usare anche le eccezioni C++: alcuni compilatori implementano queste ultime sulla base delle prime, e quindi i due meccanismi interferiscono; ad esempio potresti ritrovarti a catturare un'eccezione SEH in un blocco catch collocato in uno stack frame che viene prima del blocco __except che avrebbe invece dovuto catturare l'eccezione.
fero86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Il tuo portatile ASUS ROG non funziona c...
Zoom migliora il suo operatore virtuale ...
Traguardo Omoda & Jaecoo in Italia: ...
EHT mostra nuove immagini di come cambia...
Il gioiellino di Fastned: aperti in Belg...
La nuova mini workstation AI di MinisFor...
Formula 1 2026, nuove gare Sprint in cal...
MacBook Pro con display OLED e supporto ...
Poste Italiane: dati di milioni di utent...
Microsoft blocca RaccoonO365, rubate olt...
15 anni dopo Skate 3, il gioco torna sot...
Molte novità per MongoDB: version...
Cina, stop alle GPU NVIDIA: Pechino inti...
Google Pixel 10 con sconti super: ecco q...
Apple Mac mini con chip M4 a soli 598€ s...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:34.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v