MST

星途 面试题库

面试题:C语言指针数组定义与基础应用

请定义一个指针数组,使其每个元素可以指向一个长度为10的整型数组,并编写一段代码,利用该指针数组,对5个长度为10的整型数组进行初始化,每个数组元素初始值为其数组下标与元素下标的乘积。最后打印出其中第二个数组的所有元素。
49.4万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

int main() {
    // 定义指针数组,每个元素可以指向一个长度为10的整型数组
    int (*ptrArray[5])[10];

    // 对5个长度为10的整型数组进行初始化
    for (int i = 0; i < 5; ++i) {
        ptrArray[i] = new int[10];
        for (int j = 0; j < 10; ++j) {
            (*ptrArray[i])[j] = i * j;
        }
    }

    // 打印出第二个数组的所有元素
    std::cout << "第二个数组的元素为: ";
    for (int j = 0; j < 10; ++j) {
        std::cout << (*ptrArray[1])[j] << " ";
    }
    std::cout << std::endl;

    // 释放动态分配的内存
    for (int i = 0; i < 5; ++i) {
        delete[] ptrArray[i];
    }

    return 0;
}

解释:

  1. 首先定义了一个指针数组 ptrArray,它的每个元素是一个指针,指向长度为10的整型数组。
  2. 使用双层循环初始化5个长度为10的整型数组,外层循环控制数组指针,内层循环控制数组元素。
  3. 打印第二个数组(下标为1)的所有元素。
  4. 最后释放动态分配的内存,避免内存泄漏。