У меня был более ранний пост текст ссылки , где кто-то сказал, что мой указатель инициализирован не на том элементе, что я не совсем понимаю, почему, кроме как они правы, и это работает с их исправлением. Итак, вот основная проблема:
Если я объявлю массив от 0 до 30 с
#define ENDPOINT 15
int record[2 * ENDPOINT + 1];
// and want a pointer to be at the middle of the array, so 0 is at the middle, and
// +15 is at 30, and -15 is at 0
// why is int *ptr = &record[ENDPOINT + 1] wrong? why is the correct declaration
int *ptr = &record[ENDPOINT];
Потому что, если я поставлю ptr в & record [ENDPOINT], это будет означать 15-ю запись в массиве записей, которая является 14-м индексом, а затем добавление 15 будет только 29, верно? Спасибо!