Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-11-2013, 17:09   #1
mirkus90
Member
 
L'Avatar di mirkus90
 
Iscritto dal: Oct 2007
Città: Monopoli(BA)
Messaggi: 218
[C] problema con funzioni

Ragazzi ho un problema con queste funzioni
Codice:
void inserire_matricola(int posizione_corrente){
     int pass=1;
     char *matricola_acquisita;                                                       /* da chiedere al prof*/
     matricola_acquisita = acquisire_matricola(pass);
     strcpy(lista_studenti[posizione_corrente].matricola, matricola_acquisita);
     
     return;
     }
     
char* acquisire_matricola(int variabile){
     
     char *matricola_provvisoria;
     
     do{
        printf("inserisci la matricola");
        scanf("%s",&matricola_provvisoria);
        if(controllo_formattazione_matricola(&matricola_provvisoria)==0){
           printf("La matricola puo' contenere solo numeri");
           }
        if(controllo_matricola(&matricola_provvisoria)==variabile){
           if(variabile==0){
              printf("La matricola non è presente");
              }
           else{
              printf("La matricola e' presente");
              }
        }
        
        }while(controllo_matricola(&matricola_provvisoria) == 1 || controllo_formattazione_matricola(&matricola_provvisoria)==0);
        
        return &matricola_provvisoria;
     
     }

int controllo_matricola(char matricola_cercata[6]){
    
    int risultato=0;
    int i =0;
 
    while(i<studenti_presenti){
          if(strcmp(matricola_cercata , lista_studenti[i].matricola)){
             risultato=1;
             i=studenti_presenti;
             }
          else{
               i++;
               }
    }
    return risultato;
   
}

int controllo_formattazione_matricola (char *stringa_numerica){
    int risultato;
    int i;
    
    risultato=1;
    i=0;
    
    while (*stringa_numerica+i != '\0' && risultato==1) {
          if (*stringa_numerica+i < '0' || *stringa_numerica+i > '9'){
                                  risultato=0;
                                  }
          i=i+1;
          }
          
    return risultato;
}
Questi sono i prototipi delle funzioni
Codice:
void inserire_matricola(int posizione_corrente);
char* acquisire_matricola(int variabile);
int controllo_matricola(char *matricola_cercata);
int controllo_formattazione_matricola(char *stringa_numerica);

Questo è il log
Codice:
Compilatore: TDM-GCC 4.7.1 64-bit Release
Building Makefile "G:\4_codice_libreria_studenti\Makefile.win"
Esecuzione di  make...
mingw32-make.exe -f "G:\4_codice_libreria_studenti\Makefile.win" all
gcc.exe -c funzioni.c -o funzioni.o -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" 

funzioni.c: In function 'acquisire_matricola':

funzioni.c:32:9: warning: passing argument 1 of 'controllo_formattazione_matricola' from incompatible pointer type [enabled by default]
In file included from funzioni.c:1:0:
variabili_globali.h:33:5: note: expected 'char *' but argument is of type 'char **'
funzioni.c:35:9: warning: passing argument 1 of 'controllo_matricola' from incompatible pointer type [enabled by default]
In file included from funzioni.c:1:0:
variabili_globali.h:32:5: note: expected 'char *' but argument is of type 'char **'
funzioni.c:44:9: warning: passing argument 1 of 'controllo_matricola' from incompatible pointer type [enabled by default]
In file included from funzioni.c:1:0:
variabili_globali.h:32:5: note: expected 'char *' but argument is of type 'char **'
funzioni.c:44:9: warning: passing argument 1 of 'controllo_formattazione_matricola' from incompatible pointer type [enabled by default]
In file included from funzioni.c:1:0:
variabili_globali.h:33:5: note: expected 'char *' but argument is of type 'char **'
Oltre ad errori di tipo loop o qualcosa scritta in maniera non convenzionale, dove cavolo stanno questi errori o possibili errori nascosti?? non riesco a capire
Se avete bisogno di qualche commento sul codice chiedete pure
__________________
NOSTRAVIS PRO CLASSEM - GrupAer -
mirkus90 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2013, 22:22   #2
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
una funzione non può restituire l'indirizzo o il valore di una stringa (char *) se questa viene allocata staticamente all'interno di suddetta funzione.
le soluzioni sono 2:

1) nel chiamante crei un array di char abbastanza grande da contenere la matricola e lo passi come parametro alla funzione che lo riempirà.

2) usi l'allocazione dinamica della memoria (malloc)
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2013, 13:22   #3
bancodeipugni
Senior Member
 
L'Avatar di bancodeipugni
 
Iscritto dal: Nov 2013
Città: Nel cuore dell'8 Mile di Detroit
Messaggi: 3984
per guardare la compilazione mancano dei pezzi , il .h delle globali si puo' solo intuire

cmq non puoi fare:

Codice:
return &matricola_provvisoria;
devi ritornare appunto un puntatore alla stringa come previsto dal prototipo
Codice:
return matricola_provvisoria
bancodeipugni è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
SpaceX mostra nuove immagini del lancio ...
Cina: CAS Space e Guangzhou Laboratory e...
Nikon Comedy Wildlife Awards 2026: le fo...
Samsung Galaxy A57 e A37 costano di più ...
Windows 11 26H2 taglia il consumo di RAM...
KINGPIN è tornato! Il re dell'ove...
CPU usata, ban ereditato: il caso del Ry...
Spunta un engineering sample di Ryzen 9 ...
iPhone 18 Pro, alcuni utenti segnalano s...
Android Auto: Gemini ascolta la domanda ...
OpenAI avvisa oltre 100 organizzazioni p...
Dall'AI alla SI: il rebranding di Trump ...
0patch offrirà supporto esteso pe...
Sudo sembra un iPod, ma nasconde una car...
Meta, OpenAI e Google rifanno OpenClaw: ...
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: 21:14.


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