Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用 memcpy 或 memcmp 时是否可以使用范围?
char data[900000]; // size 900000 char array[20]; // size 20 if (memcmp(data[50-70], array, 20) == 0) { // do thing }
我希望能够将 (20) 键数据 [50-70] 与数组 [] 进行比较
memcmp/memcpy只需将指针指向您要比较或复制的数据。
memcmp
memcpy
因此,您基本上可以通过提供指向要比较的数据的开头和数据长度的指针来复制或比较任何“范围”,就像您在上面所做的那样。
调整上面的代码如下:
if (memcmp(&data[50], array, 20) == 0) { // do thing }
这告诉memcmp从数据数组的第 50 个下标的地址开始检查,并将其与数组地址处的数据进行比较,并检查 20 个元素。