2. Σε άλλες γλώσσες προγραμματισμού, όπως Python ή Perl που είναι dynamic, πόσο είναι το μεγιστο (θεωρητικό) μέγεθος ενός string; Έχει σχέση με το μέγεθος της μνήμης και με την αρχιτεκτονική 32-bit/64-bit;
Συντονιστής: konnn

medigeek έγραψε:Πως θέτω ένα string με unlimited size (απεριόριστο μέγεθος) σε γλώσσα C; Ρωτάω επειδή σύμφωνα με άρθρο του bbc το ονοματεπώνυμο πρέπει να είναι.. αρκετά μεγάλο.
medigeek έγραψε:Σε άλλες γλώσσες προγραμματισμού, όπως Python ή Perl που είναι dynamic, πόσο είναι το μεγιστο (θεωρητικό) μέγεθος ενός string; Έχει σχέση με το μέγεθος της μνήμης και με την αρχιτεκτονική 32-bit/64-bit;

konnn έγραψε:
Υποθέτω πως ορίζεις ένα δείκτη σε πίνακα char με αρχικό μέγεθος π.χ Length=NULL(μάλλον δεν ορίζεις καθόλου μέγεθος απλά το Length θα παίξει το ρόλο του μεγέθους) όπου το τελευταίο συγκρίνεται με το όνομα του επιβάτη και γίνεται copy στον πίνακα τον αρχικό.....περίπου.


simosx έγραψε:1. Θα ήταν καλό να αλλάξεις τον τίτλο σε κάτι στα ελληνικά
simosx έγραψε:Αυτό που κάνεις είναι δυναμικά ζητάς τη μνήμη που χρειάζεται.
Υπάρχουν πάντα ζητήματα με το πόση μνήμη θα χρειαστείς. Με αλλαγή του αλγορίθμου μπορείς να τα ξεπεράσεις.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
std::string mystring;
cout << "Please enter your name: ";
std::getline(std::cin, mystring);
cout << "Your name is: " << mystring << endl;
}#include <stdio.h>
int main(){
char *line = NULL;
size_t len = 0;
size_t read = 0;
printf("Please enter your name: ");
read = getline(&line, &len, stdin);
printf("Your name is: %s\n", line);
return(0);
}
char *line = NULL;
read = getline(&line, &len, stdin);

#include <stdio.h>
int main(){
char input[] = "";
char *line = input;
size_t len = 0;
size_t read = 0;
printf("Please enter your name: ");
read = getline(&line, &len, stdin);
printf("Your name is: %s\n", line);
return(0);
}
medigeek έγραψε:Χμ.. μπαίνουμε σε πολύ βαθιά (για μένα) νερά, καλύτερα να κανουμε μια μικρή παύση και να το αφήσουμε για πιο μετά -- ήδη αυτά που κατάφερα ήταν μισό copy-paste, μισά δικά μου από διάβασμα οδηγών...
#include <stdio.h>
int main()
{
char string1[20];
puts ("Please enter a string of 20 characters or fewer.");
scanf ("%20s", string1);
printf ("\nYou typed the following string:\n%s\n\n", string1);
return 0;
}

έγραψε:Αυτό που κάνεις είναι δυναμικά ζητάς τη μνήμη που χρειάζεται.
