当前位置:首页 > 行业动态 > 正文

c语言 数组怎么分配内存的

在C语言中,数组的内存分配是通过使用关键字newdelete来完成的,下面是关于C语言数组内存分配的详细解释:

1、动态分配内存:

使用new关键字可以动态地为数组分配内存空间。

new操作符返回一个指向新分配内存的指针。

语法格式如下:

“`c

dataType* arrayName = new dataType[arraySize];

“`

dataType是数组元素的类型,arrayName是数组的名称,arraySize是要分配的数组大小。

2、静态分配内存:

在函数内部定义的数组会在栈上自动分配内存空间。

栈上的内存会在函数调用结束时自动释放。

语法格式如下:

“`c

dataType arrayName[arraySize];

“`

dataType是数组元素的类型,arrayName是数组的名称,arraySize是要分配的数组大小。

3、释放内存:

使用delete关键字可以释放之前通过new操作符分配的内存空间。

delete[]操作符用于释放动态分配的数组内存,而delete操作符用于释放单个对象的内存。

语法格式如下:

“`c

delete[] arrayName; // 释放动态分配的数组内存

delete arrayName; // 释放单个对象的内存

“`

arrayName是要释放内存的数组名称。

下面是一个示例代码,演示了如何使用newdelete来分配和释放数组内存:

#include <iostream>
using namespace std;
int main() {
    // 动态分配一个包含5个整数的数组
    int* myArray = new int[5];
    
    // 给数组元素赋值
    for (int i = 0; i < 5; i++) {
        myArray[i] = i * 2; // 每个元素值乘以2
    }
    
    // 打印数组元素值
    for (int i = 0; i < 5; i++) {
        cout << "myArray[" << i << "] = " << myArray[i] << endl;
    }
    
    // 释放动态分配的数组内存
    delete[] myArray;
    
    return 0;
}

上述代码中,我们首先使用new操作符动态地为一个包含5个整数的数组分配了内存空间,我们使用循环给数组元素赋值,并打印出每个元素的值,我们使用delete[]操作符释放了之前动态分配的数组内存。

0