Błąd podczas przekazywania tablicy do funkcji
Ostatnio zmodyfikowano 2010-07-28 20:28
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. |
|
|
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 :) |
|
1 « 2 » |