【发布时间】:2018-08-09 01:45:05
【问题描述】:
我在使用“新”和引用进行动态分配时遇到了一些麻烦。请看下面的简单代码。
#include<iostream>
using namespace std;
void allocer(int *pt, int *pt2);
int main()
{
int num = 3;
int num2 = 7;
int *pt=#
int *pt2 = &num2;
allocer(pt, pt2);
cout << "1. *pt= " << *pt << " *pt2= " << *pt2 << endl;
cout << "2. pt[0]= " << pt[0] << " pt[1]= " << pt[1] << endl;
}
void allocer(int *pt, int *pt2)
{
int temp;
temp = *pt;
pt = new int[2];
pt[0] = *pt2;
pt[1] = temp;
cout << "3. pt[0]= " << pt[0] << " pt[1]= " << pt[1] << endl;
}
我想要做的是让函数“allocer”获得 2 个参数,它们是 int 指针并在其中一个上分配内存。如您所见,*pt 变成了一个包含 2 个整数的数组。在函数内部,它运行良好,这意味着我标记为 3. 的句子按我的意图打印。但是,1、2 不起作用。 1 打印原始数据(*pt= 3, *pt2= 7),2 打印错误(*pt= 3, *pt2= -81203841)。 如何解决?
【问题讨论】:
标签: c++ function dynamic-allocation