鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 哼哈二将!

[已解决]我想设置一个数组,长度为输入数字的数位。。。。

[复制链接]
发表于 2020-11-8 10:36:49 | 显示全部楼层
哼哈二将! 发表于 2020-11-8 10:36
就怕这种23400000000123的吧

确实
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-8 10:37:04 | 显示全部楼层
lhgzbxhz 发表于 2020-11-8 10:33
这貌似是c99定义的标准,在c++标准下无法运行
为获得最大程度的可移植性,请尽量使用new或malloc

谢谢,看来是我弄混乱了。因为我主要用的是g++的编译器。并且之前也一直用的C语言
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-8 10:38:21 | 显示全部楼层
谢谢大家了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-8 10:39:14 | 显示全部楼层
https://stackoverflow.com/questi ... have-constant-value

C++ doesn't allow variable length arrays. The size must be a constant. C99 does support it so if you need you can use a C99 compliant compiler. Some compilers like GCC and Clang also support VLA as an extension in C++ mode

But if C++ is a must then you can use alloca (or _alloca on Windows) to allocate memory on stack and mimic the C99 variable length array behavior

Amta = (int *)alloca(sizeof(int) * size);
This way you don't need to free the memory after going out of scope because the stackframe will automatically be restored. However you need to be very careful while using this. It's still better to use std::vector in C++ for these purposes
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 17:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表