Je reçois un tampon char * qui a la longueur de 10. Mais je veux concéder que tout le contenu de mon struct, qui ont une variable char *.
real[i].buffer += buffer;
3 Réponses :
Vous pouvez utiliser strcat (3) code>
à concaténer des cordes. Assurez-vous d'avoir suffisamment d'espace à la destination! P>
Notez que juste appeler strcat () code> Un tas de fois entraînera un Schlemiel l'algorithme du peintre . Garder une trace de la longueur totale de votre structure (ou ailleurs, si vous préférez) vous aidera à sortir avec cela. P>
Utilisez toujours strncat code> (également inclus dans le lien ci-dessus) et non
strcat code>.
Toujours? Cela semble un peu lourd. "Faites attention" est toujours un bon conseil, mais je suis d'accord avec ça. Voici une question et quelques réponses concernant quand utiliser chacune: Stackoverflow.com/Questtions/6491038/...
Si vous ne savez pas pourquoi vous utilisez strcat code>, ce qui est que les deux tampons sont sous garanties prédéterminées, vous devez toujours utiliser
strncat code>. Quelqu'un commençant par C sera toujours mieux en train d'utiliser
strncat code> sur
strcat code> simplement parce que le risque ne vaut pas la récompense imperceptielle. Compte tenu de ce que l'avantage est réellement, je dirais même que vous n'allez jamais en tirer profit, à moins que vous n'ayez écrit quelque chose d'incroyablement faible et que les contrôles préalables ont déjà été effectués.
Je ne suis pas clair. Voulez-vous:
réel [0] .buffer code> ou li>
- Voulez-vous que chaque tampon de caractères soit pointue par un autre
réel [i] .buffer code> ou li>
- autre chose d'autre? Li>
ul>
Vous devrez attribuer suffisamment d'espace pour la copie du tampon: p> xxx pré> p>
En général, procédez comme suit (ajustez et ajoutez une erreur de vérification des erreurs comme vous le trouvez)