J'apprends le C et je l'ai testé en utilisant une bibliothèque - la bibliothèque openssl pour être exacte. J'ai réussi à faire fonctionner la fonction SHA. Puis, lorsque j'ai déplacé le code de travail (posté ci-dessous) en dehors de la méthode principale vers une méthode que j'ai appelée (littéralement le même code), cela a créé une erreur de segmentation lorsque j'ai essayé de l'exécuter. Je pensais avoir compris que les erreurs de segmentation se produisaient lorsque nous essayons d'accéder à des emplacements mémoire inaccessibles. Mais je suis confus ici - le code est identique! Toute aide s'il vous plaît?Erreur de segmentation lors du déplacement du code en dehors de main()
0
A
Répondre
0
Je suppose que le problème est que result
est censé stocker la sortie, mais c'est juste un pointeur non initialisé.
Selon the documentation:
SHA1() calcule le message SHA1 des octets n à d et le place dans md (qui doit avoir l'espace pour SHA_DIGEST_LENGTH == 20 octets de sortie). Si md est NULL, le résumé est placé dans un tableau statique.
Vous aurez envie de faire quelque chose comme ceci:
unsigned char *result = malloc(SHA_DIGEST_LENGTH);
// make sure to free(result) eventually
Ou tout simplement le faire sur la pile si vous voulez que ce soit plus simple et ne pas besoin de retourner le résultat.
unsigned char result[SHA_DIGEST_LENGTH];
il a travaillé très probablement avant parce que result
vient de se passer pointer à un emplacement de mémoire que votre programme a été autorisé à accéder.
Questions connexes
- 1. Segmentation Erreur lors du déplacement du répertoire externe binaire
- 2. Erreur lors du déplacement Erreur de déplacement Drupal
- 3. 404 erreur lors du déplacement de la requête ajax en dehors de document.ready
- 4. erreur de segmentation attendue lors de l'incrémentation du pointeur NULL
- 5. Erreur de segmentation lors de l'allocation du deuxième module
- 6. Erreur lors du déplacement des fichiers téléchargés
- 7. 403 Erreur lors du déplacement du code de l'application Java vers Android à l'aide de JSoup
- 8. Erreur de segmentation lors de l'exécution du programme shell simple
- 9. Erreur de segmentation lors de la vérification du noeud NULL
- 10. Reproduction d'un bogue dans Qt: erreur de segmentation lors du débogage du code
- 11. Erreur de segmentation lors du renvoi d'une structure
- 12. Segmentation Erreur lors du retour de la fonction principale
- 13. Erreur lors de l'exécution: Erreur de segmentation
- 14. Problème de segmentation du code Bitonicsort C
- 15. Segmentation du code en plusieurs fichiers source
- 16. 'Segmentation Fault' lors du recodage de memset
- 17. Erreur lors de la distribution du servlet: "main" à javax.servlet.Servlet
- 18. Erreur de segmentation en raison de la taille du tableau?
- 19. Erreur d'affichage lors du déplacement de la caméra dans opengl
- 20. Erreur lors du déplacement fichier téléchargé en utilisant jQuery & Php
- 21. Erreur de segmentation lors du déploiement au combiné
- 22. Erreur lors de l'exécution du code sélénium
- 23. extension de fichier spécifique Erreur lors du déplacement
- 24. Erreur de segmentation inattendue du vendeur itinérant
- 25. Erreur de segmentation lors du passage du tableau d'entiers à la fonction
- 26. Flicker Sprite lors du déplacement de libgdx
- 27. Python PyGILState_ {Ensure/Release} provoque une erreur de segmentation lors du retour en C++ du code Python
- 28. Désactiver l'animation lors du déplacement de CALayers
- 29. Erreur lors de l'exécution du code
- 30. htaccess problème lors du déplacement du site
merci, travaillé comme vous l'avez suggéré! – user3475774