合并排序程序中出现使用未初始化的内存阵列警告

问题描述

我在 Visual Studio 社区中练习合并排序算法,我创建了一个名为 merge 的单独函数,用于对它们进行排序并将它们转移到不同的数组中

void merge(int* ar,int m,int l,int r,int size)
{
    int i = l; /*l is the left most value position so l=0 and r is the right most position value so r=size-1*/
    int j = m + 1;
    int k = l;
    int* temp;
    temp = new int[size]; //created a temporrary array
    while (i <= m && j <= r)
    {
        if (ar[i] <= ar[j])
        {
            temp[k] = ar[i];
            k++;
            i++;
        }
        else {
            temp[k] = ar[j];
            k++;
            j++;
        }
    }
    while (i <= m)
    {
        temp[k] = ar[i];
        k++;
        i++;
    }
    while (j <= r)
    {
        temp[k] = ar[j];
        k++;
        j++;
    }
    for (int p = 0; p < size; p++)
    {
        ar[p] = temp[p]; //warning is coming in this line
    }
}

使用未初始化内存临时的警告即将出现,我无法摆脱它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)