请教c++中如何通过键盘输入数字来确定数组的大小

redzzj 2004-10-19 08:23:10
请教
c++中如何通过键盘输入数字来确定数组的大小,下面程序编译有问题
long int len;
printf("\nplease input the binfile length:\n");
scanf("%ld",&len)
unsigned char gImage_data[len];
但改为unsigned char gImage_data[60776];就ok了,

标准c如何实现系统调色板与逻辑调色板的映射,谢谢!
...全文
790 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
redzzj 2004-10-20
  • 打赏
  • 举报
回复
谢谢各位了!!!!!!!!!!!!!!!!11
  • 打赏
  • 举报
回复
同意
Flood1984 2004-10-19
  • 打赏
  • 举报
回复
动态申请:
long int len;
char *len;
printf("\nplease input the binfile length:\n");
scanf("%ld",&len);
len=(char*)malloc(sizeof(char)*len);
lynnboy 2004-10-19
  • 打赏
  • 举报
回复
在传统C程序中,经常预先定义一个可能的最大数组大小,不过这种办法不灵活,安全性也较差:
#define MAXSIZE XXX
...
char buf[MAXSIZE];
len = ...;
while (i < len)...;
...
C99允许自动变量数组根据某个变量值动态决定大小,不过大小确定后就不可更改。
len = ...;
char buf[len];
...
C和C++程序中比较安全、动态的方法是在堆中分配动态内存,不过访问堆的速度相对比较慢,而且需要对分配的内存进行释放。
C使用alloc()函数族,用free()释放。
C++可以使用new[]/delete[]运算符。
pc2s 2004-10-19
  • 打赏
  • 举报
回复
C99以前标准不允许数组下标为变量。
所以,你只能用动态内存分配(new)
但是需要注意程序结束后,应该清除(delete)
积木 2004-10-19
  • 打赏
  • 举报
回复
C++没有运行期的数组,因为数组都是在编译期确定好的,因为要在堆栈上分配内存。
constipated_chimp 2004-10-19
  • 打赏
  • 举报
回复
动态的申请内存.
loki2k 2004-10-19
  • 打赏
  • 举报
回复
这是c++语法的规定,编译时要确定数组大小
yangfasheng 2004-10-19
  • 打赏
  • 举报
回复
cin>>num;
*p=new int[num];
for(int i=0; i<num;i++)
p[i] = 0;// 初始化;
不知道是否可以通过创建动态对象(没有名字的变量),再通过指针间接地对它进行操作,
xiaoli_winner 2004-10-19
  • 打赏
  • 举报
回复
同意楼上,用指针*P来接。
carylin 2004-10-19
  • 打赏
  • 举报
回复
还可以使用STL的string数据类型啊。
carylin 2004-10-19
  • 打赏
  • 举报
回复
可以这样啊:
long int len;
printf("\nplease input the binfile length:\n");
scanf("%ld",&len);
char *p = new char[len];


realmz 2004-10-19
  • 打赏
  • 举报
回复
变长数组是C99标准的,vc 6.0应该不支持的
blackcrusoe 2004-10-19
  • 打赏
  • 举报
回复
用Vector,C++标准的动态数组。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