У меня есть массив C следующим образом:Выросшие указатель массива в C
unsigned long arr[10];
На моей машине unsigned long
составляет 8 байт. У меня есть ситуация, когда я пишу 4 байта с помощью arr [0], а затем вам нужно найти адрес следующего байта в массиве.
void * ptr = arr[0] + (sizeof(unsigned long)/2);
Будет ли работа выше?
он будет работать на вашей машине, но не определено поведение/не будет работать в других системах. Размеры типов зависят от реализации в c. – Julius
Вы пытаетесь всегда продвигать указатель на 4 байта или пытаетесь всегда продвигаться на половину длины без знака? – merlin2011
К половине размера неподписанного длинного – Jake