Was ist falsch an meinem Programm? Es funktioniert gut auf meinem PC, aber in IDEone gibt es die korrekte Ausgabe aber zeigt Laufzeitfehler. Bitte helfen Sie.Warum zeigt IDEone einen Laufzeitfehler an, obwohl er die Ausgabe erhalten hat?
#include<bits/stdc++.h>
using namespace std;
struct student
{
int vote;
};
int main()
{
int t;
cin>>t;
while(t--)
{
int count=0;
int n;
cin>>n;
vector <int> a(n);
student s[n];
int k;
cin>>k;
for(int i=1;i<=n;i++)
{
s[i].vote=0;
}
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
int temp=0;
for(int i=1;i<=n;i++)
{
if(a[i] != i)
{
temp=a[i];
s[temp].vote++;
}
}
for(int i=1;i<=n;i++)
{
if(s[i].vote==k)
{
count++;
}
}
printf("%d\n",count);
}
return 0;
}
Dies ist der Fehler in IDEone gezeigt: -
Fehler in `./prog ': free(): ungültige nächste Größe (schnell): 0x085cca10
Geben Sie -4 als Eingabe ein und sehen Sie, was passiert. :-) Geben Sie auch -2 als nächsten Parameter ein. –
Sieht aus wie ein gutes Thema, um einen Debugger zu verwenden. Durchlaufen Sie den Code und bestimmen Sie, welche Anweisung das Problem verursacht. Lassen Sie uns wissen, welche Aussage der Schuldige ist. –
BTW, Variable Length Arrays (VLA) sind keine C++ Sache (die Aussage 'Student s [n]'. Verwenden Sie einen 'std :: vector' oder * dynamisch den Speicher zuweisen mit' operator new' *. –