• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 17, 2025, 17:24:43 pm

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 17, 2025, 17:24:43 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Πρακτική Άσκηση ΤΗΜΜΥ 201...
by asemas
[Today at 16:20:27]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 14:25:00]

Αντικατάστασης πυκνωτή σε...
by george14
[Today at 13:58:20]

Πότε θα βγει το μάθημα; -...
by tzortzis
[Today at 13:19:53]

Αποτελέσματα Εξεταστικής ...
by george14
[Today at 12:08:25]

[ΨEE] Γενικές απορίες και...
by Juror8
[Today at 12:06:57]

Ισραήλ - Ιράν: Πόλεμος στ...
by okan
[Today at 02:33:21]

[Οργάνωση Υπολογιστών] Γε...
by RAFI
[June 16, 2025, 22:46:54 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 16, 2025, 19:49:00 pm]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[June 16, 2025, 16:56:56 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by Λαμπτήρας
[June 16, 2025, 15:55:08 pm]

[Αρχές Οικονομίας] Να επι...
by _Trob
[June 16, 2025, 13:28:21 pm]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[June 16, 2025, 12:13:45 pm]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 16, 2025, 01:56:37 am]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426690
Total Topics: 31710
Online Today: 218
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 86
Guests: 130
Total: 216
vasilis saitis
Belafonte
Captain
mmikelo
Vaantoniadis
Konstantinoy
examino
sterlouk
Annapar
vaiatyr
G.V.
dkoukn
fungi
Ioannakoliou
iJasonOP
vasillikiiiiii
Gianbou
thaliatsk
kostas1507
ioathemar
ANDVRONTZOS
Pcsc
jimalexoud
geftihiakos
maestros
mkakale
karadimitras
lemonjuicy
Gray139
mgrivab
george14
gp6
noimaginationforthis
mpournaz
rafa98p
jojos
kostaspap
Yamal
Zoifouka
Thalasotsanta
Nekt
dimitrisadamou
anon
Vangelan
apob
MomostheGreen
stnanou
aachmet
hacky
Saint_GR
Roidos
anastas1a
asemas
angelos
savvastzan
giorgosss03
Evripidis
evangeliaap
Η ΤΡΑΠΟΥΛΑ ΤΟΥ ΠΑΠΠΟΥ ΜΟΥ
tmpadasn
myrto
gsifnio
victoria
athenamits
Τρου Ντετεκτιβ
chaniotism
EvP
Toaoutplasedakitoubiseswa
gpapailio
Bill g
thathas12
Giannis Masterio
lefterish
kchatziae
georkala
nikolith
kakousios
akyros51h
nataliakara
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
  Όταν ανεβάζουμε φωτογραφίες στις Ανακοινώσεις και Έκτακτα νέα, βάζουμε τη μεγαλύτερη πλευρά 400 (width=400 ή height=400 ). π.χ. [img height=400 (κλείνει η αγκύλη) 
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 1ο Εξάμηνο > Δομημένος Προγραμματισμός (Moderators: Tasos Bot, tzortzis, Nekt) > Περίεργο ERROR στη C...
0 Members and 1 Guest are viewing this topic.
Pages: [1] 2 Go Down Print
Author Topic: Περίεργο ERROR στη C...  (Read 4555 times)
Faidon
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 540



View Profile WWW
Περίεργο ERROR στη C...
« on: May 24, 2006, 18:03:25 pm »

Τρέχω τον παρακάτω κώδικα και μου πετάει το κλασικό παράθυρο των Windows (Η εφαρμογή αντιμετώπισε πρόβλημα και πρέπει να τερματιστεί... κτλ):


main(){
  int a,b,c,*p1,*p2;
  *p2=0;
  scanf("%i",&a);
}


Αντίθετα οι παρακάτω λειτουργούν κανονικά (σΣημειώνω με bold τις αλλαγές):


main(){
  int a,b,c,*p1,*p2;
  *p1=0;
  scanf("%i",&a);
}


main(){
  int a,b,*p1,*p2;
  *p2=0;
  scanf("%i",&a);
}


Το πρόβλημα το αντιμετώπισα καθώς προσπαθούσα να κάνω την εργασία F του Δομημένου στον Dev-C++ 4.01.
Γνωρίζει κανείς σε τι οφείλεται;
« Last Edit: May 24, 2006, 18:27:59 pm by Faidon » Logged
Verminoz
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 8236


I smoke my friends down to the filter


View Profile WWW
Re: Περίεργο ERROR στη C...
« Reply #1 on: May 24, 2006, 18:11:59 pm »

Ένα σφάλμα που βλέπω εγώ είναι ότι δεν έχεις βάλει reference στο a στην scanf...δηλαδή κανοξικά πρέπει να είναι:

scanf("%i",&a);

Αλήθεια ο τύπος "%i" τι είναι??? Συνήθως όταν θέλουμε ακέραιο βάζουμε "%d"...
Logged



Englab - Open source scientific/engineering platform
Rebetologion - Contemporary/Experimental


Κακούργα ύπαρξις!
Faidon
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 540



View Profile WWW
Re: Περίεργο ERROR στη C...
« Reply #2 on: May 24, 2006, 18:37:19 pm »

Ναι το ξέχασα. Δεν είναι εκεί όμως το πρόβλημα. Η scanf() δεν τρέχει γιατί το πρόβλημα εμφανίζεται στην προηγούμενη εντολή.

Το %i=%d, και τα δύο δηλώνουν ακέραιο.

Πρόβλημα βγάζουν και οι παρακάτω κώδικες:


main(){
  int a,b,c,d,*e;
  *e=0;
  scanf("%i",&a);
}

main(){
  int a,b,c,d;
  int *e;
  *e=0;
  scanf("%i",&a);
}

main(){
  int a,b,c,d;
  float *e;
  *e=0;
  scanf("%i",&a);
}


Τουλάχιστον όπως εγώ το βλέπω, όταν δηλώνω 4 ακεραίους και μετά μία μεταβλητή τύπου pointer. Όταν πάω να χρησιμοποιήσω την μεταβλητή αυτή (τύπου pointer) μου βγάζει σφάλμα...
Τελείως περίεργο...
Logged
meltemi
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 2491



View Profile WWW
Απ: Περίεργο ERROR στη C...
« Reply #3 on: May 24, 2006, 18:46:35 pm »

Δε μου έρχεται κάτι.
Πάντως να ξέρεις πως με borland τρέχει κανονικά.
Με dev αντιμετωπίζω το ίδιο πρόβλημα με εσένα.  Wink
Αν κάποιος γνωρίζει ας πει παρακαλώ..  Tongue
Logged
lambros
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 170


Mike Oldfield - Ommadawn :)


