Βίντεο: Πώς μπορώ να δεσμεύω δυναμικά μνήμη με την C; 2024
Δεν είναι τόσο μεγάλο ζήτημα όσο ήταν στην εποχή των μικροϋπολογιστών, αλλά η σπατάλη μνήμης θα πρέπει να εξακολουθεί να αποτελεί ανησυχία για κάθε προγραμματιστή C. Αν και μπορείτε να υποστηρίξετε τον εαυτό σας για 1, 024 χαρακτήρες εισόδου, οι πιθανότητες είναι καλές που οι χρήστες του προγράμματος σας μπορεί να μην είναι όλοι ο Stephen King.
Σε αυτή την περίπτωση, μπορείτε να μειώσετε τα αιτήματα μνήμης αφού τα δημιουργήσετε. Η επιπλέον μνήμη μπορεί στη συνέχεια να επιστραφεί στο λειτουργικό σύστημα σε αυτό που θεωρείται κοινή ευγένεια.
ΔΙΕΥΘΥΝΣΕΤΕ ΕΝΑ ΜΕΓΑΛΟ
#include#include
#include
int κύρια ()
{ input * char *;
int len;
είσοδος = (char *) malloc (sizeof (char) * 1024);
αν (input == NULL)
{
βάζει ("Δεν είναι δυνατή η εκχώρηση buffer! Ω όχι!");
έξοδος (1);
}
βάζει ("Πληκτρολογήστε κάτι μακρύ και βαρετό:")?
fgets (είσοδος, 1023, stdin);
len = strlen (είσοδος);
εάν (realloc (είσοδος, sizeof (char) * (len + 1)) == NULL)
{ βάζει ("Δεν είναι δυνατή η ανακατανομή του buffer!
έξοδος (1);
}
βάζει ("Ανακατανεμημένη μνήμη.");
βάζει ("Έχετε γράψει:")?
printf ("% s" n "