Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Błąd podczas przekazywania tablicy do funkcji

Ostatnio zmodyfikowano 2010-07-28 20:28
Autor Wiadomość
Elaine
» 2010-07-28 18:17:04
A i jeszcze jedno

char tablica[ 10 ] = "janeczek"

nie zeruje pozostałych miejsc w tabeli, które nie są zajęte przez litery.
Masz tylko pewność, że tablica[8]=0, tablica[9] może być zerem, ale nie musi.
Ściślej mówiąc, to jednak musi. Ze standardu:
If there are fewer initializers in the list than there are members in the aggregate, then each member not explicitly initialized shall be value-initialized (8.5).
oraz
To value-initialize an object of type T means:
— if T is a class type (clause 9) with a user-declared constructor (12.1), then the default constructor for T is called (and the initialization is ill-formed if T has no accessible default constructor);
— if T is a non-union class type without a user-declared constructor, then every non-static data member and base-class component of T is value-initialized;
— if T is an array type, then each element is value-initialized;
otherwise, the object is zero-initialized
A program that calls for default-initialization or value-initialization of an entity of reference type is ill-formed. If T is a cv-qualified type, the cv-unqualified version of T is used for these definitions of zero-initialization, default-initialization, and value-initialization.
P-20250
VND
» 2010-07-28 20:28:27
Ups, faktycznie.
Pomyliłem tablice nie zainicjalizowaną.
char tablica[ 10 ];
a przecież sam zeruje tablice podając tylko pierwszy element...
Chyba skleroza mnie dopadła :)
P-20255
1 « 2 »
Poprzednia strona Strona 2 z 2