INTERLOCUTEUR 1: Réglons maintenant ce dernier programme. Et cette fois, nous allons allouer explicitement une partie de mémoire dans laquelle l' l'entrée de l'utilisateur sera stocké. Pour ce faire, nous allons affiner sur cette première ligne de code où nous avons déclaré s auparavant d'être une star char. Cette fois, nous allons re-déclarer comme suit - carbonisation de la console 16, par exemple, ferme la parenthèse. En d'autres termes, nous allons déclarer s à pas plus être une adresse d'un personnage, mais plutôt un ensemble de 16 caractères. De cette façon, l'utilisateur peut saisir jusqu'à 15 caractères et toujours laisser de la place pour un terminateur null. Passons à épargner, Compiler, et exécuter ce programme. Faire scanf2 point barre scanf2. Voyons maintenant saisissez une chaîne comme bonjour, et nous remercions pour le bonjour. Maintenant, il ya toujours un problème. Je ne tapé dans bonjour, qui est seulement cinq caractères, plus 1 pour le nul terminateur. Il nous laisse avec seulement un besoin de six octets. Mais malheureusement, nous ne attribué 16 au total. Donc, si l'utilisateur en fait les types de 16 caractères, ou 17, ou plusieurs centaines de personnages, nous ne sommes toujours pas aller à avoir assez de place dans la mémoire pour la l'entrée de l'utilisateur. Et en fait, c'est ce qui rend obtenir les commentaires de l'utilisateur afin difficile en général. Et en effet, c'est pourquoi nous avons mis en la fonction de chaîne entrer en premier place dans la bibliothèque de CS50 - de comprendre comment gérer les des situations où l'utilisateur saisit dans plus de caractères que nous initialement prévu. Franchement, sans complètement la réécriture de ce programme, il n'y a pas de solution propre. Au contraire, ce que nous aurions à faire est d'obtenir un caractère à partir de l'utilisateur un à la temps, encore et encore. Et à chaque point si nous nous rendons compte que nous sommes de mémoire, nous aurions au ce point revenir dans et réaffecter un peu plus de mémoire, copiez l'utilisateur de entrée précédente de notre premier morceau de mémoire dans le nouveau, plus grande part de la mémoire. Et puis répéter ce processus encore et nouveau jusqu'à ce que l'utilisateur se fait fournir son entrée.