Le code suivant donne "Erreur de bus: 10", bien que cela fonctionne parfaitement quand n est changé à 30. Je ne vois vraiment pas de raison unique pour cette erreur. Pourquoi pensez-vous que cela se passe?std :: La fonction de tri donne "Erreur de bus: 10"
#include <algorithm>
#include <cstdio>
#define MAX 100000
using namespace std;
struct suffix
{
int cur;
};
suffix suffixes[MAX];
bool cmp(suffix a, suffix b)
{
return (a.cur <= b.cur);
}
int main()
{
int n = 1000;
sort(suffixes,suffixes + n,cmp);
return 0;
}
Quelle plate-forme/système d'exploitation utilisez-vous? Combien de RAM y a-t-il dans votre machine? – Drop
MacOS, processeur double cœur Intel Core i5 à 2,7 GHz, 8 Go de RAM – Transcendental
'sort' nécessite une fonction de comparaison qui effectue un tri monotone. Changez <= 'à' <'et voyez si ça aide. Voir http://stackoverflow.com/questions/2385690/sorting-only-using-the-less-than-operator-compared-to-a-trivalue-compare-functio – RedX