Qu'est-ce que l'erreur "Abort appelée" dans hackerrank?

Qu'est-ce que l'erreur

Vikash Dubey, ingénieur en développement logiciel chez Flipkart (depuis 2018)

Cela se produit dans les conditions suivantes,

1. Vous utilisez la macro "assert" et l'expression de l'argument devient fausse. Par exemple, assert (n <= 10); and somehow n is greater than 10 then abort() is called.

2. Vous utilisez un conteneur comme une pile, etc. en C ++ et sa taille devient très importante (c'est-à-dire un dépassement de capacité).

Raman Sharma

a étudié à Jaypee Institute of Information Technology, Noida
Répondu le 6 juin 2017

Il y a deux causes possibles d'erreur "Abort appelé":

Vous utilisez un conteneur comme vector, array, stack etc. en C ++ et la taille du conteneur devient très grande.

Exemple: int a [1000000] sera suffisamment de mémoire, vous n'obtenez aucune erreur, mais dans un [10000] [10000] prendra énormément de mémoire, donc affiche une erreur "Abort appelé".

Deuxièmement, si vous utilisez la macro "assert" et si l'expression de l'argument de cette macro avec une forme fonctionnelle est égale à zéro (c.-à-d. Que l'expression est fausse), un message est écrit sur le périphérique d'erreur standard et l'abandon est appelé. exécution du programme.

Exemple: int x = -5;

assert (x> = 0) dans ce cas, abort () est appelé;

int x = 10;

affirmer (x> 9) dans ce cas, l'exécution se poursuit.

Manohar Reddy Poreddy

Top 100 rang. 33 projets logiciels, 40 + langages de programmation
Répondu le 14 juin 2017 · L'auteur a 1k réponses et 1.7m répond aux vues

En programmation dynamique, nous pourrions obtenir cette erreur.

Nous utilisons un tableau "mémo" pour la mémo, c'est-à-dire pour stocker les valeurs des opérations précédemment calculées

Selon le problème, il peut s'agir d'une matrice 1-D ou 2D.

Par exemple:

La recherche de min pièces pour obtenir une somme totale S nécessite un tableau de notes 1-D

Recherche de LCS de 2 chaînes, nécessite un tableau de notes 2D

Maintenant, si nous choisissons 2-D au lieu d'un tableau 1-D, nous gaspillons beaucoup de mémoire.

Par exemple, nous avons besoin de 1000 entiers non signés, donc A [1000] ou A [1001] suffiront, cependant si vous allouez un tableau 2D A [1000] [1000] ou A [1001] [1001], ce sera énorme mémoire.

Sur HackerRank, dans ce cas, nous obtenons "Abort appelé".

Dans d'autres endroits, il pourrait s'agir de RTE (Run Time Error).

J'espère que ça a aidé.

Ankit Anand

Senior Information Designer chez Interra Systems (2017-présent)
Répondu le 21 déc. 2017 · L'auteur a 120 réponses et 41.6k réponses vues

probablement pour une raison quelconque, l'opération que vous exécutiez a été rappelée et n'a pas réussi à se terminer.

HackerRank, Programmation dynamique (DP), Programmation compétitive, Programmation informatique