Non pour quelques raisons:
temp
n'est pas initialisées, il pointe vers un emplacement aléatoire et n'a pas la mémoire allouée pour cela, vous allez juste d'écrire sur une partie aléatoire de la mémoire (et/ou crash).
a
est un char
et vous traitez sa valeur en tant que chaîne (char*
) en utilisant strcpy
(Je suppose que vous vouliez dire (char*)&a
qui est encore mal).
strcpy
copie char
s poursuit en de la source (a
) vers la destination jusqu'à ce qu'il frappe un '\0'
dans la source ... qui pourrait être n'importe où depuis a
est pas une chaîne terminée par un NUL mais char
.
Si vous voulez écrire/ajouter un seul char
à une chaîne/tampon, vous faites juste buffer[position] = character
, où buffer
est un char[]
ou un char*
pointant vers un bloc de mémoire allouée, position
est la position dans la tampon que vous voulez coller le char
, et character
est évidemment que char
. De toute façon, je n'ai aucune idée de ce que vous essayez de faire ou de la logique derrière laquelle vous essayez de faire ce que vous essayez de faire comme ça.
EDIT: Et vous avez ce étiqueté comme C++, pourquoi ne vous utilisez std::string
et std::cin
si vous êtes en fait en C++?
@ObscureRobot: Vous pouvez faire des liens nommés dans les commentaires avec le format [nom] (adresse). – Mankarse
c'est un bogue dans le code de StackOverflow qui transforme automatiquement les réponses courtes en commentaires. Je pensais avoir déjà supprimé ce commentaire, je l'ai supprimé une fois de plus. – ObscureRobot