× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 Programme crash
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
AntiZionist
  Posté le 28/12/2013 @ 19:23 
Aller en bas de la page 
Nouvel astucien

Bonjour tout le monde,

Ci-dessous l'exercice demander:

"Ecrire un programme qui demande à l'utilisateur de saisir 10 entiers stockés dans un tableau ainsi qu'un entier n. Le programme doit rechercher si n se trouve dans le tableau et afficher "L’entier n se trouve dans le tableau à l’indice i" ou "L’entier n ne se trouve pas dans le tableau"."

Voici le programme que j'ai écris:

[code]

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
int array[3];
int n = 0;
int i = 0;
//j'ai changer 10 entrer par 3 pour simplifier.

for(i=0; i < 3; i++){
printf("Enter New integers\n");
scanf("%d", &array[i]);

}
printf("Enter new Value\n");
scanf("%d", n);
if(n == i){
printf("The integer %d is in the table at index %d", n, array[i]);
}
else{
printf("The integer %d is not in the table.", n);
}
getch ();
return 0;
}

[/code]

Le programme apres l'entrer de la nouvelle valeur n, il donne l'erreur suivante:

Exercice-2.exe has stopped working
A problem caused the program to stop working correctly. Please close the program.

Pouvez-vous s'il vous plais m'aider à cmprendre d'où vient ce problème.

Merci d'avance.

Publicité
rdany62
 Posté le 29/12/2013 à 12:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

printf("Enter new Value\n");
scanf("%d", n);

Logique. scanf prend, en second paramètre, un pointeur vers la variable qui recevra l'entrée. Or, "n" est une variable de type int, initialisée à 0.

scanf, après que tu aie appuyé sur [Entrée] pour valider la saisie de "n", lit le contenu de "n" (qui vaut donc 0 car la valeur de "n" n'a pas changé depuis son initialisation) et cherche à écrire à l'adresse mémoire 0, qui n'est pas censée être utilisée par ton programme, c'est une violation d'accès, donc l'OS plante ton programme en y mettant fin avec un message d'erreur (pas très explicite d'ailleurs).

Pour corriger ce problème:

scanf("%d", &n);

Personnellement, quand je code, je vérifie au debuggeur que tout va bien, et quand j'ai un soucis, je mets un point d'arrêt à l'entrée de la fonction qui pose problème, puis je l'exécute en pas à pas jusqu'à trouver la source du problème et ainsi comprendre mon erreur et la corriger.

Voici un tuto pour le debugging sous Code::Blocks (PDF), et un second ici (HTML).

Sous Visual Studio, tu as toutes les infos sur le debugging d'application en code natif (C/C++) ici.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
14,90 €Windows 10 Pro 32/64 bits OEM à 14,90 €
Valable jusqu'au 30 Septembre

Le vendeur sérieux LicenSE-ONLine propose sur Amazon la clé d'activation pour Windows 10 professionnel en français 32 bits / 64 bits à 14,90 €. Cette clé livrée par email fonctionne avec l'outil d'installation et de création de support de Microsoft que vous pouvez télécharger ici ou directement avec l'ISO de Windows 10 Pro. De quoi installer légalement Windows 10 Pro sur un PC. Pour en savoir plus sur l'achat et l'installation d'une clé OEM de Windows 10, suivez les indications de notre dossier pratique.


> Voir l'offre
29,99 €XIAOMI Mi TV Stick à 29,99 €
Valable jusqu'au 28 Septembre

Cdiscount propose en exclusivité la nouvelle version de la clé HDMI XIAOMI Mi TV Stick à 29,99 €. Cette clé HDMI à brancher sur votre TV possède un processeur quadricoeur, 1 Go de RAM et 8 Go d'espace de stockage, le WiFi et le bluetooth. Elle intègre un Chromecast, est compatible Dolby et DTS et est fournie avec une télécommande qui peut être pilotée à la voix. Elle tourne sous Android TV 9.0 et vous allez pouvoir voir facilement Prime Video, Netflix, Disney+, YouTube, Spotify, Moltov, ... sur votre TV Full HD.


> Voir l'offre
209,99 €Box Android Nvidia Shield TV Pro 2019 16 Go avec télécommande à 209,99 €
Valable jusqu'au 02 Octobre

Amazon fait une petite promotion sur la box Android Nvidia Shield TV Pro 2019 16 Go avec sa télécommande à 209,99 € avec le code SMARTHOME. On trouve ailleurs ce pack à partir de 219 €. Compatible FullHD et 4K, vous pourrez utiliser vos applications Android, jouer et regarder des films et des séries en très haute résolution sur votre TV (compatible Kodi, Molotov, Netflix, YouTube ...). La box permet également de jouer à vos jeux PC diffusés en streaming directement avec une très faible latence.  La livraison est gratuite.


> Voir l'offre

Sujets relatifs
Programme spatial
Aide pour un programme simple en C++
Script pour lancer un programme en VBS
Imprimante HP C3180 et programme MS/ DOS
C++ Coder un programme: Le plus grand/petit nombre
Code source programme
Créer programme ou application pour tablette PC
Aide à la réalisation d'un programme
Programme de Pointage en Python
Programme .INI de démarrage automatique d’un DVD
Plus de sujets relatifs à Programme crash
 > Tous les forums > Forum Autres langages