Как быстро получить одномерный массив int из int **? - PullRequest
0 голосов
/ 13 января 2012

Я хотел бы получить одномерный массив из моего двойного указателя на int.Память для указателя распределяется следующим образом:

listOfTxtsContents = new int *[ROWS];
for( int i = 0 ; i < ROWS ; i++ )
{
    listOfTxtsContents[i] = new int[COLUMNS];
    for(int j = 0; j < COLUMNS; ++j)
        listOfTxtsContents[i][j] = 0;
}

Затем каждая строка содержит данные, в которые я хотел бы поместить их в массив таким образом, чтобы массив 1D был заполнен последовательными строками.

Ответы [ 2 ]

2 голосов
/ 13 января 2012

Выделите одномерный массив целых чисел ROWS * COLUMNS; назначить каждому listOfTxtsContents [i] [j] элемент i * COLUMNS + j.

2 голосов
/ 13 января 2012

Уверен, что-то вроде этого должно работать:

array[ROWS * COLUMNS];
for(size_t i = 0; i < ROWS; ++i)
  memcpy(array + i * COLUMNS, listOfTxtsContents[i], COLUMNS * sizeof(int));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...