|
14.01.2006., 20:24 | #1 |
Registered User
Datum registracije: Jan 2006
Lokacija: Zagreb
Postovi: 23
|
malo C++!
Ponajprije vas sve pozdravljam. Imam nekoliko pitanja za vas, a ponajprije bih vas upitao( sve vezano za C++): Citam knjigu izdanja 2001. godine pa je li bilo nekih velikih promjena? Zanima me sto je stack(stog) i heap(hrpa) u memoriji? Koliko sam ja skuzio stack je memorija koju program(neovisno o mome kodu) rezervira za staticne objekte, a heap je javna memorija koja je poznata svim programima u to vrijeme(OS-u, igrama,...-> za dinamicne objekkte). Jesam li u pravu? I vezano za kreiranje dvodimenzionalnog polja koristeci pointere: u jednom dijelu u knjizi pise ovako : char (*a)[4] = new char[n][4]; =>ali istice da je nuzno da bude (*a)[4], a ne *a[4] I dok me u to uvjerio u jednom dijelu knjige kaze: char *a[] = {"ponedjeljak", "utorak", "srijeda", "..."}; =>zar nebi trebalo po gore navedenom ovdije zamijenit *a[] sa (*a)[] ? Molim vas komentirajte mi ove primjere i kazite sto vi radije i koju metodu koristite? Ako znate ikoji od ovih odgovora(netrebate sve) dajte odgovorite ili bar dajte svoje misljenje! Informacija se najvise cijeni! |
16.01.2006., 09:20 | #2 |
Premium
Datum registracije: Nov 2005
Lokacija: Rijeka
Postovi: 455
|
Nije se mijenjalo ništa, C++ je i dalje onaj dobri stari . Što se tiče ovoga tvoga pitanja nisam baš previše radio sa time pa bi morao malo pogledati (sad sam na poslu pa se nemogu baš tako zajebavati) a inače ja radim na ovaj način, meni najlogičniji i najjednostavniji za pratiti: //kreiramo dvostruki pointer char **a; //prvo polje je veličine 3 a = new char*[3]; //sva ostala su 4 for(int i = 0; i<3; i++) *(a + i) = new char[4]; //kasnije puniš elemente sa dvije for liste kao i uvijek kod dvodimenzionalnih polja for(int i = 0; i<3; i++) { for(int j = 0; j<4; j++) { *(*(a+i)+j) = ...; } }
__________________
RABBITS CLAN |
|
|
Oglas
|
|
16.01.2006., 15:02 | #3 |
Registered User
Datum registracije: Jan 2006
Lokacija: Zagreb
Postovi: 23
|
ma nije mi problem kreirati dvdimenzijonalno polje na taj nacin, ali htio sam skuzit koja je razlika izmedju ona dva nacina(da komplentno shvatim c++)! Hvala na prijedlogu al cekat cu da mi mozda jos netko ponudi konkretan odgovor! |
16.01.2006., 16:02 | #4 |
Premium
Datum registracije: Nov 2005
Lokacija: Rijeka
Postovi: 455
|
#include <iostream.h> #include <windows.h> #include <TCHAR.h> void main() { /******************************************************************************************************/ //Na ovaj način kreiramo pointer na dvodimenzionalno polje koje ima neograničeno stupaca i redova //npr. prvo će biti *a [11], drugo je *(a + 1)[6] itd. (konkretno ovdje će char *a biti zapravo pointer na polje [4][12]) char *a[] = {"ponedjeljak", "utorak", "srijeda", "cetvrtak"}; //NA ovaj način upisujemo u str "ponedjeljak" a u str2 "utorak" LPSTR str, str2; str = *a; str2 = *(a+1); //na ovaj način upisujemo u ch1 "p"(prvi znak u polju *a koje sadrži string "ponedjeljak") //a u ch2 "u"(prvi znak u polju *(a+1) koje sadrži string "utorak") char ch1,ch2; ch1 = *a[0]; ch2 = *(a+1)[0]; /******************************************************************************************************/ //Na ovaj način kreiramo pointer na dvodimenzionalno polje koje ima SAMO 4 reda i 4 stupca s time da (*b)[4] ako je postavljeno na 4 broj stupaca polja koje kreiramo MORA biti 4 char (*b)[4] = new char[4][4]; } PAZI char (*b)[4] i char *b[] nije isto, ako imaš u zagradi broj ((*b)[4]) onda *b mora biti u zagradi inače ne mora..
__________________
RABBITS CLAN |
18.01.2006., 00:18 | #5 | ||
Registered User
Datum registracije: Jan 2006
Lokacija: Zagreb
Postovi: 23
|
Citiraj:
:confused: kuzis!? Ili ce vratiti pokazivac na 'p' ili ce vratiti pokazivac na polje pokazivaca( koji zapravo pokazuju na pocetke svih stringova 'p', 'u', 's', 'c') Citiraj:
=>po pravilu [] ima veci prioritet od * pa zbog toga, ali onda ni u gornjem primjeru po mome nismo smijeli!! ps. mislim da ti je *(a+1) == a[1] kod tvojih primjera |
||
18.01.2006., 08:43 | #6 | |||
Premium
Datum registracije: Nov 2005
Lokacija: Rijeka
Postovi: 455
|
Citiraj:
Citiraj:
Citiraj:
__________________
RABBITS CLAN |
|||
19.01.2006., 22:44 | #7 | ||
Registered User
Datum registracije: Jan 2006
Lokacija: Zagreb
Postovi: 23
|
Citiraj:
Citiraj:
I mislim da ce mi dvodimenzionalna polja najvise trebati pa se zato i trgam tolko da ih potpuno razumijem! Dugo programiram(mada sam imao stanku 2 god) i znam kolko sam se zaj** sa dvodimenzionalnim poljima u drugim jezicima, a u kombinaciji s pokazivacima je stvarno elegantno! Jos jednom hvala na svemu!:clap: |
||
19.01.2006., 22:57 | #8 | |
Moderator
Datum registracije: Jan 2005
Lokacija: Rijeka
Postovi: 8,918
|
Citiraj:
__________________
___________ HTPC: Intel Core2Duo E8500 × ATI Sapphire HD4670 HDMI × 2x 1GB DDR2 × Samsung 160GB × Lenovo Key+Mouse × Philips 49PFS5501 LED TV × Technics SA-EH780 5.1 × Windows 10 Laptop1: Lenovo x100e w/Windows 10 |
|
19.01.2006., 23:17 | #9 | |
Registered User
Datum registracije: Jan 2006
Lokacija: Zagreb
Postovi: 23
|
Citiraj:
|
|
20.01.2006., 08:34 | #10 | |||
Premium
Datum registracije: Nov 2005
Lokacija: Rijeka
Postovi: 455
|
Citiraj:
Citiraj:
Citiraj:
__________________
RABBITS CLAN |
|||
|
|
Oglas
|
|
20.01.2006., 08:44 | #11 | |
Moderator
Datum registracije: Jan 2005
Lokacija: Rijeka
Postovi: 8,918
|
Citiraj:
__________________
___________ HTPC: Intel Core2Duo E8500 × ATI Sapphire HD4670 HDMI × 2x 1GB DDR2 × Samsung 160GB × Lenovo Key+Mouse × Philips 49PFS5501 LED TV × Technics SA-EH780 5.1 × Windows 10 Laptop1: Lenovo x100e w/Windows 10 |
|
20.01.2006., 09:00 | #12 | ||
Premium
Datum registracije: Nov 2005
Lokacija: Rijeka
Postovi: 455
|
Citiraj:
Citiraj:
To ne znači da se ne može promijeniti taj omjer...
__________________
RABBITS CLAN |
||
26.01.2006., 20:22 | #14 |
Tlacitelj i neznalica
Datum registracije: Dec 2003
Lokacija: Rijeka
Postovi: 1,867
|
Eto da ne bude da nema zainteresiranih...idem neko vrijeme na tecaj pa sam jos totalni pocetnik pa ne bih htjeo sa glupim komentarima ispadati u javnost,ali redovito (iako je to rijetko jer nema) citam sve na forumu o c++-u... Idem 3 mjeseca na tecaj(jednom tjedno),prosli smo onaj pocetak sa cout/cin i sl. ,petlje for,while,stringove,sada smo na pokazivacima za koje kaze covijek da su jako jako jako bitni... Eh pa vidis njemu sam posalo pitanje u vezi necega evo mogu i vas pitati posto on radi pa bas ne stigne...vrlo je jednostavo,nisamo jos koristili clearscreen,clearline pa eto pitanja: do { cout << " Odabir [1-3]: " ; cin >> izborIntervala; if ( (izborIntervala < 1) && (izborIntervala > 3) ) { void ClearLine( int line ); --------GDJE MORAM TU UPISATI BROJ LINIJE KOJU ZELIM IZBRISATI,POKUSAVAM POLA URE ALI NEJDE,ZELIM IZBRISATI COUT << ODABIR[1-3]: } } while ( (izborIntervala < 1) || (izborIntervala > 3) ); Mislim da je jednostavno...samo jebga nejde... Znaci forsiranje ispravnog unosa s time da ako se upise krivi broj treba izbrisati liniju a ne baciti opet u novi red.... FALA! BTW Ja korisitim visual c++ i njegov compiler...
__________________
Tko nema ni jednog prijatelja ide kao stranac po zemlji. |
28.01.2006., 11:22 | #15 |
Premium
Datum registracije: Oct 2005
Lokacija: pula
Postovi: 42
|
Blago Vama ....... Bilo nas stotinjak upisanih .. Prošlo ( dalo uvjet petnaestak ).... C dala trojica ... C ++ ovogodišnji 1. rok izašla ta trojica - prošao nitko ... Ja imam sreće . Nisam potrošio nijedan rok od prošle , a ni ove hrabrosti skupio nisam .... .:clap: Morat ču dati bar C , jer ako ne , apsolvent biti neću ..... I onda netko to voli i uživa u tome ?????? :clap: :confused: :confused: |
28.01.2006., 12:08 | #16 | |
Tlacitelj i neznalica
Datum registracije: Dec 2003
Lokacija: Rijeka
Postovi: 1,867
|
Citiraj:
A cuj mene veseli nogomet pa netko kaze vidi 22 debila trce za loptom tako i to...
__________________
Tko nema ni jednog prijatelja ide kao stranac po zemlji. |
|
29.01.2006., 14:07 | #17 |
Software developer
Datum registracije: Oct 2005
Lokacija: ZG
Postovi: 47
|
Meni je isto bilo slabo prije kad vidim hrpu onih simbola i nekakvih pravila, ali sam se sa vremenom privikao i cak zavoilo taj jezik. jos mi uvijek nisu bas jasne trodimenzionalna polja ili matrice (kao i hrpu toga ostaloga), ali bitno je da napredujem |
29.01.2006., 22:31 | #18 |
Software developer
Datum registracije: Oct 2005
Lokacija: ZG
Postovi: 47
|
Evo sta mene zanima: kako u C-u napraviti da mi se program izvrsava u drugacijem prozorcicu osim onog standardnog (MS-dos oblika) i kako spojiti vise elemenata u program koji nisu napisanu u C-u kao sto su slike (.jpg) ili zvuk (mp3) ? :confused: |
30.01.2006., 08:45 | #19 | ||
Premium
Datum registracije: Nov 2005
Lokacija: Rijeka
Postovi: 455
|
Citiraj:
Citiraj:
__________________
RABBITS CLAN |
||