我是初学者。
如何声明100个不同的整数数组? 键入所有内容将不是一个好主意。
我的方法:我制作了结构数组,每个结构数组中都包含一个整数数组,但问题是每个结构数组都必须具有不同大小的整数数组,所以我现在该怎么办?
将整数数组的大小视为其所在结构数组数量的函数
答案 0 :(得分:1)
一种方法是动态分配n
int*
s数组,然后使用刚分配的每个指针分配k
int
s数组指向每个单独的新int
池,我在下面添加并评论了一个示例:
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int** arr;
/* create a pool of 100 int* */
arr = malloc( 100 * sizeof(int*) );
for( int i = 0; i < 100; ++i )
{
/* assign each pointer to an array of length i */
arr[i] = malloc( i * sizeof(int) );
for( int j = 0; j < i; ++j )
{
/* assign each integer to j (just so they aren't all the same) */
arr[i][j] = j;
}
}
/* check we've done everything correctly by printing every int allocated */
for( int i = 0; i < 100; ++i )
{
for( int j = 0; j < i; ++j )
{
printf( "%d\n", arr[i][j] );
}
}
/* free up the memory, this isn't required in such a small program,
but any memory dynamically allocated will leak if not free'd */
for( int i = 0; i < 100; ++i )
{
free( arr[i] );
}
free( arr );
}