Является ли разница между двумя указателями, указывающими на одну и ту же сделку с сделками, четко определенная в C/C ++C++

Программы на C++. Форум разработчиков
Anonymous
Является ли разница между двумя указателями, указывающими на одну и ту же сделку с сделками, четко определенная в C/C ++

Сообщение Anonymous »

#include
#include

int main() {
const int length = 10000;
double* A = (double*)malloc(length*sizeof(double));
double* first = A;
double* last = A + length-1;
free(A);
ptrdiff_t diff = last - first;
}
< /code>
В C и C ++, четко определено ли разница в разнице двух указателей, указывающих на некоторые местоположения в одном и том же массиве после того, как он был сделкой? Буфер перераспределяется, и мне нужно изменить указатели. Я делаю это, вычисляя разницу между указателем N и указателем 0 в массиве указателей после перераспределения буфера. (Конечно, я могу вычислить различия перед перераспределением и сохранить их, но мне немного любопытно.)

Подробнее здесь: https://stackoverflow.com/questions/797 ... ray-well-d

Вернуться в «C++»