Появление "ошибки C2233:" <unknown>": не допускаются массивы объектов, содержащие массивы с нулевой размер" сообщение об ошибке в Visual C++, при компиляции класса шаблона, который содержит элемент данных</unknown>

Переводы статьи Переводы статьи
Код статьи: 216977
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
Развернуть все | Свернуть все

В этой статье

Проблема

При компиляции класса шаблона, содержащего элемент данных, который является массивом, содержащим класс второго шаблона и второй класс содержит член данных, который является массивом, а размер обоих массивов зависит от параметра шаблона, может появиться следующее сообщение об ошибке:
Ошибка C2233: "<unknown>": массивы объектов, содержащий нулевой размер массива не допускаются</unknown>

Решение

Вместо массива с помощью указателя. Выделить место для массива в конструкторе и освободить место для массива в деструкторе.

Статус

Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в начале данной статьи..

Эта ошибка была исправлена в Visual Studio 6.0 пакета обновления 5 (SP5).

Чтобы загрузить пакет обновления 5, см. на странице обновления в Visual Studio по следующему веб-узлу на:http://support.Microsoft.com/kb/280367

Дополнительная информация

Действия для воспроизведения поведения:

template <int k>
class A
{
    char x[k];
};

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

Временное решение

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

Свойства

Код статьи: 216977 - Последний отзыв: 23 февраля 2014 г. - Revision: 2.0
Ключевые слова: 
kbnosurvey kbarchive kbqfe kbhotfixserver kbbug kbcompiler kbcpponly kbfix kbvc600fix kbmt KB216977 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:216977

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com