c++动态内存空间示例(自定义空间类型大小和空间长度)_C 语言

动态内存空间的申请示范

利用C++的特性,能够自定义空间的类型大小和空间长度

下面这个程序是个数组动态配置的简单示例

复制代码 代码如下:

#include <iostream>
using namespace std;

int main()
{   int size = 0;

    cout << "请输入数组长度:";  //能够自定义的动态申请空间长度
    cin >> size;
    int *arr_Point = new int[size];

    cout << "指定元素值:" << endl;
    for(int i = 0; i < size; i++)
    {   cout << "arr[" << i << "] = ";
        cin >> *(arr_Point+i);
    }

    cout << "显示元素值:" << endl;
    for(int i = 0; i < size; i++)
    {   cout << "arr[" << i << "] = " << *(arr_Point+i)
             << endl;
    }

    delete [] arr_Point;

    return 0;
}

执行结果:

复制代码 代码如下:

请输入数组长度:5
指定元素值:
arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[4] = 5
显示元素值:
arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[4] = 5

可以使用指针来仿真二维数组,只要清楚二维数组中的两个维度的索引值之位移量就可以

复制代码 代码如下:

#include <iostream>
using namespace std;

int main()
{   int m = 0;
    int n = 0;

    cout << "输入二维数组维度:";
    cin >> m >> n;

    int *ptr = new int[m*n];

    for(int i = 0; i < m; i++)
    {   for(int j = 0; j < n; j++)
        {   *(ptr + n*i + j) = i+j;
        }
    }

    for(int i = 0; i < m; i++)
    {   for(int j = 0; j < n; j++)
        {   cout << *(ptr+n*i+j) << "\t";
        }
        cout << endl;
    }

    delete [] ptr;

    return 0;
}

时间: 2024-08-22 14:52:06

c++动态内存空间示例(自定义空间类型大小和空间长度)_C 语言的相关文章

初学C++之自定义类型名简化详解_C 语言

说明:本人使用的是vc++ IDE:vs2013 我在自定义一些类时,有时会取一些很长的名字,但是这不利于使用,这个时候就可以使用类型名简化. class MathAddBBBB { }; using MAB = MathAddBBBB; 除了使用using之外,我们还可以使用typedef来定义: typedef MathAddBBBB mab; mab m(); 以上这篇初学C++之自定义类型名简化详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持. 以上是小编为您

探讨:程序在内存中的分配(常量,局部变量,全局变量,程序代码)问题_C 语言

一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域.- 程序结束释放4.另外还有一个专门放常量的地方.- 程序结束释放 在函数体中定义的变量通常是在栈上,用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上.在所有函数体外定义的是

C++中自定义sleep、条件变量sleep实例_C 语言

sleep的作用无需多说,几乎每种语言都提供了类似的函数,调用起来也很简单.sleep的作用无非是让程序等待若干时间,而为了达到这样的目的,其实有很多种方式,最简单的往往也是最粗暴的,我们就以下面这段代码来举例说明(注:本文提及的程序编译运行环境为Linux) 复制代码 代码如下: /* filename: test.cpp */  #include <stdio.h>  #include <unistd.h>  #include <pthread.h>  #inclu

浅谈C++中的string 类型占几个字节_C 语言

在C语言中我们操作字符串肯定用到的是指针或者数组,这样相对来说对字符串的处理还是比较麻烦的,好在C++中提供了 string 类型的支持,让我们在处理字符串时方便了许多. 首先,我写了一段测试代码,如下所示: 复制代码 代码如下: #include <iostream>using namespace std; int main(void){ string str_test1; string str_test2 = "Hello World";  int value1, va

简单总结C语言中各种类型的指针的概念_C 语言

C语言中有很多关于指针的使用,指针也是C语言的灵魂所在,而且C语言中也有很多有关指针的概念,这里学习并总结了一些知道的概念.  常量指针:首先它是一个指针,常量只是用来修饰指针的定语.其定义如下: char const * cp; char a='a'; 如何识别呢?根据右结合优先,先是*优先,所以这个cp变量是一个指针,然后是const修饰*,所以这是一个常量指针.即指向常量的指针. cp=&a; //正常语法 *cp=a; //错误语法,因为其指向的值是一个常量  指针常量:首先它是一个常量

C++中变量的类型与作用域学习教程_C 语言

C++ 变量类型 变量其实只不过是程序可操作的存储区的名称.C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上. 变量的名称可以由字母.数字和下划线字符组成.它必须以字母或下划线开头.大写字母和小写字母是不同的,因为 C++ 是大小写敏感的. 基于前一章讲解的基本类型,有以下几种基本的变量类型,将在下面进行讲解: 类型 描述 bool 存储值 true 或 false. char 通常是一个八位字节(一个字节).这是一个整数类型

c++中的4种类型转化方式详细解析_C 语言

具体归纳如下: (1)reinterpret_cast该函数将一个类型的指针转换为另一个类型的指针.这种转换不用修改指针变量值存放格式(不改变指针变量值),只需在编译时重新解释指针的类型就可做到.reinterpret_cast 可以将指针值转换为一个整型数,但不能用于非指针类型的转换.例://基本类型指针的类型转换double d=9.2;double* pd = &d;int *pi = reinterpret_cast<int*>(pd);  //相当于int *pi = (in

C语言中自动隐式转换与类型强制转换实例分析_C 语言

本文通过一个C程序实例对C语言中自动隐式转换与类型强制转换的注意点进行深入分析,详情如下: 先看一个C程序: #include<stdlib.h> #include<stdio.h> #include<conio.h> double proc(int q){ int n; double sum,t;//本例的关键就在这几个变量的类型上 sum = 2.0; while(sum<=q){ t=sum; //sum = sum+(n+1)/n;//自动隐式转换 sum

浅谈c语言中类型隐性转换的坑_C 语言

谨记:在C语言中,当两种不同类型之间运算时,低字节长度类型会向高自己长度类型转换,有符号会向无符号类型转换. 举例子如下: #include <stdio.h> void func(void) { int i = 1; unsigned char c1 = 1; signed char c2 = -1; if (c2 > i){ printf("\r\n -1 > 1"); } else{ printf("\r\n -1 <= 1");