VC中解决数组长度不能使用变量的方法
Posted 一路探索者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC中解决数组长度不能使用变量的方法相关的知识,希望对你有一定的参考价值。
通常我们定义数组的长度时,这个长度是一个整数常量,但有时我们需要定义整数变量,这种情况下编译时会出现如下的错误提示:
error C2057: 应输入常数表达式; error C2466: 不能分配常数大小为 0 的数组。
解决的办法有如下两种方法:
1、 使用宏#define来定义数组的长度;
2、 使用new关键字来构造数组。
本例的关键代码如下:
void CSample1View::OnDraw(CDC* pDC)
{
CSample1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
#define count 3
CString testStr[count];
testStr[0]="Test1";
testStr[1]="Test2";
testStr[2]="Test3";
for(int i=0;i<count;i++)
pDC->TextOut(0,i*20,testStr[i]);
}
void CSample2View::OnDraw(CDC* pDC)
{
CSample2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
int count=3;
CString* pTestStr=new CString[count];
pTestStr[0]="Test1";
pTestStr[1]="Test2";
pTestStr[2]="Test3";
for(int i=0;i<count;i++)
pDC->TextOut(0,i*20,pTestStr[i]);
}
以上是关于VC中解决数组长度不能使用变量的方法的主要内容,如果未能解决你的问题,请参考以下文章
C#定义一个长度为100的数组,往数组里面随机添加1-100个数,不能重复
GroovyGroovy 方法调用 ( 字符串切割 | 使用 Java 语法切割字符串 | 使用 Groovy 语法切割字符串直接为变量赋值 | 数组赋值给变量 变量个数小于等于数组长度 )