有人可以澄清这是要我做什么吗?

Can someone please clarify what this is asking me to do?

我了解数组 (int** intptrArray[5]) 和 rand() 数字部分的创建。但是,我不明白中间的句子——我知道我需要先分配数组,然后将数组中的每个指针分配给一个 int,但我不确定如何去做,我一直被卡住了几个小时。我需要在这里使用 malloc 吗?我该怎么做?

看来你需要在文件作用域声明一个指针类型为int **的变量,比如

int **intptrArray;

然后在一个函数中(例如在 main 中)你需要分配 5 类型元素的数组 int * like

intptrArray = malloc( 5 * sizeof( int * ) );

然后在一个循环中,数组的每个元素都应该由一个指针初始化,以便为 int.

类型的一个对象动态分配内存

然后使用函数 rand 您需要为这些整数赋值。

例如

for ( size_t i = 0; i < 5; i++ )
{
    intptrArray[i] = malloc( sizeof( int ) );
    *intptrArray[i] = rand();
}

要求

create an array of int * (i.e., int **)

是矛盾的。对象可以是数组或指针、指针数组、指向数组的指针或它们的某种组合。但是指针与数组不同,数组不是指针,指针也不是数组。当您访问数组时,数组通常会衰减为指针,但仍然存在 2 个不同的概念。

数组可以有类型 int *intptrArray[],类型 int **intptrPtr 是指向 int 的指针,这包括指向指向 [=12= 的指针数组的指针的可能性=12=],指向指向 int 数组的指针或指向指向 int 数组的指针数组的指针。

要求

of size 5

具有误导性。根据 C 标准,对象的大小以字节为单位。使用 int * 创建大小为 5 的数组通常是不可能的,因为在许多平台上指针的大小为 4 或 8 字节。 C 标准不限制指针的可能大小,所以 5 是可能的,但我从未见过支持这个的机器。我认为他的意思是数组的长度。

我认为最好向提出此要求的人请教。