Στην άσκηση τώρα: Έμενα το sizeof(int*) είναι 4 οπότε αυτό που προκαλεί το πρόβλημα είναι το
Spoiler: show
roman έγραψε:Πολύ ενδιαφέρον και ας κάνω μια παρατήρηση για το thread. Άμα κάποιος δεν καταλαβαίνει τι γίνεται το καλύτερο που μπορεί να κάνει είναι να παρακολουθεί το θέμα σιωπηλά, να μην πρήζει και τα υπόλοιπα μέλη με την ξεροκεφαλιά του.
Στην άσκηση τώρα: Έμενα το sizeof(int*) είναι 4 οπότε αυτό που προκαλεί το πρόβλημα είναι τοΗ απάντηση είναι κάτι που προ-ειπώθηκε. Το θέμα είναι ότι αλλάζοντας την τιμή που εισάγεται, το πρόγραμμα ανταποκρίνεται διαφορετικά. Πιστεύω πως για να δώσει κάποιος συγκεκριμένη και ακριβής απάντηση χρειάζεται αρκετά πολύ εμβάθυνση στο θέμα. Και σαφώς θα είναι σε θέση να απαντήσει και το γιατί άμα αλλάξω σε +=1 θα πάρω Segmentation fault.Spoiler: show
roman έγραψε:Άμα κάποιος δεν καταλαβαίνει τι γίνεται το καλύτερο που μπορεί να κάνει είναι να παρακολουθεί το θέμα σιωπηλά, να μην πρήζει και τα υπόλοιπα μέλη με την ξεροκεφαλιά του.
$ gcc -o test test.c
$ ./test
$ echo $?
20
έγραψε:$ gcc -Wall -o test test.c
test.c: In function ‘calculate’:
test.c:13: warning: control reaches end of non-void function
[...]
p[i*3 + 2] += 16;
}
medigeek έγραψε:Off topic:roman έγραψε:Άμα κάποιος δεν καταλαβαίνει τι γίνεται το καλύτερο που μπορεί να κάνει είναι να παρακολουθεί το θέμα σιωπηλά, να μην πρήζει και τα υπόλοιπα μέλη με την ξεροκεφαλιά του.
Η παρακολούθηση ενός θέματος σιωπηλά δεν επιφέρει θετικά αποτέλεσματα. Ο linuxs απ'ό,τι κατάλαβα είχε κατανοήσει λάθος την ερώτηση της άσκησης (ή του φάνηκε παράξενη). Δεν ήταν ξεροκέφαλος, ήταν άτομο με απορία. Δεν έπρηζε, ρωτούσε για να καταλάβει. Πώς περιμένεις να παρακολουθήσει κάτι που δεν κατάλαβε;
Στο θέμα μας... πρόσεξα ότι το πρόγραμμα δεν τελειώνει με exit code 0 ("return 0;").
- Κώδικας: Επιλογή όλων
$ gcc -o test test.c
$ ./test
$ echo $?
20
Σημείωση: Το exit code το είδα στο geany με το execute, μην νομίσετε πως ελέγχω το exit code με "echo $?" κάθε φορά.
simosx έγραψε:Θα ήθελα να ξεκινήσουμε ξανά αυτό το νήμα.
Η αρχική δημοσίευση περιγράφει μια άσκηση/γρίφο για τη γλώσσα C, viewtopic.php?f=61&t=17612
Ο στόχος της άσκησης είναι να διαπιστωθεί η πηγή του προβλήματος.
Αν καταφέρουμε να καταλάβουμε την πηγή του προβλήματος, μαθαίνουμε πολλά για C.
linuxs έγραψε:Δεκτό απο εμένα! Μπορώ να πω για άλλη μια φορά αυτό που πιστεύω η θα πάρω "αρνητικές απαντήσεις";;;