gpt4 book ai didi

c++ - 从外部函数/类设置动态数组的新大小?

转载 作者:行者123 更新时间:2023-11-28 00:11:31 24 4
gpt4 key购买 nike

我的主要代码声明了一个需要从外部函数调整大小的指针。例如:

double *vect =NULL;
classobj object;

object.func(vect);

//--- print the outcome
for(int j=0; j<4; ++j)
cout << vect[j] << " .. " << endl;

其中函数 func() 是 classobj 的一部分在另一个文件(比如 classobj.h.cpp )中定义为

void classobj::func(double *_vect){

_vect = new double[4];

for(int j=0; j<4; ++j)
_vect[j] = 3.0*j +1 ;

};

问题是 vect尚未调整大小。我得到段错误。关于在这种情况下如何使用指针有什么想法吗?

最佳答案

您正在传递对数组的引用,然后创建一个新数组并将其分配给函数中的指针。您需要传递指针的指针,然后重新分配该指针的地址:

void classobj::func(double **_vect){
(*_vect) = new double[4];

尽管此解决方案可行,但我建议为此目的使用 std::vector 并通过引用该函数来传递它

关于c++ - 从外部函数/类设置动态数组的新大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32861959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com