以下是一个根据CPU个数动态生成大小为3的二维数组的实现方式:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main() {
    int cpu_count = sysconf(_SC_NPROCESSORS_CONF); // 获取CPU个数

    int **array = (int **)malloc(cpu_count * sizeof(int *)); // 动态分配一维数组
    for (int i = 0; i < cpu_count; i++) {
        array[i] = (int *)malloc(3 * sizeof(int)); // 动态分配二维数组
    }

    // 初始化二维数组
    for (int i = 0; i < cpu_count; i++) {
        for (int j = 0; j < 3; j++) {
            array[i][j] = i * 3 + j;
        }
    }

    // 打印二维数组
    for (int i = 0; i < cpu_count; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%d ", array[i][j]);
        }
        printf("\n");
    }

    // 释放内存
    for (int i = 0; i < cpu_count; i++) {
        free(array[i]);
    }
    free(array);

    return 0;
}

此代码使用了sysconf(_SC_NPROCESSORS_CONF)函数来获取CPU个数,然后动态分配一维数组和二维数组,并对二维数组进行初始化和打印。最后释放内存。


原文地址: https://www.cveoy.top/t/topic/qtZV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录