微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我在 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 举报,一经查实,本站将立刻删除。