您的位置:首页 > 其它

动态数组1

2016-01-15 09:36 375 查看
#include <iostream>
#include <string>

using namespace std;

int main ()
{
int a[10];      //静态数组,堆栈上创建的,

int n;
cout << "你想要多大的数组:" << endl;
cin >> n;

int *p = (int *)malloc(n * sizeof(int));// C语言创建动态数组,
if(p!=NULL)
{
cout << "C语言malloc创建动态数组成功!" << endl;
}

int *p1 = new int
;           // C++用new创建动态数组,
if(p1 != NULL)
{
cout << "C++语言new创建动态数组成功!" << endl;
}

free(p);        //C语言用free释放动态数组,
delete[] p1;    //C++语言用delete[]释放动态数组,

int *p2 = new int[10];    //没有初始化,
string *p3 = new string[10];//默认的构造函数初试化,
int *p4 = new int[10]();    //初始化为0;指针指向动态创建的第一个元素,
cout << *(p4 + 3) << endl;  // 输出的是0,
*p2 = 8;
*(p2 + 1) = 7;

cout << *(p2 + 1) << endl;   // 输出的是7,
//动态数组只能初试化为0,
for(int* q = p4; q != p4 + 10; ++q)
{
*q = 11;    // 把每一个元素定义成11,就是进行初始化,
}

for(int* q = p4; q != p4 + 10; ++q)
{
cout << *q << endl;// 输出的10个11;
}
cout << "请输入动态数组的大小:" ;

size_t m;
cin >> m;

int *q1 = new int[m];
for(int *q2 = q1; q2 != q1 + m; ++q2)
{
*q2 = 88;
cout << *q2 << endl;  // 输出的是m个88,
}

delete[] p2;
delete[] p3;  //delete[]就是将其删除掉,
delete[] p4;  // 静态的数组是在堆栈上创建的,是局部变量,
delete[] q1;  // delete[]和mew是一起出现的,忘记delete就会产生内存泄露,
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: