C++ 在数组上使用delete[]时堆损坏
这是我的代码:C++ 在数组上使用delete[]时堆损坏,c++,memory-management,heap,C++,Memory Management,Heap,这是我的代码: int* mergeArrays(int* a, int m, int* b, int n) { int *c; c = new int(m + n); int i, j; for (i = 0; i < m + n; i++) c[i] = 0; for (i = 0; i < m; i++) c[i] = a[i]; cout << i; for (j = 0; j
int* mergeArrays(int* a, int m, int* b, int n)
{
int *c;
c = new int(m + n);
int i, j;
for (i = 0; i < m + n; i++)
c[i] = 0;
for (i = 0; i < m; i++)
c[i] = a[i];
cout << i;
for (j = 0; j < n; j++)
{
c[i] = b[j];
i++;
}
for (i = 0; i < m + n - 1; i++)
for (j = i + 1; j < m + n; j++)
if (c[i] > c[j])
swap(c[i], c[j]);
return c;
}
在主菜单中使用delete[]a时出现错误
有人知道怎么解决这个问题吗
c = new int(m + n);
这将分配一个指向一个int的指针,并将其值初始化为m+n
你想要的是:
c = new int[m + n];