[ ljube @ 22.03.2005. 11:33 ] @
Primjetio sam na nekim primjerima u C++, inicijalizaciju varijable sa: = {0}

Da to znaci da ce cijeli array u sledecem primjeru biti inicijalizovan sa nulama:
Code:

char InstaliraniPrinteri[200][128] = {0};


ili moram da pozovem:

Code:

ZeroMemory(InstaliraniPrinteri, sizeof(InstaliraniPrinteri));



Unaprijed hvala,
Ljubisa Knezevic



[ Marko Stankovic @ 22.03.2005. 11:37 ] @
Da, to se koristi kod nizova i popunjava ceo niz/matricu nulama i to je koliko ja znam jedino moguce kod inicijalizacije, odnosno ne moze kasnije da se niz popuni nulama na taj nacin.
[ ljube @ 22.03.2005. 11:46 ] @
Hvala!

Nisam bio siguran. Kada smo vec kod toga da li sam mogao iskoristiti i "= {65}" da bih inicijalizovao niz sa ASCII 65 ili je to rezervisano samo za "nulovanje" nizova?

Ljubisa

[ Buffy @ 22.03.2005. 13:07 ] @
Code:

#include "iostream.h"
int main()
{
    int i[100][30]={65};
    cout<<i[90][25]<<'\n';
    system("PAUSE");
    return 0;
}

Izlaz programa je 0 sto znaci da se niz inicijalizovao na 0.
p.s. Zasto postavljas ovakva pitanja kad si to mogao sam provjeriti kod kuce?:)
[ tosa @ 22.03.2005. 13:25 ] @
Inicijalizacija niza na nulu sa "={0}" je ANSI C++ standard, ali nisu svi kompajleri
u potpunosti ispostovali to pravilo. Visual Studio tek od novijih verzija to prihvata
(koliko se secam). Dakle, ako radis za Win nije problem, a za ostale platforme - proveri!
[ zvrba @ 22.03.2005. 13:53 ] @
Citat:
Buffy:
Izlaz programa je 0 sto znaci da se niz inicijalizovao na 0.
p.s. Zasto postavljas ovakva pitanja kad si to mogao sam provjeriti kod kuce?:)


Pogresan zakljucak. Na temelju svog programa mozes zakljuciti jedino da se element [90][25] postavio na 0 i to ne znas da li se tamo slucajno nasla 0 ili je tako inicijalizirano.

Ovo sto si napravio se zove incomplete initializer i radi na arrayima i strukturama. Elementi koje u inicijalizaciji izostavis se automatski inicijaliziraju na 0. Ti si izostavio sve elemente OSIM [0][0]. Prosiri svoj program sa cout << i[0][0] i uvjeri se sto je a sto nije inicijalizirano na 0.

I standardni #include headeri se pisu sa <>, a ne sa "".
[ ljube @ 22.03.2005. 14:04 ] @
OK,

Hvala svima na odgovorima!

Ljubisa Knezevic
[ leka @ 22.03.2005. 14:08 ] @
Citat:
Dakle, ako radis za Win nije problem, a za ostale platforme - proveri!

Ispravnije bi bilo reci - ako koristis neki noviji (ne vise od godinu-dve star) VC++ onda na Win nije problem, AKO uopste koristis VC++. Ako koristis ostale platforme onda je maltene ista stvar kao i sa VC++ (koji nista nije bolji od kompajlera koji su ne tako cesto BOLJI i NAPREDNIJI od istog) .
Toso, VC++ NIJE jedini kompajler za Windows (hvala Bogu) !!!
[ Buffy @ 22.03.2005. 22:23 ] @
Citat:

Ovo sto si napravio se zove incomplete initializer i radi na arrayima i strukturama. Elementi koje u inicijalizaciji izostavis se automatski inicijaliziraju na 0. Ti si izostavio sve elemente OSIM [0][0]. Prosiri svoj program sa cout << i[0][0] i uvjeri se sto je a sto nije inicijalizirano na 0.

U pravu si,nisam pogledao prvi element koji je 65.
Citat:

I standardni #include headeri se pisu sa <>, a ne sa "".

