从外部函数/类设置动态数组的新大小
Set new size of dynamic array from an external function/class?
我的主代码声明了一个需要从外部函数调整大小的指针。例:
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
并通过引用将其传递给该函数
相关文章:
- 为什么我不能将 rand() 与数组的大小一起使用?
- 为什么我们将单个或多维数组的大小声明为常量值?
- 不同大小的向量数组的大小 cpp
- 为什么 c++ 动态数组的大小没有改变?
- 在 C++ 中字符串的大小与字符数组的大小
- 动态更改数组的大小并读取值.(无矢量)
- 如何增加以前由新运算符分配的 C++ std::list 数组的大小?
- 当您在此单词中搜索单词时调整字符数组的大小?
- 从函数中全局删除并重新实例化数组结构,而无需在编译时知道数组的大小
- 指针指向的数组的大小
- 为什么使用 size_t 来索引/表示数组的大小?
- C++ "oldstyle container ":指针/数组/新 - 可能误会?
- 我正在尝试传递DMA数组及其大小作为参数,但它给出了错误
- 我如何获取数组的大小,以便我可以从函数声明所述数组
- 我必须找到给定数组中所有数字的周期,就像有很多解决方案,但数组的大小是 10^5
- 我如何处理有关输入的字符串大小超过字符数组设置大小的错误?
- 为什么 c++ 函数可以正确返回数组的大小?
- 数组的大小(新[])
- 如何从类中复制数组并将新数组的大小加倍
- 如何重新分配/调整3d数组的大小以适应新的大小