我遇到了一个小问题,需要一些帮助:
如果我有一个已分配的字符缓冲区,并且我有一个位于此缓冲区内的起点和终点,并且我想要这两点之间的长度,我该如何找到它?
即
char * buf; //malloc of 100 chars
char * start; // some point in buff
char * end; // some point after start in buf
int length = &end-&start? or &start-&end?
//How to grab the length between these two points.
Run Code Online (Sandbox Code Playgroud)
谢谢
qrd*_*rdl 27
只是
length = end - start;
Run Code Online (Sandbox Code Playgroud)
没有&符号和演员阵容.C指针算术允许此操作.
它只是后一个指针减去前面的指针.
int length = end - start;
Run Code Online (Sandbox Code Playgroud)
验证和示例代码如下:
int main(int argc, char* argv[])
{
char buffer[] = "Its a small world after all";
char* start = buffer+6; // "s" in SMALL
char* end = buffer+16; // "d" in WORLD
int length = end - start;
printf("Start is: %c\n", *start);
printf("End is: %c\n", *end);
printf("Length is: %d\n", length);
}
Run Code Online (Sandbox Code Playgroud)