<unknown>Obdržíte "Chyba C2233: '<neznámý>: matice obsahující nula velikost matice objekty jsou nelegální" chybová zpráva v jazyce C++ při kompilaci šablona třídy, která obsahuje datový člen

Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.

216977
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Příznaky
Při kompilovat šablona třídy, která obsahuje datový člen je pole druhé třídy šablony obsahuje druhé třídy dat členů, která je polem a velikost obou matice je závislý na parametru šablony, můžete obdržet následující chybu:
<unknown>Chyba C2233: '<neznámý>: matice obsahující nula velikost matice objekty jsou nelegální
Řešení
Použít ukazatel místo matice. Přidělit prostor pro pole v konstruktoru a navrátit místa matice destruktoru.
Prohlášení
Společnost Microsoft potvrzuje, že se jedná o chybu v Microsoft produktů uvedených na začátku tohoto článku.

Tuto chybu byl opraven v Microsoft Visual Studio 6.0 Service Pack 5 (SP5).

Chcete-li stáhnout aktualizaci service pack 5, naleznete na stránce aktualizace produktů Visual Studio na následujícím webu společnosti Microsoft na: http://support.microsoft.com/kb/280367
Další informace

Kroky pro reprodukci chování

template <int k>class A{    char x[k];};template <int h, int j>class B  {     A<h> y[j];};				

Možné řešení

template <int k>class A{    char *x;    A() {        x = new char[k];    }    ~A() {        delete[] x;    }};template <int h, int j>class B  {     A<h> y[j];};				

Upozornění: Tento článek byl přeložen automaticky

Vlastnosti

ID článku: 216977 - Poslední kontrola: 02/28/2014 16:54:04 - Revize: 4.4

  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • kbnosurvey kbarchive kbmt kbqfe kbhotfixserver kbbug kbcompiler kbcpponly kbfix kbvc600fix KB216977 KbMtcs
Váš názor