【发布时间】:2023-03-16 18:16:01
【问题描述】:
我有一个结构体,里面有一个数组。该数组的大小需要为 3*input_variable。如何在外部定义一个数字,它乘以输入值,我可以在结构中使用它来声明数组的长度?
我尝试将 main 之外的变量 h 定义为
extern h
然后从输入变量中分配它的值。
我也尝试过使用(总结)
nt main(int argc, char** argv)
{
int input_variable;
std::cin << input_variable;
int h = input_variable * 3;
void some_function(); // function does some stuff
// with the structs
#ifndef ARRAY_SIZING
#define ARRAY_SIZING h
#endif
return 0;
}
struct _struct_
{
constexpr std::size_t b = ARRAY_SIZING;
double* arr[b];
};
int some_function()
{
// structs are used down here.
return 0;
}
我希望能够使用输入参数在结构中分配数组的大小。谢谢。
【问题讨论】:
-
在 c++ 中使用
std::vector动态调整数组大小- -
C++ 中数组的大小是编译时间常数,你无法通过这种幼稚的技巧来改变它。使用
std::vector -
那么不发送结构体而是发送二进制缓冲区
-
您不能在 C++ 中执行此操作。看起来你的目标是一个灵活的数组成员。您必须在 C 或 C++ 编译器中执行此操作,该编译器打破了 C++ 标准并支持灵活的数组成员
-
结构到底是什么样的?我们或许能够提供可行的替代方案
标签: c++ arrays dynamic struct extern