簡體   English   中英

比較兩個內存塊之間的值相等

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM