2015-09-23 2 views
0

У меня проблема с собственным кодом в Android.Ошибка Android SIGSEGV с массивом

Я использовал этот код, чтобы заполнить массив с содержанием от вектора

float * Map_Loader::ConvertToArray() 
{ 
    float *arr = new float[(faces.size() -1)*3]; 
    int index = 0, j = 0; 
    while(index < faces.size()) 
    { 
     arr[ j ] = faces[ index ].vertex[ 0 ].x; 
     arr[ j +1 ] = faces[ index ].vertex[ 1 ].y; 
     arr[ j +2 ] = faces[ index ].vertex[ 2 ].z; 
     j += 3; 
     index++; 
    } 
    return arr; 
} 

и я использовал этот код, чтобы создать указатель и получить значения из функции:

float *x = Map.ConvertToArray(); 

Он работает в окнах, но в андроиде у меня проблема.

С уважением

+1

Почему вы только выделить пространство для '(faces.size() - 1) * 3' парит? Ваша петля похожа на попытку копирования 'faces.size() * 3' floats. – Michael

+0

Спасибо, Майкл, хороший комментарий .. –

ответ

0

Я понял !!

Код ответ должен быть таким:

float *x; 
x = Map.ConvertToArray(); 

благодарит всех;)

Смежные вопросы