Je voudrais savoir s'il est possible d'allouer dynamiquement de la mémoire quand/avant d'utiliser un scanf. Cela signifierait qu'il n'est pas nécessaire de donner une taille de char *
lors de l'initialisation. Au lieu de cela, la quantité de mémoire nécessaire serait allouée en fonction de la taille de la chaîne d'entrée (ce qui signifie: après avoir entré l'entrée).C: allocation dynamique lors d'un scanf
Actuellement je ne trouve pas d'autre solution que d'allouer une quantité de mémoire spécifique avant d'avoir l'entrée, donc avant de connaître la taille de l'entrée:
char str[10];
scanf("%s", str);
Et je sais que ce n'est pas sûr: si l'entrée est plus long que 10 caractères, le programme écrira sur la mémoire non allouée, ce qui peut causer des erreurs de segmentation ou des choses comme ça.
Qu'est-ce qui vous empêche d'écrire une fonction qui fait exactement ce que vous voulez? (De plus, votre déclaration pour 'str' crée un tableau de dix pointeurs, ce qui n'est probablement pas ce que vous vouliez. –
Ne pas utiliser 'scanf' pour la saisie de l'utilisateur en premier lieu. – melpomene
@DavidSchwartz Mes compétences ne sont pas assez élevées pour cela. J'ai essayé de lire les bibliothèques mais j'ai compris à peu près rien de ce qui y était écrit (sauf les commentaires :)) – nounoursnoir