Thread View: pl.comp.lang.c
4 messages
4 total messages
Started by Borneq
Wed, 18 May 2016 09:18
Jak sprawdzić czy new przydzielił mi pamięć?
Author: Borneq
Date: Wed, 18 May 2016 09:18
Date: Wed, 18 May 2016 09:18
10 lines
1070 bytes
1070 bytes
#include <stdint.h>
int main()
{
uint8_t *bigbuf;
bigbuf = new uint8_t[4000000000*1024 * 1024 * 1024];
return 0;
}
Ani nie ma wyjątku ani bigbuf nie jest NULL. Co zrobić?
Re: Jak sprawdzić czy new przydzielił mi pamięć?
Author: Borneq
Date: Wed, 18 May 2016 09:22
Date: Wed, 18 May 2016 09:22
14 lines
1274 bytes
1274 bytes
W dniu 18.05.2016 o 11:18, Borneq pisze:
> #include <stdint.h>
>
> int main()
> {
> uint8_t *bigbuf;
> bigbuf = new uint8_t[4000000000*1024 * 1024 * 1024];
> return 0;
> }
>
> Ani nie ma wyjątku ani bigbuf nie jest NULL. Co zrobić?
Jest wyjątek, a ta duża liczba po prostu się zawijała i okazywała się
mniejszą.
Re: Jak sprawdzić czy new przydzielił mi pamięć?
Author: M.M.
Date: Thu, 19 May 2016 06:38
Date: Thu, 19 May 2016 06:38
17 lines
1852 bytes
1852 bytes
On Wednesday, May 18, 2016 at 11:22:13 AM UTC+2, Borneq wrote:
> W dniu 18.05.2016 o 11:18, Borneq pisze:
> > #include <stdint.h>
> >
> > int main()
> > {
> > uint8_t *bigbuf;
> > bigbuf = new uint8_t[4000000000*1024 * 1024 * 1024];
> > return 0;
> > }
> >
> > Ani nie ma wyjątku ani bigbuf nie jest NULL. Co zrobić?
>
> Jest wyjątek, a ta duża liczba po prostu się zawijała i okazywała się
> mniejszą.
bigbuf = new uint8_t[4000000000ull * 1024 * 1024 * 1024];
Re: Jak sprawdzić czy new przydzielił mi pamięć?
Author: Dawid Bautsch
Date: Sun, 22 May 2016 17:40
Date: Sun, 22 May 2016 17:40
3 lines
1714 bytes
1714 bytes
Tak jak wskazał Borneq - zmienna nie jest w stanie przechować wartości tak wielkiej, więc leci od zera. Inna sprawa- taka konstrukcja nie ma sensu, przecież już pierwsza wartość (4000000000) to niecałe 4 GB. Pomnożenie tego przez 1024 x 1024 x 1024 da nam jakąś kosmiczną wartość. Żaden system nie przydzieli takiej pamięci w jednym ciągłym bloku.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads