Il n'y a pas d'erreur mais je m'attendais à 10 valeurs mais j'en ai eu seulement une. Le ci-dessous est ma fonction de création et d'affichage.N'affichera pas plus d'une valeur
void create()
{
int random;
for (int i = 0; i < 10; i++)
{
struct node *new_node, *current;
new_node = new node;
random = randomNum();
new_node->data = random;
new_node->next = NULL;
if (start == NULL)
{
start = new_node;
current = new_node;
new_node = NULL;
}
else
{
current->next = new_node;
current = new_node;
}
}
}
void display()
{
struct node *new_node;
new_node = start;
while (new_node != NULL)
{
cout << new_node->data << "->";
new_node = new_node->next;
}
}
De quoi ai-je besoin pour changer?
Si le démarrage est NULL, où ne courant initialisées? – Steve
_Je a essayé d'initialiser 'current-> next = NULL'_ Avez-vous lu le message d'avertissement? Il se plaint de' curre nt' (qui n'est pas initialisé), pas 'current-> next'. Et la raison d'un tel avertissement est: si la condition dans 'if (start == NULL)' est fausse - le bloc 'else' est exécuté, et' current-> next = new_node; 'est UB en raison d'une déréférence du pointeur non initialisé (votre tentative de correction de 'current-> next = NULL' est UB pour la même raison). –
@Wing Hang Khoo Est-ce une erreur ou un avertissement? Si c'est un avertissement, vous pouvez l'ignorer. –