Вы не можете "переместить" массив. Вы можете переместить указатель в массив , например:
long new_capture_length = 4096;
long step_size = 256;
float data[new_capture_length];
float* p_data = &data[0];
p_data+=step_size; /* p_data now points 256 floats into data, i.e. to data[256] */
Но местоположение самого data
никогда не может быть изменено, поскольку оно не является указателем.
Недавно я дал несколько более подробный ответ на очень похожий вопрос: Вопрос с указателем C (мне не нравится называть вопросы типа «что не так с этим кодом» точными дубликатами, даже если у них есть та же самая основная проблема).