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

Ilias95

Members
  • ΜΗΝΥΜΑΤΑ FORUM

    653
  • ΜΕΛΟΣ

  • ΤΕΛ. ΕΠΙΣΚΕΨΗ

ΑΝΤΙΔΡΑΣΕΙΣ

269 Excellent

Σχετικά με Ilias95

  • Κατάταξη
    Senior Member

Πληροφορίες προφίλ

  • Φύλο
    Άνδρας

Πρόσφατες Επισκέψεις

Η εμφάνιση επισκεπτών είναι απενεργοποιημένη ή δεν έχετε πρόσβαση σε αυτή.

  1. Αν δεν θες να έχεις relationships κτλ η LMDB είναι μια απλή και πολύ γρήγορη key-value database. Το εκτελέσιμο της είναι κάτω από 40KB αν θυμάμαι καλά και χωράει ολόκληρη σε μια L1 CPU cache. Ολόκληρη η βάση (aka όλοι οι πίνακες/δέντρα) αποθηκεύονται σε ένα single αρχείο. Με ένα γρήγορο googlάρισμα βλέπω ότι υπάρχουν wrappers για .NET οπότε θα μπορούσες να δοκιμάσεις αν σου κάνει.
  2. Άρα εννοείς backup. Πάντως και desktop εφαρμογή να κάνεις, μπορείς (πρέπει!) απλά να έχεις ένα καλό backup plan. Για το GDPR δεν έχω ιδέα πρέπει να ρωτήσεις κάποιον που να ξέρει. Μπορεί να λέω και βλακείες.
  3. Αυτά τα δύο που έκανα bold δεν θα έπρεπε να βρίσκονται στην ίδια πρόταση αλλιώς κοροϊδεύεις ή τον πελάτη ή τον εαυτό σου. Κατά τα άλλα δεν έχω άποψη. Good luck! Edit: Και μιας και μιλάμε για δεδομένα πελατών, πρέπει να λάβεις υπόψιν σου GDPR κτλ.
  4. <dm> I discovered that you'd never get an answer to a problem from Linux Gurus by asking. You have to troll in order for someone to help you with a Linux problem. <dm> For example, I didn't know how to find files by contents and the man pages were way too confusing. What did I do? I knew from experience that if I just asked, I'd be told to read the man pages even though it was too hard for me. <dm> Instead, I did what works. Trolling. By stating that Linux sucked because it was so hard to find a file compared to Windows, I got every self-described Linux Guru around the wo
  5. Το buffer είναι array. Η C έχει arrays και οι δείκτες δεν είναι arrays. Περισσότερα σχετικά με το τελευταίο γράφτηκαν σε αυτό το θέμα: https://www.insomnia.gr/forums/topic/640136-c-συνάρτιση-και-κλήση-από-main/ Edit: Αν εννοείς το πέρασμα σαν παράμετρος στις συναρτήσεις, τότε σε αυτή την περίπτωση αυτό που περνιέται είναι ένας pointer στο πρώτο στοιχείο του array.
  6. Δηλαδή σαν τι ζημιά μπορεί να κάνει στον υπολογιστή του; Πώς ακριβώς θα πάρει την CPU στο χέρι;
  7. Αν αντί για char onoma[]="Thodoris" είχες γράψει char *onoma="Thodoris" τότε το string literal "Thodoris" θα υπήρχε αυτούσιο σε κάποιο section του binary και όταν φόρτωνες το πρόγραμμα θα γινόταν map στη μνήμη σαν read-only. Η διαφορά οπότε είναι ότι θα ήταν non-modifiable. PS. Έτσι όπως το έγραψες το "Thodoris" δεν είναι string literal αλλά array initializer και άρα δεν ισχύει αυτό που γράφω παραπάνω.
  8. Ένα άλλο ενδιαφέρον σημείο στο οποίο εμμέσως αναφέρθηκε και ο imitheos είναι όταν περνάς ένα 2-D array σε function. Το: void foo(int x[][3]); ΔΕΝ γίνεται να αντικατασταθεί με: void foo(int **x); Η απάντηση στο γιατί βρίσκεται εδώ: http://c-faq.com/aryptr/pass2dary.html
  9. Έγραψες και μετά το έσβησες ότι "πάντα γίνεται decayed σε pointer". Προφανώς και δεν ισχύει αυτό. Αυτό που σου έδειξα με το sizeof είναι ακριβώς ένα παράδειγμα του πότε δεν γίνεται. Αν γινόταν τότε το sizeof(array) θα ήταν πάντα == sizeof(void *). Το sizeof(&arr) δεν ξέρω που κολλάει πραγματικά. Εδώ ζητάς explicitly έναν pointer και τον συγκρίνεις με έναν άλλον pointer. Προφανώς και θα έχουν το ίδιο size αλλά τι σχέση έχει αυτό; Όχι δεν το ήξερα. Καλά που ήρθες και μου το είπες. Επίσης μάντεψε τι. Μπορείς να γράψεις int *p = 0xabcd; αλλά δεν μπορείς να γράψεις int arr[] = 0xab
  10. @Fortistis Ναι, το α και το β είναι διαφορετικά μεταξύ τους. Ο compiler "δεν κάνει evaluate το [] σε pointer" όπως λες. Αυτό που γίνεται όταν χρειάζεται σε κάποια context είναι το όνομα του array να γίνεται decayed σε έναν pointer που δείχνει στο πρώτο στοιχείο. Γενικά επειδή αφήνεις να εννοηθεί συνέχεια ότι arrays και pointers είναι το ίδιο πράγμα, εδώ είναι μερικά παραδείγματα που μπορώ να σκεφτώ πρόχειρα: int arr[] = {1, 2, 3}; // LEGAL int *p = {1, 2, 3}; // ILLEGAL int *p = arr; p = 0xabcd; // reassignment is LEGAL int arr[] = {1, 2, 3}; arr = 0xabcd; // reassignment i
  11. Εντάξει, είναι προφανές ότι απλά θέλεις να έχεις δίκιο. Όχι. Ο μόνος λόγος που δεν μπορείς να επιστρέψεις array από function στη C είναι γιατί έτσι αποφάσισαν οι language designers. Θα μπορούσαν κάλλιστα να είχαν αποφασίσει να γίνεται. Όπως αποφάσισαν για τα structs. Γιατί structs μπορείς να επιστρέψεις. Arrays όμως όχι. Δεν είναι σωστό επειδή ... το λες εσύ. Οκ... Από περιέργεια googlαρε "C can I return array from function?" και διάβασε τις απαντήσεις για να μη νομίσεις ότι τα βγάζουμε από το μυαλό μας. Δεν ξέρω αν το κατάλαβες αλλά αυτό που ήρθες και έγραψες σε αυτ
  12. Έτσι μου φάνηκε από το ύφος σου, αν κατάλαβα λάθος ζητώ συγγνώμη. Κανείς δεν είπε ότι δεν μπορείς να επιστρέψεις έναν pointer σε οποιαδήποτε virtual διεύθυνση μνήμης θες. Και κανείς δεν είπε ότι τα δεδομένα που βρίσκονται σε αυτή τη διεύθυνση μνήμης δεν μπορείς να τα κάνεις interpret σαν array ή σαν struct ή σαν οτιδήποτε άλλο θες! Αυτό που γράφτηκε παραπάνω είναι ότι δεν μπορείς να επιστρέψεις array από function. Και έτσι είναι, τι να κάνουμε; Να αλλάξουμε το specification και τους compilers; int [] foo(void); // ILLEGAL struct bar foo(void); // LEGAL Στην C μπορείς να
  13. Common sense. Δεν χρειάζεται να αρπαζόμαστε όμως. Κουβέντα κάνουμε. Αυτό που έγραψε είναι σωστό. Στην C δεν μπορείς να επιστρέψεις array από συνάρτηση.
  14. Προφανώς εννοεί ότι δεν μπορείς να επιστρέψεις ένα copy του array, όταν από την άλλη μπορείς να επιστρέψεις ένα copy ενός struct.
  • Δημιουργία νέου...

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.