Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - domanda su scanf()
Forum - C/C++ - domanda su scanf()

Avatar
Bonny (Member)
Expert


Messaggi: 435
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 15:38
Martedì, 07/06/2011
salve a tutti voi, ieri per caso smanettando ho "scoperto" che se in un prog scritto in C
esempio:
Codice sorgente - presumibilmente C/C++

  1. #include <stdio.h>
  2. main(){
  3.   char x[10];
  4.   printf(inserire la parola: );
  5.   //con scanf() leggo in input la parola su x
  6. system("PAUSE");}



ecco nella scanf() se scrivo

Codice sorgente - presumibilmente C/C++

  1. scanf("%s", x);
  2. // or
  3. scanf("%s", &x);//nota &


se compilo il sorgente in DevC++ lo compila e funziona in entrambi i modi
invece su linux, gcc mi da errore giustamente se scrivo scanf("%s", &x);

Forse ho avuto un allucinazione non prendetemi in giro ma non capisco
Mi potreste spiegare perche succede questo.. grazie:)
A quanto pare è solo un problema di parsing del compilatore


Bonny
PM
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Up
2
Down
V
Segnala al moderatore
Postato alle 17:18
Martedì, 07/06/2011
con il compilatore GCC, se hai un array come nel tuo caso, le seguenti espressioni sono equivalenti

x
&x
&x[0]

di conseguenza dovrebbero compilare tutte (in base ai flag di compatibilità impostati sul compilatore), e inoltre le tre espressioni dovrebbero avere esattamente lo stesso valore (cioè l'indirizzo del primo elemento dell'array).


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM
Avatar
ManfroC (Ex-Member)
Rookie


Messaggi: 26
Iscritto: 15/05/2011

Up
1
Down
V
Segnala al moderatore
Postato alle 15:50
Martedì, 07/06/2011
Anche a me era capitato...comunque dev te lo coompila però se metti la & al momento che devi fare quello scanf si pianta...

Ultima modifica effettuata da ManfroC il 07/06/2011 alle 15:53
ho provato e non si pianta cmq boh:) - Bonny - 07/06/11 15:57
se non si pianta è per PURA FORTUNA :) - HeDo - 07/06/11 15:58
Quindi è solo un problema del compilatore su Dev? - Bonny - 07/06/11 16:53


Ciao a tutti!!!
PM
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Up
0
Down
V
Segnala al moderatore
Postato alle 17:55
Martedì, 07/06/2011
ma devCpp non usa mingw come compilatore?


Alex=)
PM
Avatar
ManfroC (Ex-Member)
Rookie


Messaggi: 26
Iscritto: 15/05/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 18:06
Martedì, 07/06/2011
Se ha la versione 4 usa mingw e cynwin che sono tutti e 2 derivati di gcc mentre se hai la 5.0 c'è su gcc

sono restato un pò indietro! è uscita la 5 di devcpp? quando? non erano fermi alla 4? - Alex - 07/06/11 18:43


Ciao a tutti!!!
PM