View Profile
Re: Περίεργο ERROR στη C...
« Reply #4 on: May 24, 2006, 18:51:19 pm »

Το πρόβλημα που εντοπίζω εγώ είναι ότι δεν έχεις αρχικοποιήσει τον δείκτη.Δηλαδή ορίζεις σαν δεικτή τον e ,που σημαίνει ότι αυτός περιέχει μια διεύθυνση μνήμης απροσδιόριστη όμως,δηλ δεν ξέρεις που στο διάγαλο δείχνει  Shocked.Γι' αυτό το πρώτο πράγμα που κάνεις αφού ορίσεις ένα δείκτη είναι να του δώσεις τη διεύθυνση μιας άλλης μεταβλητής,πχ e=&d όποτε ο  e δείχνει στην d και το *e=0 λειτουργεί.

EDIT:Επίσης με την malloc μπορεί να γίνει αρχικοποίηση δείκτη ,αν δεν κάνω λάθος.
πχ e=(int *)malloc(sizeof(int))
« Last Edit: May 24, 2006, 18:54:49 pm by lambros » Logged

Έλευθερος είναι ο άνθρωπος που ζει μέσα στο Αιώνιο , γιατί αυτό είναι Ζωή.

Κ.
Faidon
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 540



View Profile WWW
Re: Περίεργο ERROR στη C...
« Reply #5 on: May 24, 2006, 19:40:22 pm »

