MST

星途 面试题库

面试题:C++ 中动态内存分配时指针的常规使用

请使用 C++ 中的 new 运算符为一个包含10个整数的数组分配动态内存,然后通过指针遍历该数组并为每个元素赋值为其下标值,最后使用 delete[] 释放内存。请写出完整的代码,并解释每一步的作用。
15.2万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

int main() {
    // 使用new运算符为包含10个整数的数组分配动态内存
    int* arr = new int[10]; 

    // 通过指针遍历数组并为每个元素赋值为其下标值
    for (int i = 0; i < 10; ++i) {
        arr[i] = i; 
    }

    // 输出数组元素以验证赋值结果
    for (int i = 0; i < 10; ++i) {
        std::cout << "arr[" << i << "] = " << arr[i] << std::endl;
    }

    // 使用delete[]释放动态分配的内存
    delete[] arr; 

    return 0;
}
  1. int* arr = new int[10];new 运算符用于在堆上分配内存。这里为一个包含10个整数的数组分配内存,并返回指向该内存块起始地址的指针,将其赋值给 arr
  2. for (int i = 0; i < 10; ++i) { arr[i] = i; }:通过循环遍历数组,利用指针 arr 访问数组的每个元素,并将其赋值为当前的下标值 i
  3. for (int i = 0; i < 10; ++i) { std::cout << "arr[" << i << "] = " << arr[i] << std::endl; }: 再次遍历数组,输出每个元素的值,用于验证赋值是否正确。
  4. delete[] arr;delete[] 运算符用于释放由 new[] 分配的动态内存。这里释放 arr 指向的包含10个整数的数组所占用的内存,防止内存泄漏。