问题描述
我在 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 (将#修改为@)