Αυτό που λες lambros από όσο καταλαβαίνω και ξέρω δεν ισχύει.

Όταν δηλώνεις μία μεταβλητη η C δεσμεύει χώρο για τη μεταβλητή αυτή.
Τη μεταβλητή τη δηλώνεις όπως σε βολέυει. Ανάλογα με το αν θες να αναφέρεσαι σε αυτή άμμεσα η στον pointer της.
Όταν δηλώνεις int *e. Δηλώνεις το περιεχόμενο του (pointer) e. Δηλαδή, δεσμέυεται ο χώρος για έναν ακέραιο και αντί να σου δώσει ένα συμβολικό όνομα του χώρου, η C σου επιστρέφει την τιμή του pointer που δείχνει στο χώρο.

Προφανώς αυτό που γράφεις θα λειτουργήσει. Αλλά έτσι διαγράφεις τη μεταβλητή *e που εγώ θέλω να χρησιμοποιήσω. Στην ουσία έχεις 4 ακέραιες μεταβλητές και έναν pointer που δείχνει στη τελευταία. Αυτό είναι άχρηστο. Ούτως ή άλλως ο pointer που δείχνει στην τελευταία είναι δηλωμένος και γνωστός (&d).

Εξάλλου ο παρακάτω κώδικα λειτουργεί κανονικά χωρίς να δώσω στον pointer τη διέυθυνση άλλης μεταβλητής όπως προτείνεις:

main(){
  int a,*b;
  *b=0;
  printf("%i",*b);
  scanf("%i",&a);
}

Το περιεχόμενο του pointer b (*b) παίρνει την τιμή 0 και την εκτυπώνει κανονικά.

Το πρόβλημα θα είναι μάλλον στο λογισμικό του Dev-C++ 4.01.
Ας το δοκιμάσει και όποιος έχει νεότερη version του Dev-C++
Logged
meltemi
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 2491



View Profile WWW
Απ: Περίεργο ERROR στη C...
« Reply #6 on: May 24, 2006, 20:02:04 pm »

Χρησιμοποιώ την 4.9.9.2 και βγάζει το ίδιο...

Να σε πω, αντί για *b=0 δε δοκιμάζεις μια απλή εκχώρηση b=0;
Τον δηλώνεις ως pointer ok αλλά έχω την εντύπωση οτι η εκχώρηση αυτή προκαλλεί το πρόβλημα.

Νο problem using Borland of course...
Logged
michaelidesc
Guest
Re: Περίεργο ERROR στη C...
« Reply #7 on: May 24, 2006, 20:06:21 pm »

main(){
  int a,b,c,*p1,*p2;
  p2=0;
  scanf("%i",&a);
}
Logged
meltemi
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 2491



View Profile WWW
Απ: Περίεργο ERROR στη C...
« Reply #8 on: May 24, 2006, 20:07:05 pm »

Quote from: michaelidesc on May 24, 2006, 20:06:21 pm
main(){
  int a,b,c,*p1,*p2;
  p2=0;
  scanf("%i",&a);
}


 Wink Wink
Logged
4Dcube
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 9068


just.do.it.cut.carrots.


View Profile
Re: Περίεργο ERROR στη C...
« Reply #9 on: May 24, 2006, 20:08:58 pm »

Μήπως παίζει τίποτε με δεσμευμένες λέξεις;
Θυμάμαι σε κάποιον κομπάιλερ δεν πιανόταν το Ν.
Logged

https://www.youtube.com/watch?v=6CAzdawCzhg
meltemi
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 2491



