int main() {
const int length = 10000;
double *A = new double[length];
double *first = A;
double *last = A + length - 1;
delete[] A;
ptrdiff_t diff = last - first;
}
< /code>
В C ++, четко определено ли разница в разнице двух указателей, указывающих на некоторые местоположения в одном и том же массиве после того, как он был сведен в сфере? Массив перераспределяется, и мне нужно обновить указатели. Я делаю это, вычисляя разницу между указателем N и указателем 0 в массиве указателей после перераспределения буфера. (Конечно, я могу вычислить различия перед перераспределением и сохранить их, но мне немного любопытно.) < /P>
Тот же вопрос был задан здесь на языке C, и поведение кажется неопределенным в C. Также не определено в C ++?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... ray-well-d
Является ли разница между двумя указателями, указывающими на одну и ту же сделку с сделками, хорошо определенная в C ++? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Перетасовать массив — проблема LeetCode. Подход с двумя указателями не работает
Anonymous » » в форуме JAVA - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Функция PHP, определенная с одним аргументом, работает при вызове с двумя [дубликатами]
Anonymous » » в форуме Php - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-