Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Ερωτηση...

Ειχα γραψει καποιες συναρτησεις οι οποιες επερναν ορισματα για structures καποιου συγκεκριμενου τυπου...

Τωρα θελω να ξανα χρησιμοιποιησω τις ιδιες συναρτησεις για αλλους τυπους δομων...Τα αλλάζω ολα οσα χρειαζονται και ο minGW μου πεταει μερικα warnings και αυτο

assignment from incompatible pointer type [enabled by default] σε σημειο που κανω list = list->next; σε συναρτηση εισαγωγης κομβου πχ

Kαμια ιδεα για τι τι μπορει να φταιει;

Ευχαριστω

 

Έχεις δηλώσει νέα πρότυπα για τις αλλαγμένες σου συναρτήσεις ή κατά λάθος χρησιμοποιείς τις δηλώσεις των παλιών τους υλοποιήσεων;

 

Το warning που παίρνεις σημαίνει πως ο δηλωμένος τύπος του δείκτη list διαφέρει από τον δηλωμένο τύπο του δείκτη list->next.

 

  • Απαντ. 1,6k
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Ολα οκ, το βρηκα...Ηταν τυπογραφικο λαθος...Αλλα που να το δω μεσα σε 100 γραμμες δηλωσεων δομων...

Σκετη απογοητευση παντως...Μιαμιση ωρα τωρα το ψαχνω....Αν ειναι δυνατον..

 

Ολα οκ, το βρηκα...Ηταν τυπογραφικο λαθος...Αλλα που να το δω μεσα σε 100 γραμμες δηλωσεων δομων...

Σκετη απογοητευση παντως...Μιαμιση ωρα τωρα το ψαχνω....Αν ειναι δυνατον..

Δημοσ.

Γιατί απογοήτευση; Πιθανότατα το έχεις κάνει πλέον κτήμα σου το συγκεκριμένο πρόβλημα, οπότε την επόμενη φορά θα το βρεις πολύ γρήγορα.

 

ΥΓ. Πρόσφατα σπατάλησα περίπου 4 ώρες επειδή δεν θυμόμουν πως η fgets() επιστρέφει NULL στην τελευταία γραμμή του αρχείου που διαβάζει όταν είναι κενή (π.χ. ένα σκέτο '\n').

Δημοσ.

 

ΥΓ. Πρόσφατα σπατάλησα περίπου 4 ώρες.....

 

Για αυτο ο προγραμματισμος ειναι ωραιος...Αλλα καμια φορα λογικο ειναι να υπαρχει μια μικρη απογοητευση :P

Δημοσ.

>
typedef struct A{
int value1;
int value2;
}A;
typedef struct B{
struct B *next;
A *s;
}B;

A *ptr = calloc(1 , sizeof (A) );
B *new = calloc(1 , sizeof ( );

Πως θα περασω τιμες στα πεδια του Α;

Δημοσ.

>
prt->value1 = ...

 

 

Αλλά κάτι μου λέει πως δεν είναι αυτό το πρόβλημα που έχεις.

Aκριβως, εκτος και αν ειναι πολυ πιο απλο απο οτι αρχικα το φανταστικα

Aυτο που θελω βασικα ειναι καθως κανω προσπελαση στη λιστα (struct B ) να εχω προσβαση σε ενα stuct ( το Α στην συγκεκριμενη περιπτωση)

Δημοσ. (επεξεργασμένο)

Απλη ερωτηση...

Πως μπορω να εχω μια global τιμη στο προγραμμα μου και καθε που κανω εκχωριση της τιμης αυτης σε μια μεταβλητη να αυξανει κατα ενα;

Αν κανω define αυτο a=0;

και μεσα σε διαφορα σημεια εκχωρω το a+1, τοτε αυτη η τιμη που θα εκχωρηται θα ειναι παντα 1! Εγω θελω σε καθε εκχωρηση να αυξανει κατα ενα...

Επεξ/σία από nik324
Δημοσ.

Κάνε τη μεταβλητή static ώστε να μην φαίνεται απ' έξω και πάρε την τιμή της μόνο μέσω συνάρτησης.

 

static int value=0;

int GetValue(){ return value++;}

 

int c=Getvalue();

 

 

 

Μπορείς και μέσα σε συναρτηση:

 

int GetValue()

{

static int value=0;

return value++;

}

Δημοσ.

Εγώ δεν έχω καταλάβει την αρχική ερώτηση.

Π.χ. τι πρόβλημα υπάρχει σε κάτι σαν το παρακάτω...

 

>
int g_int;    // global var, initialized to 0
...
int test( int *n )
{
   *n = (g_int++) + 10;
}

 

Κι αν θες, αντί για συνάρτηση μπορείς να κάνεις macro (που είναι κι άχρηστο βασικά)...

 

>
#define INT_PLUS_PLUS( g )   ((g)++)
...
int g_int;    // global var, initialized to 0
...

int test( int *n )
{
   *n = INT_PLUS_PLUS(g_int) + 10;
}

Επισκέπτης
Αυτό το θέμα είναι πλέον κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...