View Profile WWW
Απ: Περίεργο ERROR στη C...
« Reply #10 on: May 24, 2006, 20:10:17 pm »

Quote from: 4Dcube on May 24, 2006, 20:08:58 pm
Μήπως παίζει τίποτε με δεσμευμένες λέξεις;
Θυμάμαι σε κάποιον κομπάιλερ δεν πιανόταν το Ν.

 Undecided
Don't think so dear cube.  kissy
Logged
michaelidesc
Guest
Re: Περίεργο ERROR στη C...
« Reply #11 on: May 24, 2006, 22:13:45 pm »

Συγχωρήστε με που ήμουν εκτός, βιάστηκα να απαντήσω και είπα βλακεία, δεν είχα αντιληφθεί ποιο ήταν το πρόβλημα. Ο lambros έχει δίκιο. Το *p2=0; δεν έχει νόημα εφόσον δεν δείχνει πουθενά. Αντιστοίχησέ το πρώτα σε μια διεύθυνση μεταβλητής π.χ. p2=&a και θα τρέξει μια χαρά. Ψάξε το στην "Αλεξάνδρεια" (Α/Α 245).
Logged
meltemi
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 2491



View Profile WWW
Απ: Περίεργο ERROR στη C...
« Reply #12 on: May 24, 2006, 22:24:17 pm »

Quote from: michaelidesc on May 24, 2006, 22:13:45 pm
Συγχωρήστε με που ήμουν εκτός, βιάστηκα να απαντήσω και είπα βλακεία, δεν είχα αντιληφθεί ποιο ήταν το πρόβλημα. Ο lambros έχει δίκιο. Το *p2=0; δεν έχει νόημα εφόσον δεν δείχνει πουθενά. Αντιστοίχησέ το πρώτα σε μια διεύθυνση μεταβλητής π.χ. p2=&a και θα τρέξει μια χαρά. Ψάξε το στην "Αλεξάνδρεια" (Α/Α 245).

Τhanks pal Wink
Logged
Faidon
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 540



View Profile WWW
Re: Περίεργο ERROR στη C...
« Reply #13 on: May 25, 2006, 00:50:07 am »

Ναι ρε, michaelidesc, αλλά όπως λέω πιο πάνω:

Quote from: Faidon on May 24, 2006, 19:40:22 pm
O παρακάτω κώδικα λειτουργεί κανονικά χωρίς να δώσω στον pointer τη διέυθυνση άλλης μεταβλητής όπως προτείνεις:

main(){
  int a,*b;
  *b=0;
  printf("%i",*b);
  scanf("%i",&a);
}

Το περιεχόμενο του pointer b (*b) παίρνει την τιμή 0 και την εκτυπώνει κανονικά.

Δηλαδή, δεν απαιτείται αρχικοποίηση όπως λέει ο lambros...
Logged
BOBoMASTORAS
Veteran
Καταστραμμένος
******
Posts: 6082


It just doesn't get any easier! It gets worse...


View Profile
Απ: Περίεργο ERROR στη C...
« Reply #14 on: May 25, 2006, 01:00:28 am »

Ναι ρε συ. Το θέμα είναι ότι δεν έχεις δεσμέυσει μνήμη στη θέση για να αποθηκευτεί η τιμή μηδέν. Ο pointer b είναι μία μεταβλητή η οποία δε δείχνει "πουθενά" (βασικά δείχνει κάπου αλλά ούτε ξέρουμε που ούτε η μνήμη σε αυτό το σημείο είναι δεσμευμένη για χρήση από το πρόγραμμα μας)
Logged

Της γενιάς μου βασιλιά,
μην κατέβεις τα σκαλιά.
Πιες αθάνατο νερό
να νικήσεις τον καιρό.

http://tools.ietf.org/html/rfc1149
The only reason we invent robots
Pages: [1] 2 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...