动态数组1

来源:互联网 发布:微信小视频软件制作 编辑:程序博客网 时间:2024/06/05 15:29
#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[n];           // 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;}

0 0