C/C++中动态数组array的用法

具体给讲讲,最好能附上代码说明。
一维二维的都具体说一下,谢谢了。

  StrArr: array of String; //动态数组定义时不与维数
  begin
  SetLength(StrArr,6); //分配6个元素位置: 0-5
  StrArr[0] := '万一'; //动态数组的下界是 0
  ShowMessage(StrArr[0]); //分配空间后和静态数组一样使用
  StrArr := nil; //一般没必要手动释放, 动态数组离开作用域会自释放
  例如:
  Arr1,Arr2: array of Integer;
  a: array[0..1] of Integer;
  begin
  SetLength(Arr1,6);
  Arr1[5] := 100;
  Arr2 := Arr1; //Arr2 引用了 Arr1
  ShowMessage(IntToStr(Arr2[5])); //100
  ShowMessage(IntToStr(Length(Arr2))); //当然 Arr2 维数也会是 6
  ShowMessage(IntToStr(SizeOf(Arr1))); //4, 其实动态数组是个指针
  ShowMessage(IntToStr(SizeOf(Arr2))); //4
  Arr2[5] := 99; //现在它们指向同一个数组, 改变这个就是改变那个
  ShowMessage(IntToStr(Arr1[5])); //99
  Arr1 := nil; //释放其中一个指针, 数组继续存在
  ShowMessage(IntToStr(Arr2[5])); //99
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-14
一维的动态数组就不说了,给你一个二维动态数组的例子:
#include "stdafx.h"

#include <iostream>

using namespace std;

int main()

{

int r; //行数

int c; //列数

cout<<"Please input the number of rows of the dynamic array: ";

cin>>r; //输入行数

cout<<"Please input the number of columns of the dynamic array: ";

cin>>c; //输入列数

//创建二维动态数组

int **p=new int*[r];

for(int i=0;i<r;i++)

{

p[i]=new int[r];

}

cout<<"The array named p["<<r<<"]["<<c<<"] is created."<<endl;

//循环赋值

int temp;

for(int i=0;i<r;i++)

{

for(int j=0;j<c;j++)

{

cout<<"Please input a value of p["<<i<<"]["<<j<<"] in the array: ";

cin>>temp;

*(*(p+i)+j)=temp; //寻址赋值

}

}

//循环显示

cout<<"The dynamic array is "<<endl;

for(int i=0;i<r;i++)

{

for(int j=0;j<c;j++)

{

cout<<*(*(p+i)+j)<<" "; //寻址读取

}

cout<<endl;

}

return 0;

}本回答被提问者采纳
第2个回答  2010-05-30
new arry[]
delete [] arry
相似回答