使用带范围的memcpy或memcmp

时间:2014-01-28 02:08:52

标签: c arrays memcpy memcmp

使用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]与数组[]

进行比较

1 个答案:

答案 0 :(得分:1)

memcmp / memcpy只需指向您要比较或复制的数据。

因此,您可以通过提供指向要比较的数据的开头和数据长度的指针来复制或比较任何“范围”,就像您上面所做的那样。

按如下方式调整上面的代码:

if (memcmp(&data[50], array, 20) == 0) {
    // do thing
}

这告诉memcmp开始检查数据数组的第50个下标的地址,并将其与数组地址的数据进行比较,并检查20个元素。