如题所述
å¦ææ°ç»çå
ç´ ä¸ªæ°ä¸ç¥éçè¯ï¼åªè½éè¿å¨æå
ååé
äºï¼éæå
ååé
æ¯æ²¡æåæ³å®ç°çï¼å 为éæå
ååé
å¨å®ä¹æ°ç»çæ¶åå¿
é¡»æå®æ°ç»ç大å°ä¸ºä¸ä¸ªå¸¸éæè
常æ°ï¼ä¾å¦ï¼
int array[10];
æè
const int Size=10;
int array[Size]ã
int array[10];
æè
const int Size=10;
int array[Size]ã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-01-09
...........
首先我从未碰到需要定义未知大小的数组;
其次既然知道大小未知是无法定义数组的;当然也就无法直接定义了
--------------------------
如果硬要用,只有自己做咯, 灵活用指针....下面例子仅仅用int型做个示范,更多用法可以参考标准库怎么实现的:
class PointerArray
{
public:
PointerArray() : m_pData(NULL) , m_nSize(0), m_nLen(0)
{
}
virtual ~PointerArray()
{
if (NULL != m_pData)
{
delete[] m_pData;
m_pData = NULL;
}
}
protected:
int m_nSize;
int m_nLen;
int *m_pData;
};
class CMyArray::public PointerArray
{
public:
CMyArray (int nSize = 10)
{
if (nSize <= 0) nSize = 10;
m_nSize = nSize;
m_pData = new int[m_nSize];
}
~CMyArray ()
{
}
public:
int Length() const
{
return m_nLen;
}
bool addData(int src) //
{
if (m_nLen >= m_nSize)
{
int nSize = m_nSize * 2 + 1;
int *pTemp = new int [nSize];
if (!pTemp) return false;
memcpy(pTemp, m_pData, sizeof(int) * m_nLen);
delete []m_pData;
m_pData = pTemp;
m_nSize = nSize;
}
memcpy(m_pData + m_nLen, &src, sizeof(int));
m_nLen++;
return true;
}
};
使用方法:
CMyArray myArray(1); //定义只有一个元素的我们实现的CMyArray对象
myArray.addData(xxx); 可以任意 调用addData
首先我从未碰到需要定义未知大小的数组;
其次既然知道大小未知是无法定义数组的;当然也就无法直接定义了
--------------------------
如果硬要用,只有自己做咯, 灵活用指针....下面例子仅仅用int型做个示范,更多用法可以参考标准库怎么实现的:
class PointerArray
{
public:
PointerArray() : m_pData(NULL) , m_nSize(0), m_nLen(0)
{
}
virtual ~PointerArray()
{
if (NULL != m_pData)
{
delete[] m_pData;
m_pData = NULL;
}
}
protected:
int m_nSize;
int m_nLen;
int *m_pData;
};
class CMyArray::public PointerArray
{
public:
CMyArray (int nSize = 10)
{
if (nSize <= 0) nSize = 10;
m_nSize = nSize;
m_pData = new int[m_nSize];
}
~CMyArray ()
{
}
public:
int Length() const
{
return m_nLen;
}
bool addData(int src) //
{
if (m_nLen >= m_nSize)
{
int nSize = m_nSize * 2 + 1;
int *pTemp = new int [nSize];
if (!pTemp) return false;
memcpy(pTemp, m_pData, sizeof(int) * m_nLen);
delete []m_pData;
m_pData = pTemp;
m_nSize = nSize;
}
memcpy(m_pData + m_nLen, &src, sizeof(int));
m_nLen++;
return true;
}
};
使用方法:
CMyArray myArray(1); //定义只有一个元素的我们实现的CMyArray对象
myArray.addData(xxx); 可以任意 调用addData
第2个回答 2012-01-09
你可以动态创建这个数组 ,如
int *a = new int[100];
这儿就是创建一个100长度的int型数组
int *a = new int[100];
这儿就是创建一个100长度的int型数组
第3个回答 2012-01-09
如int a[1000]
即可本回答被网友采纳
即可本回答被网友采纳
第4个回答 2012-01-09
可以用vector实现