c++ - 使用指向数组的指针填充动态数组
问题描述
我想将一个数组传递给一个构造函数并使用它的元素来填充一个动态数组。但是,我不明白如何在构造函数中使用这个数组。
我已经创建了一个返回指向该数组的指针的函数,但我不能在构造函数中为我试图创建的对象使用它。
struct PCB
{
private:
int * ptr;
public:
PCB(int * array)
{
ptr=new int[3];
for(int i=0;i<3;i++)
{
*(ptr+i)=*(array+i);
}
}
};
int * returnPtr()
{
int blockArr[]={21,2,3};
return blockArr;
}
int main()
{
PCB * pcb=new PCB(returnPtr());
}
这段代码使用 Visual Studio 代码给了我一个“分段错误”错误。我只是希望能够将数组的元素复制到动态数组中。我哪里搞砸了?
解决方案
您将 blockArr 声明为本地内存,一旦退出 returnPtr 函数,它将被删除。分配 byteArr 就像分配 ptr 一样。
int blockArr = new int[3];
推荐阅读
- mongodb - Mongo:两个实例,同一个端口?
- python - 当我尝试更新时,我的 Django 图像无法上传
- javascript - 如何在父 ExtJs(Sencha) 中执行子方法
- node.js - 如何使用socket.io从控制器而不是建立连接的文件中发出一些数据
- jquery - Jquery通过选择器获取选定下方最近的元素
- postgresql - 如何使用 postgresql 从两个单独的时间测量间隔时间
- javascript - 编译为 JavaScript 时,有没有办法在 Haxe 中对类型进行别名?
- javascript - 反应窗口卸载事件不会触发
- python - 熊猫“部分融化”或“集体融化”
- azure - 如何使用 Arm 模板更新现有 Azure Vm 规模集