Você está offline; aguardando reconexão

<unknown>Você receberá um "Erro C2233: '<desconhecido>': matrizes de objetos que contém matrizes de tamanho zero são ilegais" mensagem de erro no Visual C++ quando você compilar uma classe de modelo que contém um membro de dados

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 216977
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Quando você compilar uma classe de modelo que contém um membro de dados que é uma matriz de uma segunda classe de modelo, e a classe segundo contém um membro de dados que é uma matriz, e o tamanho das duas matrizes é dependente de um parâmetro de modelo, você pode receber o seguinte erro:
<unknown>Erro C2233: '<desconhecido>': matrizes de objetos que contém matrizes de tamanho zero são ilegais
Resolução
Use um ponteiro em vez de uma matriz. Alocar o espaço para a matriz no construtor e desalocar o espaço para a matriz no destruidor.
Situação
A Microsoft confirmou que este é um bug no Microsoft produtos que estão listados no início deste artigo.

Esse bug foi corrigido no Microsoft Visual Studio 6.0 Service Pack 5 (SP5).

Para baixar o service pack 5, consulte a página atualizações de produto Visual Studio no seguinte site da Microsoft em: http://support.microsoft.com/kb/280367
Mais Informações

Etapas para reproduzir o problema

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

Solução alternativa

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];};