用外部全局变量C分配数组大小

罐头

我有以下简单的示例代码:

1。

//param.h
extern int n;

2。

//param.cpp
int n =10;

3。

# include <iostream>
# include "param.h"
using namespace std;
int main()
{
    double Arr[n];
    return 0;
}

由于无法定义n,因此无法编译。

为什么,在保持相同结构的情况下解决此问题的最佳方法是什么?

rgmt

n是非常量的:您不能使用n大小声明静态数组正如@NickyC在评论中指出的,简单的解决方案是将数组替换为std :: vector

#include <vector>

std::vector<double> Arr(n/*, default_value*/);

如果要继续使用数组,则必须声明n为const:

// param.h
extern const int n;

// param.cpp
const int n = 10;

或声明一个动态数组:

double* Arr = new double[n];
...
delete[] Arr;
return 0;

或使用托管指针更好:

#include <memory>

std::unique_ptr<double[]> Arr = std::make_unique<double[]>(n);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

gfortran和ifort之间的编译器差异(可分配数组和全局变量)

来自分类Dev

用C也给变量字符串分配数组

来自分类Dev

在 C 中没有全局变量或更改函数输入的函数内部数组的变量分配

来自分类Dev

使用C#从异步方法分配全局变量

来自分类Dev

用C中的整数广播全局变量指针初始化全局变量

来自分类Dev

全局和静态全局变量的外部

来自分类Dev

全局变量用例

来自分类Dev

数组和全局变量

来自分类Dev

C#简单循环来分配数组变量

来自分类Dev

C ++项目:在哪里用函数定义全局变量

来自分类Dev

在没有全局变量的C ++函数中创建数组

来自分类Dev

C分配数组错误

来自分类Dev

如何使用AsyncTask分配全局变量

来自分类Dev

在多个GPU上分配全局变量

来自分类Dev

从async.waterfall分配全局变量

来自分类Dev

如何从字典分配全局变量?

来自分类Dev

C ++全局变量声明

来自分类Dev

C ++构造全局变量

来自分类Dev

从 TypeScript 引用全局变量/外部库

来自分类Dev

jquery全局变量无法从外部访问

来自分类Dev

静态全局变量与全局变量C

来自分类Dev

PDO:fetchAll分配数组变量

来自分类Dev

在 Oracle 中分配数组或表变量

来自分类Dev

malloc和全局变量声明将它们的变量分配到C中的什么位置?

来自分类Dev

C中的全局变量和动态分配的v变量有什么区别?

来自分类Dev

Perl用全局变量逐行读取

来自分类Dev

用线程增加全局变量

来自分类Dev

用线程增加全局变量

来自分类Dev

Javascript函数更改全局变量(数组)