|
Programiranje Java, Perl, VB, ASP, .NET, C, C++, Pascal, Delphi Sponzor: |
|
Alati teme | Način prikaza |
|
20. 12. 2010. | #1 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Nisam 100% siguran da li postoje pozivi koji ti to vraćaju. Što se tiče steka, pogledaj ovde:
Kôd:
jablan@poneti:~$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 20 file size (blocks, -f) unlimited pending signals (-i) 16382 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) unlimited virtual memory (kbytes, -v) unlimited file locks (-x) unlimited Uostalom, javiće se već neki ETF-ovac da pojasni stvari...
__________________
blog |
20. 12. 2010. | #2 |
dinosaurus
Master
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
|
Пар ствари:
1) DevCpp је мање-више мртав. Ако хоћеш неки IDE за gcc под Виндоузом, погледај Code::Block. 2) Ако већ користиш C++ (код који си показао може да буде и С), лепо скини готову библиотеку за матрице (предлажем ову: http://www.boost.org/doc/libs/1_39_0...doc/matrix.htm ) и нема да те боли глава. 3) Веруј ми да не желиш да се бакћеш са проверама величине стека. Ако имаш иоле велику структуру података, мораћеш да је креираш на хипу. Лепота код С++а је што постоје класе (као нпр матрица коју сам ти препоручио) које ти омогуће да креираш објекат на стеку а он интерно алоцира и деалоцира меморију са хипа колико му треба. |
20. 12. 2010. | #3 |
dinosaurus
Master
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
|
Чисто информације ради: на Линуксу то најчешће није случај. Тамо malloc увек врати поинтер који није нула и онда тек кад га дереференцираш он прсне. Више о томе: http://linux.die.net/man/3/malloc
|
21. 12. 2010. | #4 | |
profesionalac
Qualified
Datum učlanjenja: 22.09.2007
Lokacija: Split
Poruke: 111
Hvala: 8
39 "Hvala" u 10 poruka
|
Citat:
I to me zbunjuje jer i mnogim knjiga piše da je. Evo što sam otkrio. Prvo kod kompajiram sa g++ na RHEL sa: [sasa@localhost my_code]$ g++ test.cpp -g -o test && ./test Napisao sam sljedeći code: Kôd:
#include <iostream> int main(int argc, char *argv[]) { double * array; array = NULL; printf("PRVI ALLOC\n"); array = new double[1000000000]; if( NULL == array ) { printf("Nije uspio alocirati.\n"); } } Kôd:
[sasa@localhost my_code]$ g++ test.cpp -g -o test && ./test PRVI ALLOC terminate called after throwing an instance of 'std::bad_alloc' what(): St9bad_alloc Aborted Kôd:
#include <iostream> int main(int argc, char *argv[]) { double * array; array = NULL; printf("PRVI ALLOC\n"); try { array = new double[1000000000]; } catch( std::bad_alloc ) { printf("array ALOCIRANJE NIJE USPIJELO\n"); exit( -5 ); } catch(...) { printf("NESTO NIJE USPIJELO\n"); } } Kôd:
[sasa@localhost my_code]$ g++ test.cpp -g -o test && ./test PRVI ALLOC array ALOCIRANJE NIJE USPIJELO Iz ovoga moga eksperimenta je jasno da je to koncept koji više ne funkcionira. Mene sada zanima, od kada se to izmjenilo? I ako netko ima još kakvih dodatnih informacija može ih iznjeti u vezi ove tematike. |
|
|
|