比较两个内存块之间的值的相等性

时间:2016-09-08 16:24:53

标签: c

这是我实施kmean算法的一部分。我有两个相同大小的内存块,因此*cluster_center是群集的当前中心,*new_centroids表示在获取群集点的平均值后的新质心:

double *cluster_center = malloc((k * dim) * sizeof(double));
double *new_centroids = malloc((k * dim) * sizeof(double)); 

我有以下循环将结果从new_centroids复制到cluster_center而没有任何问题:

for (int i = 0; i < k; ++i) {
    memcpy(&cluster_center[i * dim], &new_centroids[i * dim], dim * sizeof(double));
}

事实上,我想知道C是否有内置函数来比较两个块的,因为我想在之后终止我的算法*new_centroids*cluster_center是相同的(即,没有变化)。我真的不知道该怎么做。

谢谢

1 个答案:

答案 0 :(得分:0)

您正在寻找的功能是memcmp(内存比较)。执行声明后立即:

memcpy(destination, source, size);

然后

memcmp(destination, source, size);

应该返回零。