在C中,我声明了一个这样的内存区域:
int cells = 512;
int* memory = (int*) malloc ((sizeof (int)) * cells);
Run Code Online (Sandbox Code Playgroud)
我或多或少地把自己放在中间
int* current_cell = memory + ((cells / 2) * sizeof (int));
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我增加时*current_cell,我怎么知道我是否到达了分配的内存区域的末尾?
if (current_cell >= memory + cells)
no_longer_in_valid_memory;
Run Code Online (Sandbox Code Playgroud)
然而!您的代码中存在大问题.如果您希望current_cell位于内存区域中间附近,您应该实际执行此操作:
int* current_cell = memory + (cells / 2);
Run Code Online (Sandbox Code Playgroud)
指针算术将负责乘以sizeof(int).