如何解决有人可以说明这是要我做什么吗?
我了解数组(int ** intptrArray [5])和rand()数字部分的创建。但是,我不明白中间的句子-我知道我需要先分配数组,然后将数组中的每个指针分配给一个int,但是我不确定该如何处理,因此我一直处于困境几个小时。我需要在这里使用malloc,我该怎么做?
解决方法
要求
创建一个int *(即int **)数组
是一个矛盾。一个对象可以是一个数组或一个指针,一个指针数组,一个指向数组的指针或它们的某种组合。但是指针与数组不同,数组不是指针,指针也不是数组。当您访问数组时,数组通常会衰减到指针,但是仍然有2个不同的概念。
数组可以具有类型int *intptrArray[]
,类型int **intptrPtr
是指向int
的指针,这包括指向{{1 }},是指向int
数组的指针或指向int
数组的指针的指针。
要求
5号
具有误导性。根据C标准,对象的大小以字节为单位。通常无法使用int
创建大小为5的数组,因为在许多平台上指针的大小为4或8个字节。 C标准不限制指针的可能大小,因此5是可能的,但我从未见过支持此功能的机器。我认为他是指数组的长度。
我认为最好问一下给您这个要求的那个人。
,似乎您需要在文件范围中声明一个指针类型为int **的变量,如
int **intptrArray;
然后在函数中(例如在main
中),您需要分配5
类型的int *
个元素的数组,例如
intptrArray = malloc( 5 * sizeof( int * ) );
然后在循环中,应使用一个指针初始化数组的每个元素,以动态地为类型为int
的一个对象分配内存。
然后使用功能rand
,需要为这些整数分配值。
例如
for ( size_t i = 0; i < 5; i++ )
{
intptrArray[i] = malloc( sizeof( int ) );
*intptrArray[i] = rand();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。