Hoppa till innehåll

Rekommendera inlägg

Skrivet

Har kollat några gånger men inte hittat nån riktig sleep-funktion i något standardbibliotek till C++, tyvärr. Har för mig att jag sett nåt någon gång, men minns inte om det var standardbibliotek eller inte =/

 

Har sett det för SDL, men det känns lite onödigt att blanda in det kanske.

Skrivet (redigerat)

Tack det funkar :cool:

 

EDIT: det funkar men programmer crashar alltid vid exakt 130141 <_<

plz, vad ska jag göra så att det inte crashar?

Redigerat av GutenLOL
Skrivet

Jag skulle nog behöva lite mer information för att kunna hjälpa dig att lösa det. Har du nån kod att visa eller några andra saker som kan hjälpa? Vad menar du med den där siffran?

Skrivet (redigerat)

Ok, jag skriver koden

#include <iostream>
#include <windows.h>

//använder unsigned long för att det ska fungera snabbare

unsigned long int tal;

unsigned long int rakna();

int main()
{
   rakna();
   return 0;
}

unsigned long int rakna()
{
        tal++;
        std::cout << tal;
        std::cout << " ";
        if(tal==130000)
        {
                       tal=1;
        }
        Sleep(0.1);
        rakna();
}

den skriver alltså ut tal som blir högre och högre. Men när den kommer till exakt 130141 utskrivna tal krachar den.

Tanken är att man ska få datorn att ta upp allt minne. Programmet gör jag bara för skojs skull :)

Redigerat av GutenLOL
Skrivet (redigerat)

hmm vet inte om det här fungerar.. men försök.

 

skapa variabeln:

unsigned long tal2 = 1;

 

och byt ut if slingan till en while slinga.

ta bort allt i slingan och skriv in:

std::cout << tal + tal2 << ".";
std::cout << " ";
Sleep(0.1);
tal2++;

 

Hoppas du förstår..

Kan räkna ganska mycket bara man lägger till det maximala värdet av unsigned long int på din dator till räknaren för så många gånger man orkar.

Redigerat av Vitdom
Skrivet (redigerat)

Den fungerar nu, men den skriver bara ut tal. Jag hade tänkt att jag skulle använda rekursion och ta upp allt minne genom att anropa samma funktion om och om igen.

 

PS. Jag kan inte skriva förrens på söndag igen.

Redigerat av GutenLOL
Skrivet

använd pointers för att ta upp mer och mer minne på heapen bara!

 

char * cPtr = new char tex. skapar en char på heapen, vilket inte försvinner förrän du startar om datorn, även om du stänger av programmet. Eftersom den skapas i minne som ligger "utanför programmet" som kallas heap. Det som är "innanför", som programmet kan ta hand om och tar bort oanvända variabler kallas Stack.

 

Så egentligen det enda du behöver göra är att lägga massa saker på heapen.

Gå med i konversationen

Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.

Gäst
Svara på det här ämnet...

×   Klistrade in som rich text.   Klistra in som vanlig text istället

  Endast 75 emojis är tillåtet.

×   Din länk har automatiskt inbäddats.   Visa som en länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigeraren

×   Du kan inte klistra in bilder direkt. Ladda upp eller infoga bilder från URL.

×
  • Skapa ny...