[英]Compare equality of the values between two blocks of memory
這是我的kmean
算法實現的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
的值相同(即不變),我想終止算法。 我真的不知道該怎么做。
謝謝
您要查找的功能是memcmp
(內存比較)。 執行語句后立即:
memcpy(destination, source, size);
然后
memcmp(destination, source, size);
應該返回零。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.