Возврат двумерного массива из регистра переключателя в C ++ - PullRequest
0 голосов
/ 31 января 2012

Я пишу игру в cocos2dx, и я пытаюсь реорганизовать метод, который вызывается несколько раз.Я хочу вернуть двумерный массив из перечисления типа транспортного средства

Как мне заставить работать что-то вроде следующего ??

int Vehicle::getVehicle(VehicleTypes vehicletypes)
{

int vehicle[8][8] = {0};

switch (vehicleType) {
    case Car:
            // --- ARRAY 1 ------

            vehicle = {
                { 0,0,0,0,0,0,0,0 },
                { 0,0,1,2,5,8,0,0 },
                { 0,0,5,3,4,5,0,0 },
                { 0,0,0,6,0,7,0,0 },
                { 0,0,0,0,0,0,0,0 },
                { 0,0,0,0,0,0,0,0 },
                { 0,0,0,0,0,0,0,0 },
                { 0,0,0,0,0,0,0,0 },
            };
            break;
    case Bus:
        {
            // --- ARRAY 2 ------

            Vehicle = {
                { 0,0,0,0,0,0,0,0 },
                { 0,0,0,0,1,2,0,0 },
                { 0,0,3,4,5,0,0,0 },
                { 0,0,6,8,7,0,0,0 },
                { 0,0,0,0,0,0,0,0 },
                { 0,0,0,0,0,0,0,0 },
                { 0,0,0,0,0,0,0,0 },
                { 0,0,0,0,0,0,0,0 },
            };
            break;
        }
    default:
        break;
    }

return vehicle;
}

Спасибо

Ответы [ 2 ]

1 голос
/ 31 января 2012
typedef const int (*matrix_ptr)[8];

Демо: http://ideone.com/i1Tc2

0 голосов
/ 31 января 2012

Почему вы используете массивы?Вы должны использовать один из контейнеров STL, например, вектор.В любом случае, двумерный массив int в C ++ является в основном указателем на указатель типа int.Либо вызывающий функции должен предоставить выделенный 2D-массив в куче или стеке и передать его в качестве аргумента in / out, либо чтобы вызываемый объект (эта функция) выделил 2D-массив в куче и передал его обратно ввызывающий абонент.Если это последний случай, то вызывающий теперь отвечает за освобождение памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...