在使用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与array[]进行比较。
发布于 2014-01-28 02:17:37
memcmp / memcpy只需接受一个指向要比较或复制的数据的指针。
因此,您基本上可以复制或比较任何“范围”,方法是提供一个指针,指向您希望比较的数据的开始和数据的长度,就像上面所做的一样。
按照以下方式调整上面的代码:
if (memcmp(&data[50], array, 20) == 0) {
// do thing
}这告诉memcmp开始检查数据数组第50下标的地址,并将其与数组地址的数据进行比较,并检查20个元素。
https://stackoverflow.com/questions/21395554
复制相似问题