Piszę kod na sortowanie przez wstawianie w Microsoft Visual Studio 2013:
#include <stdio.h>
#include <stdlib.h>
void wstawianie(int tab[], int ilosc)
{
int i, j,x;
for(i=1;i<ilosc;i++)
{
j=i; x=tab[j];
while(tab[j-1]>x && j>0)
{
tab[j]=tab[j-1];
j--;
}
tab[j]=x;
}
}
int main(int argc, char** argv) {
int tab[500000];
int ilosc,i;
printf("podaj ilosc: ");
scanf("%d", &ilosc);
for(i=0;i<ilosc;i++)
tab[i]=rand()%10;
wstawianie(tab, ilosc);
for(i=0;i<ilosc;i++)
printf("%d ",tab[i]);
system("pause");
return 0;
}
Po skompilowaniu wyświetla się błąd
Unhandled exception at 0x00A71657 in ProjektSortowanie.exe: 0xC00000FD: Stack overflow (parameters: 0x00000000, 0x00222000).
Po skompilowaniu w NetBeansie działa bez zarzutu.. A w MVS tylko dla mniejszych danych - do [50 000]. Dlaczego tak się dzieje i co można na to zaradzić?
dodanie znacznika <code class="none">
- @furious programming