/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
Bech_bb 500
kyllekylle 500
jdjespers.. 500
gibson 300
scootergr.. 300
molokyle 287
10  strarup 270
Lidt hurtig hjælp med brug af int i en st~
Fra : Jesper Staun Hansen


Dato : 07-05-07 08:39

hello

Jeg har følgende i en header fil:
struct {
   int id;
   char firstName[160];
   char lastName[160];
   char sex;
   int age;
   int department;
   int surveyAnswers;
} data;



Og så har jeg følgende stump kode i min main:
   printf("\nFill in your age: ");
   scanf("%i", data.age);

Resultatet er en segmentation fault.
Hvis jeg dog sætter:
   int age[1]
så kører den fint.
Dog senere i koden:

   while(data.department < 1 || data.department > 21) {
      printf("\nFill in your institute number. Type L to list institutes: ");
      scanf("%i", data.department);
      sleep((int) 3);
      printf("\nXXX %c XXX %i XXX", data.department, data.department[0]);
      if(data.department == 76) {
         printf("\n\nInstitut for Sociologi, Socialt Arbejde og Organisation
(1)");
         printf("\n.......");
      }
   }

Første gang jeg trykker L så sker følgende:
Fill in your institute number. Type L to list institutes: L

XXX � XXX 0 XXX
Fill in your institute number. Type L to list institutes:
XXX � XXX 0 XXX

Fill in your institute number. Type L to list institutes:
XXX � XXX 0 XXX

Fill in your institute number. Type L to list institutes:
XXX � XXX 0 XXX

Fill in your institute number. Type L to list institutes:
XXX � XXX 0 XXX

Altså, en uendelig while loop hvor den springer scanf over. Hvorfor får
den lige lyst til det?
Hvis jeg derimod bare skriver et tal ind, så giver den det rigtige
resultatet ud, men ikke for det L.

Hvorfor sker dette?

 
 
Leo Havmøller (07-05-2007)
Kommentar
Fra : Leo Havmøller


Dato : 07-05-07 11:53

> scanf("%i", data.age);

scanf("%i", &data.age).

Leo Havmøller.


Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407858
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste