Συντονιστής: konnn


migf1 έγραψε:Λοιπόν, ο i (που καλύτερα να τον μετονομάσεις σε p) είναι δηλωμένος σαν απλός δείκτης τον οποίον τον βάζεις να δείχνει στον πίνακά σου. Με το που κάνεις αυτή την ανάθεση ο i δείχνει σε έγκυρα περιεχόμενα μνήμης (δηλωμένα μέσω του x, που καλύτερα να το μετονομάσεις σε table).
Δες και τι εννοώ όταν μιλάω για λιτό, αραιωμένο κι ευανάγνωστο κώδικα...
- Κώδικας: Επιλογή όλων
#include <stdio.h>
#define EMPTY_ELEMENT -1
#define MAX_ELEMENTS 10
// ----------------------------------------------
int main( void )
{
int table[ MAX_ELEMENTS ] = {1,2,3,4,5,6,7,8,9, EMPTY_ELEMENT};
int *p = table;
if ( !p ) {
puts("*** nothing to do, p is NULL");
return 0;
}
while ( *p != EMPTY_ELEMENT )
{
if ( *p % 2 == 0 ) // εξήγησε γιατί εξετάζεις για υπόλοιπο ίσο με 0 εδώ
printf("\n ...\n %d", *p);
else if ( *p % 2 == 1 ) // εξήγησε γιατί εξετάζεις για υπόλοιπο ίσο με 1 εδώ
printf("\n ...\n %d", *p);
p++;
}
return 0;
}
Είναι ακριβώς ο ίδιος κώδικας με αυτόν που έχεις γράψει στο spoiler του προηγούμενου post... με διορθωμένο τον έλεγχο για NULL. Πιστεύω η διαφορά σε readability είναι πολύ μεγάλη.

test.c:6:4: warning: assignment makes integer from pointer without a cast
migf1 έγραψε:
Γιατί είναι λάθοςΝα φανταστείς η Pelles-C στα Windows δεν το κάνει καν compile. Ο mingw32 το κάνει, αλλά με το εξής warning:
- Κώδικας: Επιλογή όλων
test.c:6:4: warning: assignment makes integer from pointer without a cast
Μπορείς να καταλάβεις τι εννοεί;

migf1 έγραψε:
Γιατί είναι λάθοςΝα φανταστείς η Pelles-C στα Windows δεν το κάνει καν compile. Ο mingw32 το κάνει, αλλά με το εξής warning:
- Κώδικας: Επιλογή όλων
test.c:6:4: warning: assignment makes integer from pointer without a cast
Μπορείς να καταλάβεις τι εννοεί;


Star_Light έγραψε:σταματιου αν επιτρεπεται τι προσπαθεις να κανεις?
Aν ειναι να δοκιμασω να σε κατευθυνω και εγω και αν υπαρχει προβλημα μας διορθωνει
με την μια και τους 2 ο migf1

stamatiou έγραψε:
Μια άσκηση του migf1, πρέπει να βάλουμε τη διεύθυνση του διευθυντή και μετά να το τυπώσουμε
