sarakinos Δημοσ. 19 Μαΐου 2009 Δημοσ. 19 Μαΐου 2009 Καλησπέρα παιδιά ... έχω κολήσει με αυτό το θέμα 3 ώρες τώρα και μπορώ να πώ ότι κουράστικα ... έχω έναν πίνακα δομών σε μια συνάρτηση,διαβάζω μέσα σ'αυτήν κάποια στοιχεία και τα εκχωρώ στον πίνακα αυτόν...μετά από αυτό θέλω να γυρίσω μέσω δείκτη τον πίνακα αυτόν στην main και έπειτα να τον πάρω σε μια 2η συνάρτηση για να κάνω μια αναζήτηση...πραγματικά έχω θολώσει ...plz help ---------- Το μήνυμα προστέθηκε στις 17:32 ---------- Παιδιά κανένας? ...
parsifal Δημοσ. 19 Μαΐου 2009 Δημοσ. 19 Μαΐου 2009 Έφτιαξα ένα πολύ απλοποιημένο παράδειγμα για να προσομοιώσω τα δεδομένα του προβλήματος που αναφέρεις. Δες λίγο τον κώδικα και συζητάμε περαιτέρω αν έχεις κάποια απορία: > #include <stdio.h> #include <stdlib.h> typedef struct { int element; } aStruct; aStruct *CreateTable(int*); /* Δημιουργεί δυναμικά έναν πίνακα από aStruct και επιστρέφει τη διεύθυνσή του στην καλούσα συνάρτηση */ void SearchTable(aStruct*, int, int); /* Αναζητά σε έναν πίνακα από aStruct τις θέσεις όπου υπάρχει μία δοθείσα τιμή */ int main(void) { aStruct *MyTable; int TableSize; /* Θα πάρει τιμή κατά τη δημιουργία του πίνακα */ const int SearchValue = 5; /* Τυχαία τιμή για την οποία θα ψάξει η συνάρτηση SearchTable */ MyTable = CreateTable(&TableSize); /* Δημιουργία του MyTable */ SearchTable(MyTable, TableSize, SearchValue); /* Αναζήτηση για την τιμή 5 */ return 0; } aStruct *CreateTable(int *aSize) { int i; aStruct *NewTable; printf("Enter table size: "); scanf("%d", aSize); NewTable = malloc(*aSize * sizeof(aStruct)); for(i = 0; i < *aSize; i++) { printf("Enter value #%d: ", i); scanf("%d", &(NewTable[i].element)); } return NewTable; } void SearchTable(aStruct *aTable, int aSize, int aValue) { int i; for(i = 0; i < aSize; i++) if(aTable[i].element == aValue) printf("Value %d was found in struct #%d\n", aValue, i); } Ίσως υπάρχουν σφάλματα, δεν έλεγξα τον κώδικα διεξοδικά...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.