[/quote]
Ovo je stvar navike.
Koristicu <> jedino ako ne bude radilo "". :)
Pozdrav!
[ blaza @ 22.03.2005. 23:01 ] @
" " uvek 'rade', sto ne znaci da ih treba upotrebljavati kada im nije vreme.
[ tosa @ 23.03.2005. 10:22 ] @
A ti bi Leko mogao u Linux sektu odmah da se uclanis!
Vrebas po es-u kada ce bilo ko, bilo sta normalno ili pohvalno da kaze
za Windows platformu pa naleces sa svojim "alternativnim" resenjima...
Ne kapiram tvoju potrebu da prevaspitavas ljude po pitanju izbora software-a
i OS-a.. Zelis da koristis Linux ili Mac, samo napred - mene zaobidji sa tim!

Eh da, nisam znao da VC++ nije jedini kompajler za Win, ajde ostavi nam
neki link pa da i mi nesto naucimo :)
[ Sundance @ 23.03.2005. 12:49 ] @
MS C/C++ kompajler je nakon Intelovog vjerojatno najbolji u industriji. A i daleko najkorišteniji na win. MS ekstenzije možeš isključiti u dva klika mišem ako ti smetaju.
[ caboom @ 23.03.2005. 13:30 ] @
hm.. ako se vec govori o C++ standardima, rekao bih da je gcc prvenstveno imao problema sa istim tokom svoje istorije. takoreci, templating je bio jako cudno resen do verzije 3.x.x, ili bolje receno do verzije 3.1.x, tako da zaista ne bih uzimao gcc kao primer dobro standardizovanog kompajlera. leko, daleko od toga da gcc nema svojih dobrih strana, ali to svakako nisu standardizacija i performanse (tail recursion rings a bell?).
[ deroko @ 23.03.2005. 16:15 ] @
Borland C++ Builder:
http://www.borland.com/products/downloads/download_cbuilder.html

Neko je pitao za link pa reko da dam :)
8.7mb em malo, em dobro, em free :)
[ zvrba @ 24.03.2005. 07:30 ] @
Citat:
caboom: hm.. ako se vec govori o C++ standardima, rekao bih da je gcc prvenstveno imao problema sa istim tokom svoje istorije. takoreci, templating je bio jako cudno resen do verzije 3.x.x, ili bolje receno do verzije 3.1.x, tako da zaista ne bih uzimao gcc kao primer dobro standardizovanog kompajlera. leko, daleko od toga da gcc nema svojih dobrih strana, ali to svakako nisu standardizacija i performanse (tail recursion rings a bell?).


Moze konkretan primjer sto znaci "jako cudno rijesen templating"? U gcc-u je bar oduvijek (jos verzija 2.95.x) radio for loop scope kako treba, za razliku od VS6. A sto se tice tail-rekurzije: nigdje ne pise da se to mora optimizirati (jedino Scheme jezik to zahtijeva). Lakse je prepraviti svoj kod.
[ leka @ 03.10.2005. 19:31 ] @
toso, pogledaj malo bolje moj tekst i pokusaj da shvatis sta sam rekao... ukratko - rekao sam da "VC++ nije jedini kompajler za Windows". Ova izjava nema nikakve veze sa propagiranjem GNU/Linux-a! :) Cak bih se usudio reci da je tvoja opaska vise nego smesna. Cisto onako da se zna - za Windows postoji gomila kompajlera, neki su bolji, neki su losiji i ja sam mislio na NJIH, a NE na Linux! Nigde nije ni bilo govora o Linux-u!
Pomenucu samo neke (cisto da ljudi koji nisu upuceni imaju na umu da Microsoft nije jedina kompanija na svetu koja razvija C/C++ kompajelere): DigitalMars C/C++, LCC, Intel C/C++, Borland C/C++, GCC, OpenWatcom, Comeau, ECC ...
[ NrmMyth @ 03.10.2005. 20:45 ] @
Jeli jedini ja ovdje primjecujem 7 mjeseci razlike izmedju 2 posta? LOL
[ leka @ 04.10.2005. 16:54 ] @
NrmMyth, pojma nemam zasto - ja sam ovu nit dobio u listi kao najnoviju pre dva-tri dana kada sam odgovorio na onu glupost... Garant je to bila neka greska u bazi ili u softveru, inace mi se to ne bi pojavilo kao najnovija nit. Treba pitati administratore za objasnjenje.
[ NrmMyth @ 05.10.2005. 19:01 ] @
Ma ne smeta meni to, samo je onako smijesno!