Navigation

    • ΕΠΙΚΑΙΡΟΤΗΤΑ
    • ΑΓΩΝΕΣ
    • ΔΟΚΙΜΕΣ
    • CLASSIC
    • ΤΙΜΕΣ
    • VIDEO
    • 4ΤΡΟΧΟΙ
    • Register
    • Login
    • Search
    • Unread
    • Recent
    • Popular
    Περί Η/Υ (+ ηλεκτρ. gadgets και νέας τεχνολογίας) [#1]
    1. Home
    2. Αντίλογος
    3. Περί Η/Υ (+ ηλεκτρ. gadgets και νέας τεχνολογίας) [#1]
    • 1
    • 2
    • 52
    • 53
    • 54
    • 55
    • 56
    • 75
    • 76
    • 54 / 76
    Αντίλογος
    113
    1501
    1640
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      raikkonen last edited by

      Ο χρήστης migf1 έγραψε:

      Thanks φίλε Raikkonen. Γενικώς γνωρίζω (πτυχίο Boston University Computer Science, το 1992), αλλά είχα πάνω από 10 χρόνια να ξανασχοληθώ. Τελευταία (που ανακάλυψα την PellesC) ξεκίνησα να γράφω ένα παραθυρικό πρόγραμμα λιανικής πώλησης (ταμείο, αποθήκη, λογαριασμοί).

      Anyway, έχω πρόβλημα με τα παραπάνω free. Μου 'χτυπάει' σε άσχετα σημεία (μερικά τα κάνει ΟΚ και σε άλλα μου δίνει 'Access Violation' )

      ΥΓ. Παρεμπιπτόντως, υπάρχουν εργαλεία που παρακολουθούν πόσα malloc/calloc κάνεις και πόσα free, έτσι ώστε να αποφεύγεις τα memory leaks... απλά δεν τα χρησιμοποιώ ακόμα.

      Παρακαλώ!

      Μια ερώτηση, θα κάνεις παραθυρικό πρόγραμμα χρησιμοποιώντας C??? Καλύτερα να χρησιμοποιήσεις C++ ή Java ακόμα καλύτερα (εκτός και αν η ταχύτητα είναι σημαντικό προσόν). Υπάρχει ακόμα και η Delphi (την οποία όμως δε γνωρίζω) . Στη C θέλεις πολύ κώδικα για κάτι τέτοια. Πιο βολικά μία οντοκεντρική γλώσσα.

      Όσο αφορά τώρα τα προβλήματα που σου πετάει θα τα κοιτάξω αργότερα γιατί πρέπει να φύγω.

      Για τα εργαλεία που λες υποθέτω ότι εξαρτάται από το πρόγραμμα που χρησιμοποιείς.

      1 Reply Last reply Reply Quote 0
      • M
        migf1 last edited by

        Ο χρήστης Raikkonen έγραψε:

        Παρακαλώ!

        Μια ερώτηση, θα κάνεις παραθυρικό πρόγραμμα χρησιμοποιώντας C??? Καλύτερα να χρησιμοποιήσεις C++ ή Java ακόμα καλύτερα (εκτός και αν η ταχύτητα είναι σημαντικό προσόν). Υπάρχει ακόμα και η Delphi (την οποία όμως δε γνωρίζω) . Στη C θέλεις πολύ κώδικα για κάτι τέτοια. Πιο βολικά μία οντοκεντρική γλώσσα.

        C και ξερό ψωμί (Why we prefer C to C++)

        Δεν είναι τόσο τρομερό πάντως. Τρως λίγο πακέτο για να φτιάξεις γενικές συναρτήσεις που έχουν να κάνουν με το παραθυρικό περιβάλλον της εφαρμογής σου, αλλά από κει και πέρα τις χρησιμοποιείς συνέχεια. Φτιάχνεις και μια βιβλιοθήκη, και τις έχεις και για άλλα προγράμματα.

        Όσο αφορά τώρα τα προβλήματα που σου πετάει θα τα κοιτάξω αργότερα γιατί πρέπει να φύγω.

        Thanks... παράλληλα το ψάχνω κι εγώ.

        Για τα εργαλεία που λες υποθέτω ότι εξαρτάται από το πρόγραμμα που χρησιμοποιείς.

        Όχι, υπάρχουν generic προγράμματα που κάνουν αυτή τη δουλειά. Τα περισσότερα μάλιστα είναι free. Απλώς δεν θυμάμαι πως τα λένε

        Θα τα βρω όμως και θα επανέλθω.

        1 Reply Last reply Reply Quote 0
        • K
          kostakis last edited by

          ερώτησεις. 1) Τι ειναι η 'ψηφιακή υπογραφή χρήστη'. Αν κατάλαβα καλά έχει σχέση με την αγορά μέσω πιστωτικής.
          2)Υπάρχει τρόπος να καταλάβουμε , αν μπαίνοντας σε κάποιο site , αυτό μας αποσυνδέει απο τον τοπικό διακομιστή και μας συνδέει με κάποιον άλλο σε κάποια υπερπόντια χώρα?

          1 Reply Last reply Reply Quote 0
          • R
            raikkonen last edited by

            Ο χρήστης migf1 έγραψε:

            Παρακαλώ!

            Μια ερώτηση, θα κάνεις παραθυρικό πρόγραμμα χρησιμοποιώντας C??? Καλύτερα να χρησιμοποιήσεις C++ ή Java ακόμα καλύτερα (εκτός και αν η ταχύτητα είναι σημαντικό προσόν). Υπάρχει ακόμα και η Delphi (την οποία όμως δε γνωρίζω) . Στη C θέλεις πολύ κώδικα για κάτι τέτοια. Πιο βολικά μία οντοκεντρική γλώσσα.

            C και ξερό ψωμί (Why we prefer C to C++)

            Δεν είναι τόσο τρομερό πάντως. Τρως λίγο πακέτο για να φτιάξεις γενικές συναρτήσεις που έχουν να κάνουν με το παραθυρικό περιβάλλον της εφαρμογής σου, αλλά από κει και πέρα τις χρησιμοποιείς συνέχεια. Φτιάχνεις και μια βιβλιοθήκη, και τις έχεις και για άλλα προγράμματα.

            To ξέρω αυτό! Αλλά κάτι που θες 300 γραμμές κώδικα να το κάνεις σε C θες πολύ λιγότερες σε C++ και Java. Και εμένα μου αρέσε η C αλλά σε σχέση με αυτές θυμίζει ...assembly. Βέβαια αν έχει ένα παράξενο συντακτικο η C αυτό δε συκρίνεται με τίποτα με της C++ (που είναι ακόμα πιο παράξενο). Παρόλα αυτά η C++ είναι πανίσχυρη γλώσσα. Τώρα για συντακτικό καλύτερη είναι Java και πιο εύκολη στο προγραμματισμό (άσε που έχεις τα API της SUN και συνήθως χρησιμοποιείς έτοιμες συναρτήσεις).

            Τέλος πάντων. Απλά η C δεν είναι και η καλύτερη για αυτό που θες να φτιάξεις. Συνήθως χρησιμοποιείται για προγραμματισμό συστήματος.

            Όσο αφορά τώρα τα προβλήματα που σου πετάει θα τα κοιτάξω αργότερα γιατί πρέπει να φύγω.

            Thanks... παράλληλα το ψάχνω κι εγώ.

            Δες το επόμενο.

            Για τα εργαλεία που λες υποθέτω ότι εξαρτάται από το πρόγραμμα που χρησιμοποιείς.

            Όχι, υπάρχουν generic προγράμματα που κάνουν αυτή τη δουλειά. Τα περισσότερα μάλιστα είναι free. Απλώς δεν θυμάμαι πως τα λένε

            Θα τα βρω όμως και θα επανέλθω.

            Δεν το ήξερα (και ουτε καν μπορούσα να φανταστώ ότι θα μάθαινα κάτι τετοιο εδώ)!

            1 Reply Last reply Reply Quote 0
            • R
              raikkonen last edited by

              #include /* for calloc() /
              #include /
              for strncpy() */
              #include

              #define MAX_STRINGS 10
              #define SLEN 21

              char **StringsList;

              int main()
              {
              int i;

              if ( (StringsList = (char **)calloc( MAX_STRINGS, SLEN * sizeof(char))) == NULL)
              {
              	printf('Not enough memory to allocate\n');
              	exit(EXIT_FAILURE);
              }
              
              for ( i=0; i < MAX_STRINGS; i++ )
              {
              	if ( (StringsList[i] = (char *)calloc(SLEN, sizeof(char))) == NULL )
              	{
              		printf('Not enough memory to allocate\n');
              		exit(EXIT_FAILURE);
              	}
              }
              
              strncpy( StringsList[0], 'Hi there\0', SLEN-1);
              printf('%s\n', StringsList[0]);
              
              for (i=0; i
              1 Reply Last reply Reply Quote 0
              • R
                raikkonen last edited by

                Ο χρήστης kostakis έγραψε:
                ερώτησεις. 1) Τι ειναι η 'ψηφιακή υπογραφή χρήστη'. Αν κατάλαβα καλά έχει σχέση με την αγορά μέσω πιστωτικής.
                2)Υπάρχει τρόπος να καταλάβουμε , αν μπαίνοντας σε κάποιο site , αυτό μας αποσυνδέει απο τον τοπικό διακομιστή και μας συνδέει με κάποιον άλλο σε κάποια υπερπόντια χώρα?

                Για το 1ο ερώτημα σου δεν θυμάμαι να σου απαντήσω, αλλά για το 2ο υποθέτω πως θα σου ζητάει να συνδεθείς. Γενικά πάντως για να είσαι σίγουρος απεφευγε τις ύποπτες σελίδες.

                1 Reply Last reply Reply Quote 0
                • G
                  gvala last edited by

                  Ο χρήστης kostakis έγραψε:
                  ερώτησεις. 1) Τι ειναι η 'ψηφιακή υπογραφή χρήστη'. Αν κατάλαβα καλά έχει σχέση με την αγορά μέσω πιστωτικής.
                  2)Υπάρχει τρόπος να καταλάβουμε , αν μπαίνοντας σε κάποιο site , αυτό μας αποσυνδέει απο τον τοπικό διακομιστή και μας συνδέει με κάποιον άλλο σε κάποια υπερπόντια χώρα?

                  1. Ηλεκτρονικός τρόπος ταυτοποίησης προσώπου, κάτι σαν την αστυνομική ταυτότητα αλλά σε ηλεκτρονική μορφή. Συνήθως δεν απαιτείται για ηλεκτρονικό εμπόριο. Αντίθετα, κατά κόρον χρησιμοποείται η ψηφιακή υπογραφή του εξυπηρετητή, στον οποίο υποβάλεις τα στοιχεία της πιστωτικής.
                  2. Εννοείς να διακόψει την dial-up και να σε συνδέσει τηλεφωνικά με κάποιον άλλον dial-up server και να χρεωθείς επομένως ανάλογα; Γίνεται ... και για να το διαπιστώσεις πρέπει να δείς τα properties της ενεργής σύνδεσης. (Στα XP π.χ. ΘΕΣΕΙΣ ΔΙΚΤΥΟΥ->δεξι κλικ->Ιδιότητες και βλέπεις όλες τις δυνατές συνδέσεις και ποιές είναι ενεργές. Αν δεις κάποια άλλη από αυτή που έχεις για να συνδεεσαι με τον provider σου, τότε έχεις πρόβλημα!
                  1 Reply Last reply Reply Quote 0
                  • A
                    avel last edited by

                    Ο χρήστης migf1 έγραψε:

                    C και ξερό ψωμί (Why we prefer C to C++)

                    Δεν είναι τόσο τρομερό πάντως. Τρως λίγο πακέτο για να φτιάξεις γενικές συναρτήσεις που έχουν να κάνουν με το παραθυρικό περιβάλλον της εφαρμογής σου, αλλά από κει και πέρα τις χρησιμοποιείς συνέχεια. Φτιάχνεις και μια βιβλιοθήκη, και τις έχεις και για άλλα προγράμματα.

                    Θα συμφωνήσω με τον Raikkonen. Εσύ αναφέρθηκες για εφαρμογή σε παραθυρικό περιβάλλον.

                    Αυτό που θες για να είσαι καλλυμένος, είναι μία βιβλιοθήκη για GUI, που καλά θα έκανε να είναι και cross-platform.

                    Τα wxWindows για παράδειγμα είναι πολύ δημοφιλή σε αυτό. Επίσης αν θες να πας πιο πολύ 'bare-bones', η βιβλιοθήκη qt της trolltech, αν προτιμάς C++, ή το GTK+ Toolkit αν προτιμάς C - έχει βέβαια και bindings σε χίλες δυο άλλες γλώσσες. Για αυτά υπάρχουν και GUI εργαλεία, helpers που σε βοηθάνε πολύ στα διάφορα 'στανταρ' πράγματα (menu bars, toolbars) και πολύ documentation και παραδείγματα.

                    Και φυσικά υπάρχει η Java, με τα καλά και τα κακά της, και επιτέλους με ένα GUI toolkit που κάνει τεράστια διαφορά για τους χρήστες γιατί επιτέλους είναι πολύ πιο γρήγορο στα GUI-κά , το swt (αντίο Swing!), αυτό που χρησιμοποιείται στο Eclipse.

                    1 Reply Last reply Reply Quote 0
                    • R
                      raikkonen last edited by

                      Ο χρήστης avel έγραψε:

                      Και φυσικά υπάρχει η Java, με τα καλά και τα κακά της, και επιτέλους με ένα GUI toolkit που κάνει τεράστια διαφορά για τους χρήστες γιατί επιτέλους είναι πολύ πιο γρήγορο στα GUI-κά , το swt (αντίο Swing!), αυτό που χρησιμοποιείται στο Eclipse.

                      Ααχχχ το Eclipse τι προγραμματάρα!!! Το προηγούμενο εξάμηνο που έπαιρνα Java μας είπανε να αναπτύξουμε το project εκεί και τι δίκιο είχανε! Δεν έχω ξαναγράψει πιο γρήγορα κώδικα!

                      1 Reply Last reply Reply Quote 0
                      • M
                        migf1 last edited by

                        Ο χρήστης Raikkonen έγραψε:
                        To ξέρω αυτό! Αλλά κάτι που θες 300 γραμμές κώδικα να το κάνεις σε C θες πολύ λιγότερες σε C++ και Java. Και εμένα μου αρέσε η C αλλά σε σχέση με αυτές θυμίζει ...assembly. Βέβαια αν έχει ένα παράξενο συντακτικο η C αυτό δε συκρίνεται με τίποτα με της C++ (που είναι ακόμα πιο παράξενο). Παρόλα αυτά η C++ είναι πανίσχυρη γλώσσα. Τώρα για συντακτικό καλύτερη είναι Java και πιο εύκολη στο προγραμματισμό (άσε που έχεις τα API της SUN και συνήθως χρησιμοποιείς έτοιμες συναρτήσεις).

                        Τέλος πάντων. Απλά η C δεν είναι και η καλύτερη για αυτό που θες να φτιάξεις. Συνήθως χρησιμοποιείται για προγραμματισμό συστήματος.

                        Η Java έχει pointers? Θυμάμαι ότι δεν είχε όταν πρωτοβγήκε. H C για μένα (και πολλούς άλλους) είναι η απόλυτη και αξεπέραστη γλώσσα προγραμματισμού... συνδυάζει τα πάντα (αυτονομία, ταχύτητα, high & low level programming, code optimization και πολλά πολλά ακόμα)! Δεν είναι άλλωστε τυχαίο πως η 'Ιερά Βίβλος' για προγραμματισμό στα Windows, το 'Programming Windows' του S.Petzold έχει όλα τα παραδέιγματά του σε C.

                        Για τα εργαλεία που λες υποθέτω ότι εξαρτάται από το πρόγραμμα που χρησιμοποιείς.

                        Όχι, υπάρχουν generic προγράμματα που κάνουν αυτή τη δουλειά. Τα περισσότερα μάλιστα είναι free. Απλώς δεν θυμάμαι πως τα λένε

                        Θα τα βρω όμως και θα επανέλθω.

                        Δεν το ήξερα (και ουτε καν μπορούσα να φανταστώ ότι θα μάθαινα κάτι τετοιο εδώ)!

                        Βρήκα ένα, αλλά τυρέχει σε command-line Splint (παραλλαγή του Lint). Έχει βγάλει και η IBM ένα, αλλά δυστυχώς δεν το θυμάμαι.

                        1 Reply Last reply Reply Quote 0
                        • A
                          avel last edited by

                          (περί malloc εργαλείων)

                          Ο χρήστης migf1 έγραψε:
                          Έχει βγάλει και η IBM ένα, αλλά δυστυχώς δεν το θυμάμαι.

                          Purify. 🙂 Commercial, βέβαια.

                          Από open-source υπάρχει το electric fence.

                          1 Reply Last reply Reply Quote 0
                          • M
                            migf1 last edited by

                            Ο χρήστης avel έγραψε:

                            Θα συμφωνήσω με τον Raikkonen. Εσύ αναφέρθηκες για εφαρμογή σε παραθυρικό περιβάλλον.

                            Αυτό που θες για να είσαι καλλυμένος, είναι μία βιβλιοθήκη για GUI, που καλά θα έκανε να είναι και cross-platform.

                            Τα wxWindows για παράδειγμα είναι πολύ δημοφιλή σε αυτό. Επίσης αν θες να πας πιο πολύ 'bare-bones', η βιβλιοθήκη qt της trolltech, αν προτιμάς C++, ή το GTK+ Toolkit αν προτιμάς C - έχει βέβαια και bindings σε χίλες δυο άλλες γλώσσες. Για αυτά υπάρχουν και GUI εργαλεία, helpers που σε βοηθάνε πολύ στα διάφορα 'στανταρ' πράγματα (menu bars, toolbars) και πολύ documentation και παραδείγματα.

                            Και φυσικά υπάρχει η Java, με τα καλά και τα κακά της, και επιτέλους με ένα GUI toolkit που κάνει τεράστια διαφορά για τους χρήστες γιατί επιτέλους είναι πολύ πιο γρήγορο στα GUI-κά , το swt (αντίο Swing!), αυτό που χρησιμοποιείται στο Eclipse.

                            Παιδιά δεν μπορώ να είμαι απόλυτος, αφού δεν τα έχω δοκιμάσει όλα αυτά που αναφέρεις (thanks, btw).

                            Είμαι όμως της... παλιάς σχολής, όπου θέλω να έχω πλήρη έλεγχο στο τι κάνω. Και είμαι και υποχόνδριος με την βελτιστοποίηση.

                            Για μένα το παραθυρικό περιβάλλον των Windows δεν είναι και τόσο δύσκολο, αφού επί πολλά χρόνια προγραμμάτιζα GEM/AES: το γραφικό περιβάλλον του Atari ST, το οποίο βασιζόταν στις ίδιες ακριβώς αρχές με τα Windows (event driven programming).

                            Σε γενικές γραμμές, προτιμώ την ώρα που θα φάω για να μάθω τις συναρτήσεις μιας βιβλιοθήκης να τη φάω μαθαίνοτας το real-thing, έτσω και αν με πάρει λίγο περισσότερο. Μαθαίνοντας το 'real thing' πρώτα μειώνεις δραματικά το χρόνο εκμάθησης οποιασδήποτε άλλης higher-level υλοποίησης.

                            Θα ρίξω όμως μια ματιά στις βιβλιοθήκες που προτείνιες φίλε Avel (έτσι κι αλλιώς )

                            1 Reply Last reply Reply Quote 0
                            • M
                              migf1 last edited by

                              Ο χρήστης avel έγραψε:
                              (περί malloc εργαλείων)

                              Έχει βγάλει και η IBM ένα, αλλά δυστυχώς δεν το θυμάμαι.

                              Purify. 🙂 Commercial, βέβαια.

                              Από open-source υπάρχει το electric fence.

                              Μπράβο ρε συ Avel, το Purify είναι το ένα!

                              Έχουν γραφικά περιβάλλοντα αυτά;

                              1 Reply Last reply Reply Quote 0
                              • M
                                migf1 last edited by

                                Ο χρήστης Raikkonen έγραψε:

                                [snip]Τρέχω αυτόν τον κώδικα (εκτός και αν εννοείς άλλον) και δεν έχει κανένα πρόβλημα. Απλά πρέπει να προσέχεις να μην χρησιμοποιείς δείκτες που τους έχεις απελευθερώσει γιατί τότε είναι επικίνδυνο. Επίσης μήπως απελευθερώνεις τον ίδιο δείκτη 2 φορές? Πρόσεχέ το και αυτό.

                                Το παραπάνω το έτρεξα σε Visual Studio 6 της Microsoft αλλά και με gcc σε Solaris!

                                Σε ευχαριστώ πολύ για το χρόνο σου φίλε Raikkonen. Και στα δικά μου test-runs μια χαρά τρέχει... στο πρόγραμμά μου όμως κρασάρει. Κάπου αλλού την έχω κάνει τη μαλακία (κι άντε βρες την)

                                1 Reply Last reply Reply Quote 0
                                • R
                                  raikkonen last edited by

                                  Ο χρήστης migf1 έγραψε:

                                  [snip]Τρέχω αυτόν τον κώδικα (εκτός και αν εννοείς άλλον) και δεν έχει κανένα πρόβλημα. Απλά πρέπει να προσέχεις να μην χρησιμοποιείς δείκτες που τους έχεις απελευθερώσει γιατί τότε είναι επικίνδυνο. Επίσης μήπως απελευθερώνεις τον ίδιο δείκτη 2 φορές? Πρόσεχέ το και αυτό.

                                  Το παραπάνω το έτρεξα σε Visual Studio 6 της Microsoft αλλά και με gcc σε Solaris!

                                  Σε ευχαριστώ πολύ για το χρόνο σου φίλε Raikkonen. Και στα δικά μου test-runs μια χαρά τρέχει... στο πρόγραμμά μου όμως κρασάρει. Κάπου αλλού την έχω κάνει τη μαλακία (κι άντε βρες την)

                                  Παρακαλώ!

                                  Άρα εννοείς άλλο κώδικα! Είπα και γω! Σου ξαναλέω το παιχνίδι με τους pointers είναι επικίνδυνο πλην όμως απαραίτητο. Είσαι σίγουρος ότι δεν κάνεις κάπου παραπάνω από μια φορά free έναν δείκτη? Ή ότι δεν χρησιμοποιείς κάποιο περιπλανώμενο δείκτη? Αν θες γίνε πιο συγκεκριμένος στον κώδικα που φτιάχνεις ή τέλος πάντων έχε υπόψην σου τις παραπάνω παρατηρήσεις!

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    raikkonen last edited by

                                    Ο χρήστης migf1 έγραψε:

                                    Η Java έχει pointers? Θυμάμαι ότι δεν είχε όταν πρωτοβγήκε. H C για μένα (και πολλούς άλλους) είναι η απόλυτη και αξεπέραστη γλώσσα προγραμματισμού... συνδυάζει τα πάντα (αυτονομία, ταχύτητα, high & low level programming, code optimization και πολλά πολλά ακόμα)! Δεν είναι άλλωστε τυχαίο πως η 'Ιερά Βίβλος' για προγραμματισμό στα Windows, το 'Programming Windows' του S.Petzold έχει όλα τα παραδέιγματά του σε C.

                                    Όχι δεν έχει pointers! Όχι όπως η C / C++ τουλάχιστον. Δεν διαφωνώ σε αυτά που λες ...αλλά τα ίδια έχει και η C++ και πολύ πιο πανίσχυρα χαρακτηριστικά (απλά δεν είναι τόσο compact για ευνόητους λόγους)! Κοίταξε δε προσπαθώ να σου αλλάξω την άποψη που έχεις για τη C. Αυτό που θέλω να σου πω είναι ότι ΔΕΝ υπάρχει η καλύτερη γλώσσα. Κάθε γλώσσα είναι καλή σε κάποιο τομέα. Ε η C δεν είναι η γλώσσα για μια παραθυρική εφαρμογή. Είναι καλή για Compilers η και λειτοργικά συστήματα και σε ότι έχει σχέση με προγραμματισμό συστήματος. Αλλά όχι αυτό. Τώρα αν το θέμα είναι ότι δεν έχεις ασχοληθεί με αυτές τις γλώσσες καλό είναι αν είσαι ενεργό μέλος του χώρου να τις μάθεις (έστω και αν δεν προγραμματίσεις ποτέ - θα σε κάνει καλύτερο προγραμματιστή στη C).

                                    Στα μισά βασικά προγραμματιστικά μαθήματα της σχολής μου χρησιμοποιούμε C!

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      migf1 last edited by

                                      Ο χρήστης Raikkonen έγραψε:

                                      Παρακαλώ!

                                      Άρα εννοείς άλλο κώδικα! Είπα και γω! Σου ξαναλέω το παιχνίδι με τους pointers είναι επικίνδυνο πλην όμως απαραίτητο. Είσαι σίγουρος ότι δεν κάνεις κάπου παραπάνω από μια φορά free έναν δείκτη? Ή ότι δεν χρησιμοποιείς κάποιο περιπλανώμενο δείκτη? Αν θες γίνε πιο συγκεκριμένος στον κώδικα που φτιάχνεις ή τέλος πάντων έχε υπόψην σου τις παραπάνω παρατηρήσεις!

                                      You asked for it, here it comes (μη τρομάξεις )

                                      
                                      typedef struct DlgCombo {
                                      	char *ComboText;
                                      	char **ComboStrings;
                                      } DlgCombo;
                                      
                                      typedef struct DlgELCombo {
                                      	char	*EditText;
                                      	char	**ListStrings;
                                      } DlgELCombo;
                                      
                                      struct DlgCECombo {
                                      	struct DlgCombo	ComboBox;
                                      	char		*EditText;
                                      };
                                      
                                      struct DlgCheckbox {
                                      	char 	*Text;
                                      	int	Checked;
                                      };
                                      
                                      struct DlgPButton {
                                      	char	*text;
                                      	char	*bitmap;
                                      };
                                      
                                      typedef struct ProdDlgData {
                                      	DlgCombo		Code;
                                      	DlgCombo		Supplier;
                                      	DlgCombo		SupAbrev;
                                      	struct DlgCheckbox	ChkSupFilter;
                                      	DlgCombo		Season;
                                      	DlgCombo		Type;
                                      	DlgCombo		Material;
                                      	DlgCombo		Quality;
                                      	DlgCombo		Height;
                                      	DlgCombo		Form;
                                      	DlgCombo		MUnit;
                                      	DlgCombo		Country;
                                      	struct DlgCECombo	SizeSet;
                                      	DlgELCombo	AllColors;
                                      	DlgELCombo	PrdColors;
                                      	struct DlgCheckbox	ChkStickyFileds;
                                      	struct DlgCheckbox	ChkSupplier;
                                      	struct DlgCheckbox	ChkSeason;
                                      	struct DlgCheckbox	ChkType;
                                      	struct DlgCheckbox	ChkMaterial;
                                      	struct DlgCheckbox	ChkQuality;
                                      	struct DlgCheckbox	ChkForm;
                                      	struct DlgCheckbox	ChkMUnit;
                                      	struct DlgCheckbox	ChkSizeset;
                                      	struct DlgCheckbox	ChkColors;
                                      	struct DlgCheckbox	ChkDiscount;
                                      	struct DlgCheckbox	ChkTax;
                                      	DlgCombo	TaxPercentage;
                                      } PROD_DLGDATA;
                                      
                                      // =====================================================
                                      // DIALOG PRODUCTS (Allocate Memory for a DlgCombo Structure)
                                      //
                                      // 
                                      // =====================================================
                                      //
                                      BOOL allocDlgCombo( DlgCombo *Combo, int  max_n, int slen )
                                      {	register int i;
                                      
                                      	if ( (Combo->ComboText = (char *) malloc( slen * sizeof( char )) ) == NULL )
                                      		return FALSE;
                                      
                                      	if ( (Combo->ComboStrings = (char **) malloc( max_n * sizeof( char * )) ) == NULL )
                                      		return FALSE;
                                      
                                      	for ( i=0;  i < max_n; i++ )
                                      		if ( (Combo->ComboStrings[ i ] = (char *) malloc( slen * sizeof( char )) ) == NULL )
                                      			return FALSE;
                                      
                                      	return TRUE;
                                      }
                                      
                                      
                                      // =====================================================
                                      // DIALOG PRODUCTS (Allocate Memory for a DlgELCombo Structure)
                                      //
                                      // 
                                      // =====================================================
                                      //
                                      BOOL allocDlgELCombo( DlgELCombo *ELCombo, int  max_n, int slen )
                                      {	register int i;
                                      
                                      	if ( (ELCombo->EditText = (char *) calloc( slen, sizeof( char )) ) == NULL )
                                      		return FALSE;
                                      
                                      	if ( (ELCombo->ListStrings = (char **) calloc( max_n, sizeof( char * )) ) == NULL )
                                      		return FALSE;
                                      
                                      	for ( i=0;  i < max_n; i++ )
                                      		if ( (ELCombo->ListStrings[ i ] = (char *) calloc( slen, sizeof( char )) ) == NULL )
                                      			return FALSE;
                                      
                                      	return TRUE;
                                      }
                                      
                                      
                                      // =====================================================
                                      // DIALOG PRODUCTS (Allocate Memory for Dialog Data)
                                      //
                                      // 
                                      // =====================================================
                                      //
                                      BOOL AllocProdDlgData( PROD_DLGDATA *DlgData )
                                      {
                                      	if ( !allocDlgCombo( &(DlgData->Code), MAX_PRODS, sLEN_PDCODE ) )
                                      		return FALSE;
                                      	
                                      	if ( !allocDlgCombo( &(DlgData->Supplier), MAX_SUPPS, sLEN_SUPNAME ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgCombo( &(DlgData->SupAbrev), MAX_SUPPS, sLEN_SUPABREV ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgCombo( &(DlgData->Season), MAX_PDSEASONS, sLEN_PDSEASON ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgCombo( &(DlgData->Type), MAX_PDTYPES, sLEN_PDTYPE ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgCombo( &(DlgData->Material), MAX_PDMATERIALS, sLEN_PDMATERIAL ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgCombo( &(DlgData->Quality), MAX_PDQUALITIES, sLEN_PDQUALITY ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgCombo( &(DlgData->Height), MAX_PDHEIGHTS, sLEN_PDHEIGHT ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgCombo( &(DlgData->Form), MAX_PDFORMS, sLEN_PDFORM ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgCombo( &(DlgData->MUnit), MAX_PDMUNITS, sLEN_PDMUNIT ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgCombo( &(DlgData->Country), MAX_PDCOUNTRIES, sLEN_PDCOUNTRY ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgCombo( &(DlgData->SizeSet.ComboBox), MAX_PDSIZESETS, sLEN_PDSIZSETNAME ) )
                                      		return FALSE;
                                      	if ( (DlgData->SizeSet.EditText = (char *) calloc( MAX_PDSIZES_INSET * (sLEN_PDSIZSETSIZE+1)+1, sizeof( char )) ) == NULL )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgELCombo( &(DlgData->AllColors), MAX_PDALLCOLORS, sLEN_PDCOLOR ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgELCombo( &(DlgData->PrdColors), MAX_PDCOLORS, sLEN_PDCOLOR ) )
                                      		return FALSE;
                                      
                                      	if ( !allocDlgCombo( &(DlgData->TaxPercentage), MAX_PDTAXPERS, sLEN_PERCENTAGE ) )
                                      		return FALSE;
                                      
                                      	return TRUE;
                                      }
                                      
                                      // =====================================================
                                      // DIALOG PRODUCTS (Free Memory of a DlgCombo Structure)
                                      //
                                      // 
                                      // =====================================================
                                      //
                                      void freeDlgCombo( DlgCombo Combo, int max_n )
                                      {	register	int i;
                                      
                                      	free( Combo.ComboText );
                                      	for ( i=0;  i < max_n; i++ )
                                      		free( Combo.ComboStrings[ i ] );
                                      
                                      	free( Combo.ComboStrings );
                                      
                                      	return;
                                      }
                                      
                                      	
                                      // =====================================================
                                      // DIALOG PRODUCTS (Free Memory of a DlgELCombo Structure)
                                      //
                                      // 
                                      // =====================================================
                                      //
                                      void freeDlgELCombo( DlgELCombo ELCombo, int  max_n )
                                      {	register int i;
                                      
                                      	free( ELCombo.EditText );
                                      	for ( i=0;  i < max_n; i++ )
                                      		free( ELCombo.ListStrings[ i ] );
                                      
                                      	free( ELCombo.ListStrings );
                                      
                                      	return;
                                      }
                                      
                                      // =====================================================
                                      // DIALOG PRODUCTS (Free Dialog Data)
                                      //
                                      // 
                                      // =====================================================
                                      //
                                      void FreeProdDlgData( PROD_DLGDATA *DlgData )
                                      {
                                      //	free( DlgData );
                                      //	return;
                                      
                                      	freeDlgCombo( DlgData->Code, MAX_PRODS );
                                      	freeDlgCombo( DlgData->Supplier, MAX_SUPPS );
                                      	freeDlgCombo( DlgData->SupAbrev, MAX_SUPPS );
                                      	freeDlgCombo( DlgData->Season, MAX_PDSEASONS );
                                      	freeDlgCombo( DlgData->Type, MAX_PDTYPES );
                                      	freeDlgCombo( DlgData->Material, MAX_PDMATERIALS );
                                      	freeDlgCombo( DlgData->Quality, MAX_PDQUALITIES );
                                      	freeDlgCombo( DlgData->Height, MAX_PDHEIGHTS );
                                      	freeDlgCombo( DlgData->Form, MAX_PDFORMS );
                                      	freeDlgCombo( DlgData->MUnit, MAX_PDMUNITS );
                                      	freeDlgCombo( DlgData->Country, MAX_PDCOUNTRIES );
                                      
                                      	freeDlgCombo( DlgData->SizeSet.ComboBox, MAX_PDSIZESETS );
                                      	free( DlgData->SizeSet.EditText);
                                      
                                      	freeDlgELCombo( DlgData->AllColors, MAX_PDALLCOLORS );
                                      	freeDlgELCombo( DlgData->PrdColors, MAX_PDCOLORS );
                                      
                                      	freeDlgCombo( DlgData->TaxPercentage, MAX_PDTAXPERS );
                                      	return;
                                      }
                                      
                                      

                                      Αυτές είναι οι βασικές ρουτίνες που δεσμέυουν/αποδεσμεύουν μνήμη μέχρι στιγμής. Όσο και να σπάω το κεφάλι μου, ΔΕΝ μπορώ να βρω που υπάρχει λάθος.

                                      Ενδέχεται ξέρεις να είναι αλλού οτ πρόβλημα (π.χ. στις ρουτίνες που βάζουν τιμές στα strings, όπως π.χ. η παρακάτω):

                                      
                                      // =====================================================
                                      // DIALOG PRODUCTS (Set Deafult Values in the Dialog Data structure)
                                      //
                                      // 
                                      // =====================================================
                                      //
                                      void DefvalsProdDlgData( PROD_DLGDATA *DlgData )
                                      {
                                      	// --------- SUPPLIER FILTER CHECKBOX ----------
                                      
                                      	DlgData->ChkSupFilter.Checked = FALSE;
                                      
                                      	// --------- TYPES ----------
                                      
                                      	// Set some  d e f a u l t  Types
                                      	strncpy( DlgData->Type.ComboStrings[ 0 ], 	'&Atilde;&Iuml;&Acirc;&Aacute;\0',		sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 1 ], 	'&Igrave;&Iuml;&Ecirc;&Aacute;&Oacute;&Eacute;&Iacute;&Eacute;\0',	sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 2 ], 	'&ETH;&Aring;&Auml;&Eacute;&Euml;&Iuml;\0',		sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 3 ], 	'&ETH;&Euml;&Aacute;&Ocirc;&Ouml;&Iuml;&Ntilde;&Igrave;&Aacute;\0',	sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 4 ], 	'&Oacute;&Aacute;&Iacute;&Auml;&Aacute;&Euml;&Eacute;\0',	sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 5 ], 	'&Oacute;&Aacute;&Atilde;&Eacute;&Iuml;&Iacute;&Aacute;&Ntilde;&Aacute;\0',	sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 6 ], 	'&Igrave;&ETH;&Iuml;&Ocirc;&Aacute;\0',		sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 7 ], 	'&Igrave;&ETH;&Iuml;&Ocirc;&Aacute;&Ecirc;&Eacute;\0',	sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 8 ], 	'&Ocirc;&Oacute;&Iuml;&Ecirc;&Aacute;&Ntilde;&Iuml;\0',	sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 9 ], 	'&Aring;&Oacute;&ETH;&Aacute;&Iacute;&Ocirc;&Ntilde;&Eacute;&Atilde;&Eacute;&Aacute;\0',sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 10 ],'&Aacute;&Egrave;&Euml;&Ccedil;&Ocirc;&Eacute;&Ecirc;&Iuml;\0',	sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 11 ],'&Oacute;&Aacute;&Iacute;&Aring;&Euml;\0',		sLEN_PDTYPE-1 );
                                      	strncpy( DlgData->Type.ComboStrings[ 12 ],'&Ouml;&Eacute;&Aacute;&ETH;&Aacute;\0',		sLEN_PDTYPE-1 );
                                      
                                      	// S o r t  the Type Strings (ascending)
                                      	qsort( DlgData->Type.ComboStrings, MAX_PDTYPES, sLEN_PDTYPE, (void *) strcmp );
                                      
                                      
                                      	// --------- MATERIALS ----------
                                      
                                      	// Set some  d e f a u l t  Materials
                                      	strncpy( DlgData->Material.ComboStrings[ 0 ], 	'&Auml;&Aring;&Ntilde;&Igrave;&Aacute;\0',		sLEN_PDMATERIAL-1 );
                                      	strncpy( DlgData->Material.ComboStrings[ 1 ],	'&Otilde;&Ouml;&Aacute;&Oacute;&Igrave;&Aacute;\0',		sLEN_PDMATERIAL-1 );
                                      	strncpy( DlgData->Material.ComboStrings[ 2 ], 	'&Oacute;&Otilde;&Iacute;&Egrave;&Aring;&Ocirc;&Eacute;&Ecirc;&Iuml;\0',	sLEN_PDMATERIAL-1 );
                                      	strncpy( DlgData->Material.ComboStrings[ 3 ], 	'&Aring;&Euml;&Aacute;&Oacute;&Ocirc;&Eacute;&Ecirc;&Iuml;\0',	sLEN_PDMATERIAL-1 );
                                      
                                      	// S o r t  the Material Strings (ascending)
                                      	qsort( DlgData->Material.ComboStrings, MAX_PDMATERIALS, sLEN_PDMATERIAL-1, (void *) strcmp );
                                      
                                      	// --------- QUALITIES ----------
                                      
                                      	// Set some  d e f a u l t  Qualities
                                      	strncpy( DlgData->Quality.ComboStrings[ 0 ], 	'&Oacute;&aring;&acirc;&ntilde;&uuml;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 1 ],	'&Iacute;&Uuml;&eth;&aacute;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 2 ], 	'&Ocirc;&aring;&euml;&aacute;&ocirc;&szlig;&iacute;&eacute;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 3 ], 	'&Oacute;&aacute;&ocirc;&Yacute;&iacute;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 4 ], 	'&Igrave;&aacute;&ocirc;\0',			sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 5 ], 	'&Atilde;&ecirc;&ntilde;&uuml;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 6 ], 	'&Atilde;&otilde;&aacute;&euml;&eacute;&oacute;&ocirc;&aring;&ntilde;&uuml;\0',	sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 7 ], 	'&Ecirc;&aacute;&oacute;&ocirc;&uuml;&ntilde;&eacute;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 8 ], 	'&Ouml;&szlig;&auml;&eacute;\0',			sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 9 ], 	'&Ecirc;&ntilde;&iuml;&ecirc;&uuml;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 10 ], 	'&ETH;&uuml;&iacute;&otilde; &Oacute;&ecirc;&eacute;&iacute;\0',	sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 11 ], 	'&Euml;&aring;&iuml;&eth;&Uuml;&ntilde;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 12 ], 	'&ETH;&iuml;&yacute;&auml;&ntilde;&aacute;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 13 ], 	'&Iacute;&aacute;&igrave;&eth;&iuml;&yacute;&ecirc;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 14 ], 	'&Aacute;&iacute;&ocirc;&szlig;&ecirc;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 15 ], 	'&Ouml;&aacute;&oacute;&uuml;&euml;&eacute;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 16 ], 	'&Ocirc;&eacute;&atilde;&ntilde;&Yacute;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 17 ], 	'&Euml;&aacute;&auml;&aring;&ntilde;&uuml;\0',		sLEN_PDQUALITY-1 );
                                      	strncpy( DlgData->Quality.ComboStrings[ 18 ], 	'&Ecirc;&ntilde;&iuml;&yacute;&ocirc;&aacute;\0',		sLEN_PDQUALITY-1 );
                                      
                                      	// S o r t  the Quality Strings (ascending)
                                      	qsort( DlgData->Quality.ComboStrings, MAX_PDQUALITIES, sLEN_PDQUALITY, (void *) strcmp );
                                      
                                      	// --------- FORMS ----------
                                      
                                      	// Set some  d e f a u l t  Forms
                                      	strncpy( DlgData->Form.ComboStrings[ 0 ], 	'&Ecirc;&aacute;&ntilde;&Yacute; (&igrave;&aring;&atilde;&Uuml;&euml;&iuml;)\0',		sLEN_PDFORM-1 );
                                      	strncpy( DlgData->Form.ComboStrings[ 1 ], 	'&Igrave;&otilde;&ocirc;&aring;&ntilde;&uuml;\0',				sLEN_PDFORM-1 );
                                      	strncpy( DlgData->Form.ComboStrings[ 2 ], 	'&Oacute;&ocirc;&ntilde;&iuml;&atilde;&atilde;&otilde;&euml;&uuml;\0',			sLEN_PDFORM-1 );
                                      	strncpy( DlgData->Form.ComboStrings[ 3 ], 	'&Oacute;&ocirc;&ntilde;&iuml;&atilde;&atilde;&otilde;&euml;&uuml; (&eth;&iuml;&igrave;&eth;&Yacute;)\0',		sLEN_PDFORM-1 );
                                      	strncpy( DlgData->Form.ComboStrings[ 4 ], 	'&Oacute;&ocirc;&ntilde;&iuml;&atilde;&atilde;&otilde;&euml;&uuml; (&igrave;&eth;&iuml;&otilde;&euml;)\0',		sLEN_PDFORM-1 );
                                      	strncpy( DlgData->Form.ComboStrings[ 5 ], 	'&Ecirc;&aacute;&ntilde;&Yacute; (&igrave;&eacute;&ecirc;&ntilde;&uuml;)\0',			sLEN_PDFORM-1 );
                                      
                                      	// S o r t  the Form Strings (ascending)
                                      	qsort( DlgData->Form.ComboStrings, MAX_PDFORMS, sLEN_PDFORM, (void *) strcmp );
                                      
                                      	// --------- HEIGHTS ----------
                                      
                                      	// Set some  d e f a u l t  Heights
                                      	strncpy( DlgData->Height.ComboStrings[ 0 ], 	'01,0 &aring;&ecirc;. ( &szlig;&oacute;&eacute;&iuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 1 ],	'01,5 &aring;&ecirc;. ( &szlig;&oacute;&eacute;&iuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 2 ], 	'02,0 &aring;&ecirc;. ( &ecirc;&aacute;&iacute;&iuml;&iacute;&eacute;&ecirc;&uuml; )\0',	sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 3 ], 	'02,5 &aring;&ecirc;. ( &ecirc;&aacute;&iacute;&iuml;&iacute;&eacute;&ecirc;&uuml; )\0',	sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 4 ], 	'03,0 &aring;&ecirc;. ( &ecirc;&aacute;&iacute;&iuml;&iacute;&eacute;&ecirc;&uuml; )\0',	sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 5 ], 	'03,5 &aring;&ecirc;. ( &ecirc;&aacute;&iacute;&iuml;&iacute;&eacute;&ecirc;&uuml; )\0',	sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 6 ], 	'04,0 &aring;&ecirc;. ( &igrave;&Yacute;&ocirc;&ntilde;&eacute;&iuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 7 ], 	'04,5 &aring;&ecirc;. ( &igrave;&Yacute;&ocirc;&ntilde;&eacute;&iuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 8 ], 	'05,0 &aring;&ecirc;. ( &igrave;&Yacute;&ocirc;&ntilde;&eacute;&iuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 9 ], 	'05,5 &aring;&ecirc;. ( &igrave;&Yacute;&ocirc;&ntilde;&eacute;&iuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 10 ], 	'06,0 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 11 ], 	'06,5 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 12 ], 	'07,0 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 13 ], 	'07,5 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 14 ], 	'08,0 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 15 ], 	'08,5 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 16 ], 	'09,0 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 17 ], 	'09,5 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml; )\0',		sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 18 ], 	'10,0 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml;&ocirc;&aring;&ntilde;&iuml; )\0',	sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 19 ], 	'10,5 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml;&ocirc;&aring;&ntilde;&iuml; )\0',	sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 20 ], 	'11,0 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml;&ocirc;&aring;&ntilde;&iuml; )\0',	sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 21 ], 	'11,5 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml;&ocirc;&aring;&ntilde;&iuml; )\0',	sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 22 ], 	'12,0 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml;&ocirc;&aring;&ntilde;&iuml; )\0',	sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 23 ], 	'12,5 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml;&ocirc;&aring;&ntilde;&iuml; )\0',	sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 24 ], 	'13,0 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml;&ocirc;&aring;&ntilde;&iuml; )\0',	sLEN_PDHEIGHT-1 );
                                      	strncpy( DlgData->Height.ComboStrings[ 25 ], 	'13,5 &aring;&ecirc;. ( &oslash;&ccedil;&euml;&uuml;&ocirc;&aring;&ntilde;&iuml; )\0',	sLEN_PDHEIGHT-1 );
                                      
                                      	// S o r t  the Height Strings (ascending)
                                      	qsort( DlgData->Height.ComboStrings, MAX_PDHEIGHTS, sLEN_PDHEIGHT, (void *) strcmp );
                                      
                                      	// --------- MUNITS ----------
                                      
                                      	// Set some  d e f a u l t  MUnits
                                      	strncpy(DlgData->MUnit.ComboStrings[ 0 ], 	'&aelig;&aring;&yacute;&atilde;&ccedil;\0',	sLEN_PDMUNIT-1 );
                                      	strncpy(DlgData->MUnit.ComboStrings[ 1 ], 	'&ecirc;&iuml;&igrave;&igrave;&Uuml;&ocirc;&eacute;&aacute;\0',	sLEN_PDMUNIT-1 );
                                      	strncpy(DlgData->MUnit.ComboStrings[ 2 ], 	'&ecirc;&iuml;&yacute;&ocirc;&aring;&ograve;\0',	sLEN_PDMUNIT-1 );
                                      
                                      	// S o r t  the MUnit Strings (ascending)
                                      	qsort(DlgData->MUnit.ComboStrings, MAX_PDMUNITS, sLEN_PDMUNIT, (void *) strcmp );
                                      
                                      	// --------- COUNTRIES ----------
                                      
                                      	// Set some  d e f a u l t  Countries
                                      	strncpy( DlgData->Country.ComboStrings[ 0 ], 	'&Aring;&euml;&euml;&Uuml;&auml;&aacute;\0',	sLEN_PDCOUNTRY-1 );
                                      	strncpy( DlgData->Country.ComboStrings[ 1 ], 	'&Eacute;&ocirc;&aacute;&euml;&szlig;&aacute;\0',	sLEN_PDCOUNTRY-1 );
                                      	strncpy( DlgData->Country.ComboStrings[ 2 ], 	'&Eacute;&oacute;&eth;&aacute;&iacute;&szlig;&aacute;\0',	sLEN_PDCOUNTRY-1 );
                                      	strncpy( DlgData->Country.ComboStrings[ 3 ], 	'&Acirc;&ntilde;&aacute;&aelig;&eacute;&euml;&szlig;&aacute;\0',	sLEN_PDCOUNTRY-1 );
                                      	strncpy( DlgData->Country.ComboStrings[ 4 ], 	'&Ecirc;&szlig;&iacute;&aacute;\0',	sLEN_PDCOUNTRY-1 );
                                      	strncpy( DlgData->Country.ComboStrings[ 5 ], 	'&Ocirc;&aacute;&uacute;&acirc;&Uuml;&iacute;\0',	sLEN_PDCOUNTRY-1 );
                                      
                                      	// S o r t  the Country Strings (ascending)
                                      	qsort( DlgData->Country.ComboStrings, MAX_PDCOUNTRIES, sLEN_PDCOUNTRY, (void *) strcmp );
                                      
                                      	// --------- SIZESETS ----------
                                      
                                      	// then, set some  d e f a u l t  Names and corresponding Sizes
                                      	strncpy( DlgData->SizeSet.ComboBox.ComboStrings[ 0 ], 	'&Atilde;&Otilde;&Iacute;. &Iuml;&Euml;&Iuml;&Ecirc;&Euml;&Ccedil;&Ntilde;&Aacute;\0',	sLEN_PDSIZSETNAME-1 );
                                      	strncpy( DlgData->SizeSet.ComboBox.ComboStrings[ 1 ],	'&Atilde;&Otilde;&Iacute;. &igrave;&aring; &Igrave;&Eacute;&Oacute;&Aacute;\0',		sLEN_PDSIZSETNAME-1 );
                                      	strncpy( DlgData->SizeSet.ComboBox.ComboStrings[ 2 ],	'&Atilde;&Otilde;&Iacute;. &Ecirc;&Iuml;&Otilde;&Ocirc;&Aring;&Oacute;\0',	sLEN_PDSIZSETNAME-1 );
                                      
                                      	qsort( DlgData->SizeSet.ComboBox.ComboStrings, MAX_PDSIZESETS, sLEN_PDSIZSETSIZE, (void *) strcmp );
                                      
                                      	// --------- ALL COLORS ----------
                                      
                                      	// Set some  d e f a u l t  AllColors
                                      	strncpy( DlgData->AllColors.ListStrings[ 0 ],	'&Igrave;&Aacute;&Otilde;&Ntilde;&Iuml;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 1 ],	'&Igrave;&ETH;&Euml;&Aring;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 2 ],	'&Ecirc;&Aacute;&Ouml;&Aring;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 3 ],	'&Ocirc;&Aacute;&Igrave;&ETH;&Aacute;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 4 ],	'&Ecirc;&Iuml;&Ecirc;&Ecirc;&Eacute;&Iacute;&Iuml;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 5 ],	'&Aacute;&Igrave;&Igrave;&Iuml;&Otilde;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 6 ],	'&Igrave;&ETH;&Ntilde;&Iuml;&Iacute;&AElig;&Aring;\0',	sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 7 ],	'&Igrave;&ETH;&Iuml;&Ntilde;&Iacute;&Ocirc;&Ugrave;\0',	sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 8 ],	'&Ecirc;&Eacute;&Ocirc;&Ntilde;&Eacute;&Iacute;&Iuml;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 9 ],	'&Atilde;&Aacute;&Euml;&Aacute;&AElig;&Eacute;&Iuml;\0',	sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 10 ],	'&Ntilde;&Iuml;&AElig;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 11 ],	'&Euml;&Aacute;&times;&Aacute;&Iacute;&Eacute;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 12 ],	'&ETH;&Ntilde;&Aacute;&Oacute;&Eacute;&Iacute;&Iuml;\0',	sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 13 ],	'&times;&Ntilde;&Otilde;&Oacute;&Iuml;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 14 ],	'&Aacute;&Oacute;&Ccedil;&Igrave;&Eacute;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 15 ],	'&ETH;&Euml;&Aacute;&Ocirc;&Eacute;&Iacute;&Aacute;\0',	sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 16 ],	'&Euml;&Aring;&Otilde;&Ecirc;&Iuml;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 17 ],	'&ETH;&Aacute;&Atilde;&Iuml;&Otilde;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 18 ],	'&Oacute;&Iuml;&Igrave;&Iuml;&Iacute;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 19 ],	'&Acirc;&Aring;&Ntilde;&Aacute;&Igrave;&Aacute;&Iacute;\0',	sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 20 ],	'&ETH;&Iuml;&Ntilde;&Ocirc;&Iuml;&Ecirc;&Aacute;&Euml;&Eacute;\0',	sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 21 ],	'&Euml;&Aring;&Otilde;+&Igrave;&Aacute;&Otilde;\0',	sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 22 ],	'&Igrave;&Aacute;&Otilde;+&Euml;&Aring;&Otilde;\0',	sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 23 ],	'&Igrave;&ETH;&Aring;&AElig;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 24 ],	'&ETH;&Iuml;&Otilde;&Ntilde;&Iuml;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 25 ],	'&Ecirc;&Aacute;&Ouml;+&Ocirc;&Aacute;&Igrave;\0',	sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 26 ],	'&Euml;&Aacute;&Auml;&Eacute;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 27 ],	'&Eacute;&Acirc;&Iuml;&Otilde;&Aacute;&Ntilde;\0',		sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 28 ],	'&Oacute;&Aacute;&ETH;.&Igrave;&Ccedil;&Euml;&Iuml;\0',	sLEN_PDCOLOR-1 );
                                      	strncpy( DlgData->AllColors.ListStrings[ 29 ],	'&times;&Aacute;&Ecirc;&Eacute;\0',		sLEN_PDCOLOR-1 );
                                      
                                      	// S o r t  the AllColors Strings (ascending)
                                      	qsort( DlgData->AllColors.ListStrings, MAX_PDALLCOLORS, sLEN_PDCOLOR, (void *) strcmp );
                                      
                                      
                                      	// --------- STICKY CHECKBOXES ----------
                                      
                                      	DlgData->ChkStickyFileds.Checked = FALSE;
                                      	DlgData->ChkSupplier.Checked = FALSE;
                                      	DlgData->ChkSeason.Checked = FALSE;
                                      	DlgData->ChkType.Checked = FALSE;
                                      	DlgData->ChkMaterial.Checked = FALSE;
                                      	DlgData->ChkQuality.Checked = FALSE;
                                      	DlgData->ChkForm.Checked = FALSE;
                                      	DlgData->ChkMUnit.Checked = FALSE;
                                      	DlgData->ChkSizeset.Checked = FALSE;
                                      	DlgData->ChkColors.Checked = FALSE;
                                      	DlgData->ChkDiscount.Checked = FALSE;
                                      	DlgData->ChkTax.Checked = FALSE;
                                      
                                      	// --------- TAX PERCENTAGES ----------
                                      
                                      	// then, set some  d e f a u l t  Tax Percentages
                                      	strncpy( DlgData->TaxPercentage.ComboStrings[ 0 ], 	'08\0',	sLEN_PERCENTAGE-1 );
                                      	strncpy( DlgData->TaxPercentage.ComboStrings[ 1 ], 	'18\0',	sLEN_PERCENTAGE-1 );
                                      	strncpy( DlgData->TaxPercentage.ComboStrings[ 2 ], 	'09\0',	sLEN_PERCENTAGE-1 );
                                      	strncpy( DlgData->TaxPercentage.ComboStrings[ 3 ], 	'19\0',	sLEN_PERCENTAGE-1 );
                                      
                                      	// lastly,  s o r t  the TaxCats array (ascending)
                                      	qsort( DlgData->TaxPercentage.ComboStrings, MAX_PDTAXPERS, sLEN_PERCENTAGE, (void *) strcmp );
                                      
                                      
                                      	return;	
                                      }
                                      
                                      
                                      

                                      Τα 'κινέζικα' είναι ελληνικοί χαρακτήρες.
                                      Anyway, είναι too much για να κάτσεις να ασχοληθείς... ήδη ασχολήθηκες παραπάνω από αρκετά και σε ευχαριστώ!

                                      Θα την βρω την άκρη, που θα μου πάει

                                      ΥΓ. Μόλις κατέβασα το MemProof (δουλεύει, λένε, με PellesC παρόλο που είνια φτιαγμένο για BorlandC).

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        migf1 last edited by

                                        Ο χρήστης Raikkonen έγραψε:

                                        Όχι δεν έχει pointers! Όχι όπως η C / C++ τουλάχιστον. Δεν διαφωνώ σε αυτά που λες ...αλλά τα ίδια έχει και η C++ και πολύ πιο πανίσχυρα χαρακτηριστικά (απλά δεν είναι τόσο compact για ευνόητους λόγους)! Κοίταξε δε προσπαθώ να σου αλλάξω την άποψη που έχεις για τη C. Αυτό που θέλω να σου πω είναι ότι ΔΕΝ υπάρχει η καλύτερη γλώσσα. Κάθε γλώσσα είναι καλή σε κάποιο τομέα. Ε η C δεν είναι η γλώσσα για μια παραθυρική εφαρμογή. Είναι καλή για Compilers η και λειτοργικά συστήματα και σε ότι έχει σχέση με προγραμματισμό συστήματος. Αλλά όχι αυτό. Τώρα αν το θέμα είναι ότι δεν έχεις ασχοληθεί με αυτές τις γλώσσες καλό είναι αν είσαι ενεργό μέλος του χώρου να τις μάθεις (έστω και αν δεν προγραμματίσεις ποτέ - θα σε κάνει καλύτερο προγραμματιστή στη C).

                                        Στα μισά βασικά προγραμματιστικά μαθήματα της σχολής μου χρησιμοποιούμε C!

                                        Η C++ είναι βασικά υπερσύνολο της C, με βασική διαφοροποίηση την εγγενή υποστήριξη για classes και γενικώς object oriented programming. Έχει όμως μεγαλύτερο χρόνο εκμάθησης, αλλά το κυριότερο πολύ overhead.

                                        Δεν διαφωνώ στο ότι η κάθε γλώσσα είναι καλύτερη για κάποιον συγκεκριμένο τομέα, δεν καταλαβαίνω όμως γιατί υποστηρίζεις πως η C δεν κάνει γενικώς για παραθυρικές εφαρμογές, τη στιγμή που όλα τα παραθυρικά περιβάλλοντα είναι κυρίως γραμμένα σε C.

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

                                        1 Reply Last reply Reply Quote 0
                                        • R
                                          raikkonen last edited by

                                          Ο χρήστης migf1 έγραψε:

                                          You asked for it, here it comes (μη τρομάξεις )

                                          ....

                                          >
                                          >Αυτές είναι οι βασικές ρουτίνες που δεσμέυουν/αποδεσμεύουν μνήμη μέχρι στιγμής. Όσο και να σπάω το κεφάλι μου, ΔΕΝ μπορώ να βρω που υπάρχει λάθος.  
                                          >
                                          >Ενδέχεται ξέρεις να είναι αλλού οτ πρόβλημα (π.χ. στις ρουτίνες που βάζουν τιμές στα strings, όπως π.χ. η παρακάτω):
                                          >```
                                          
                                          >....
                                          >
                                          

                                          Τα 'κινέζικα' είναι ελληνικοί χαρακτήρες.
                                          Anyway, είναι too much για να κάτσεις να ασχοληθείς... ήδη ασχολήθηκες παραπάνω από αρκετά και σε ευχαριστώ!

                                          Θα την βρω την άκρη, που θα μου πάει

                                          Δεν έχω ξαναδεί τέτοιο κώδικα. Τι τεράστια structs είναι αυτά? Πράγματι παρά είναι πολύ όχι τόσο για το μέγεθος(και για αυτό φυσικά) αλλά κυρίως γιατί δεν ξέρω την 'ιστορία' του προγράμματος.

                                          Χρησιμοποίησε debugger ή κάνε το χειροκίνητα. Προσπάθησε να σφίξεις τον κλοιό γύρω από την περιοχή που σου πετάει το πρόβλημα. Με μια γρήγορη ματιά που έριξα οι δεσμεύσεις/αποδεσμέυσεις δείχνουν να γίνονται σωστά. Αυτό είναι και εύκολο να το τσεκάρεις πέρνωντας ένα ένα το ξευγάρι συναρτήσεων (για αποδεύσμευση/δέσμευση) σε ένα test αρχείο και να δεις αν πετάει τίποτα.

                                          Το ποιο πιθανό πιστέυω είναι αυτό που λες και συ ότι είναι κάπου στον 'πελάτη' κώδικα. Επειδή έχεις πολλούς pointers είσαι σίγουρος ότι κατά λάθος δε 'σβήνεις' ένα Pointer 2 φορές? Ή ότι δεν χρησιμοποιείς έναν ελευθερωμένο? Δηλαδή μπορεί μεμονωμένα οι συναρτήσεις που έφτιαξες να είναι τέλειες αλλά όταν διαπλέκονται όλα μαζί κάπου να στραβώνει κάτι. Σου προτείνω να στραφείς προς αυτήν την κατέυθυνση. Προσπάθησε να παρακολουθήσεις τα δεδομένα σου.

                                          ΥΓ. Όταν με το καλό το βρεις πες μου τι ήταν, έτσι για γνώση.

                                          1 Reply Last reply Reply Quote 0
                                          • R
                                            raikkonen last edited by

                                            Ο χρήστης migf1 έγραψε:

                                            Η C++ είναι βασικά υπερσύνολο της C, με βασική διαφοροποίηση την εγγενή υποστήριξη για classes και γενικώς object oriented programming. Έχει όμως μεγαλύτερο χρόνο εκμάθησης, αλλά το κυριότερο πολύ overhead.

                                            Δεν διαφωνώ στο ότι η κάθε γλώσσα είναι καλύτερη για κάποιον συγκεκριμένο τομέα, δεν καταλαβαίνω όμως γιατί υποστηρίζεις πως η C δεν κάνει γενικώς για παραθυρικές εφαρμογές, τη στιγμή που όλα τα παραθυρικά περιβάλλοντα είναι κυρίως γραμμένα σε C.

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

                                            Συμφωνώ σε αυτά που λες για την C++. Μάλιστα η ονομασία της είναι ατυχής, το ++ δεν μπορεί να υποδηλώσει διαφορά από τη C.

                                            To ξέρω ότι πολλά παραθυρικά είναι γραμμένα σε C αλλά κάλλιστα θα μπορούσαν να είχαν γραφτεί απευθείας σε Αssembly (που προσφέρεται για ακόμα καλύτερη αξιοποιηση πόρων - λέεμε τώρα).

                                            Απλά πιστεύω ότι δεν είναι και η πιο εύκολη/βολική/καλύτερη γλώσσα σε θέματα παραθυρικών όταν υπάρχουν οι άλλες.

                                            Το θέμα αλλάζει αν εσύ ξέρεις να χειρίζεσαι άψογα τη C (και σε αυτό το τομέα). Επίσης έχει υπόψη σου ότι εγώ τώρα σπουδάζω και σαφώς δε μπορώ να έχω τις εμπειρίες σου αλλά ούτε και εσύ να ξέρεις τα του τι διδασκόμαστε.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            • 1
                                            • 2
                                            • 52
                                            • 53
                                            • 54
                                            • 55
                                            • 56
                                            • 75
                                            • 76
                                            • 54 / 76
                                            • ΕΠΙΚΑΙΡΟΤΗΤΑ
                                              • ΕΛΛΑΔΑ
                                              • ΚΟΣΜΟΣ
                                              • ΕΚΘΕΣΕΙΣ
                                              • ΕΚΔΗΛΩΣΕΙΣ 4Τ
                                              • ΣΥΝΕΝΤΕΥΞΕΙΣ
                                            • ΔΟΚΙΜΕΣ
                                              • TEST
                                              • ΠΑΡΟΥΣΙΑΣΕΙΣ
                                              • ΣΥΓΚΡΙΤΙΚΕΣ ΔΟΚΙΜΕΣ
                                              • ΑΓΩΝΙΣΤΙΚΕΣ ΓΝΩΡΙΜΙΕΣ
                                              • ΔΟΚΙΜΕΣ ΕΛΑΣΤΙΚΩΝ
                                              • ΕΙΔΙΚΕΣ ΔΙΑΔΡΟΜΕΣ
                                              • ΟΔΟΙΠΟΡΙΚΑ
                                            • VIDEO
                                              • 4TTV
                                              • ΝΕΑ ΜΟΝΤΕΛΑ
                                              • ΑΓΩΝΕΣ
                                              • CANDID CAMERA
                                            • ΤΕΧΝΟΛΟΓΙΑ
                                              • ΕΙΔΗΣΕΙΣ – ΠΑΡΟΥΣΙΑΣΕΙΣ
                                              • ΛΕΞΙΚΟ
                                            • ΠΕΡΙΒΑΛΛΟΝ
                                              • ΔΟΚΙΜΕΣ – ΠΑΡΟΥΣΙΑΣΕΙΣ
                                              • ΕΙΔΗΣΕΙΣ
                                            • ΑΓΩΝΕΣ
                                              • FORMULA 1
                                              • WRC
                                              • ΔΙΕΘΝΕΙΣ ΑΓΩΝΕΣ
                                              • ΕΛΛΗΝΙΚΟΙ ΑΓΩΝΕΣ
                                            • ΤΙΜΕΣ
                                            • 4T CLASSIC
                                              • ΜΟΝΤΕΛΑ
                                              • ΚΑΤΑΣΚΕΥΑΣΤΕΣ
                                              • ΠΡΟΣΩΠΙΚΟΤΗΤΕΣ
                                              • ΑΓΩΝΙΣΤΙΚΑ ΑΥΤΟΚΙΝΗΤΑ
                                              • ΑΓΩΝΕΣ/ΔΙΟΡΓΑΝΩΣΕΙΣ
                                            • ΑΓΟΡΑ
                                              • ΠΩΛΗΣΕΙΣ
                                              • ΠΡΟΣΦΟΡΕΣ
                                              • ΜΕΤΑΧΕΙΡΙΣΜΕΝΑ
                                            • 2ΤΡΟΧΟΙ
                                              • ΟΔΗΓΟΥΜΕ
                                              • ΕΠΙΚΑΙΡΟΤΗΤΑ
                                              • ΑΓΩΝΕΣ
                                              • CLASSIC
                                            • ΑΡΧΕΙΟ ΤΕΥΧΩΝ
                                            • MENU
                                            • ΤΙΜΕΣ
                                            • 4ΤΡΟΧΟΙ
                                            • ΣΥΓΚΡΙΣΗ
                                            • ΑΝΤΙΠΡΟΣΩΠΕΙΕΣ ΑΥΤΟΚΙΝΗΤΩΝ
                                            • ΦΟΡΟΛΟΓΙΑ
                                            • ΟΔΙΚΗ ΒΟΗΘΕΙΑ
                                            • ΑΣΦΑΛΙΣΗ ΑΥΤΟΚΙΝΗΤΟΥ
                                            • ΧΡΗΣΙΜΑ ΤΗΛΕΦΩΝΑ
                                            • ΚΟΚ

                                            logo footer

                                            coty











                                            • ΕΠΙΚΑΙΡΟΤΗΤΑ
                                            • ΑΓΩΝΕΣ
                                            • ΔΟΚΙΜΕΣ
                                            • CLASSIC
                                            • ΤΙΜΕΣ
                                            • VIDEO
                                            • FORUM
                                            4T FORUM
                                            4T LIBRARY
                                            • ΟΡΟΙ ΧΡΗΣΗΣ
                                            • ΚΑΝΟΝΙΣΜΟΣ FORUM
                                            • ΕΠΙΚΟΙΝΩΝΙΑ
                                            • ΔΙΑΦΗΜΙΣΤΕΙΤΕ ΣΤΟ 4TROXOI.GR
                                            Powered by nxcode.gr