首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >c++中的python线性空间

c++中的python线性空间
EN

Stack Overflow用户
提问于 2014-11-20 06:24:39
回答 2查看 16.5K关注 0票数 11

我正在尝试编写一个类似版本的python的numpy.linspace函数。

代码语言:javascript
运行
复制
double linspace(int a, int b, int c){
    double line[c];
    double delta =b-a/(c-1);
    for (int i=0; i<c; ++i){
            line[i]=0 + (i*delta);
    }
    return line;

其中A和B是数组中的第一个和最后一个分量,C指定数组中元素的数量。但是当我编译这个脚本时,它会返回:

代码语言:javascript
运行
复制
linspace.cpp: In function ‘double linspace(int, int, int)’:
linspace.cpp:11:9: error: cannot convert ‘double*’ to ‘double’ in return
  return line;
         ^

有谁碰巧知道如何解决这个问题吗?

EN

Stack Overflow用户

发布于 2014-11-20 06:30:27

你正在尝试做的事情是不会成功的。首先,使用以下命令在linspace中分配堆栈上的内存

代码语言:javascript
运行
复制
double line[c];

您要么在调用前新分配内存并传递它,要么动态分配并返回它(并记得稍后释放它)。

要动态分配,您可以执行以下操作:

代码语言:javascript
运行
复制
double * line = new double[c];

同样,当你完成它的时候,需要像这样释放它,否则你会有一个内存泄漏。

代码语言:javascript
运行
复制
delete line[];

此外,double line[c];创建了一个双精度数组,line指向该数组。所以line是一个double *。您将函数的返回类型指定为double

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27028226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档