#include <stdio.h>
#define N 5
int main( void )
{
int a[N] = { 3, 2, 2, 4, 5 };
int b[N] = { 6, 3, 1, 2, 9 };
int c[N][2];
for ( size_t i = 0; i < N; i++ )
{
c[i][0] = a[i]; c[i][1] = b[i];
}
for ( size_t i = 0; i < N; i++ ) printf( "%d, %d\n", c[i][0], c[i][1] );
return 0;
}
字符串 程序输出为
3, 6
2, 3
2, 1
4, 2
5, 9
型 如果要编写一个函数来合并任意大小的数组,则可以如下所示:
#include <stdio.h>
#include <stdlib.h>
#define N 5
int ** merge( int *a, int *b, size_t n )
{
int **c = malloc( n * sizeof( int * ) );
if ( c != NULL )
{
size_t i = 0;
for ( ; i < n && ( c[i] = malloc( 2 * sizeof( int ) ) ); i++ )
{
c[i][0] = a[i]; c[i][1] = b[i];
}
if ( i != n )
{
while ( i-- ) free( c[i] );
free( c );
c = NULL;
}
}
return c;
}
int main( void )
{
int a[N] = { 3, 2, 2, 4, 5 };
int b[N] = { 6, 3, 1, 2, 9 };
int **c;
c = merge( a, b, N );
if ( c != NULL )
{
for ( size_t i = 0; i < N; i++ ) printf( "%d, %d\n", c[i][0], c[i][1] );
for ( size_t i = 0; i < N; i++ ) free( c[i] );
free( c );
}
return 0;
}
4条答案
按热度按时间toiithl61#
一个简单的方法可以如下所示
字符串
程序输出为
型
如果要编写一个函数来合并任意大小的数组,则可以如下所示:
型
程序输出将与上图所示相同。
5q4ezhmt2#
我是这样理解的。
字符串
评论后:
型
ee7vknir3#
你可以在C++中做到这一点。
字符串
e1xvtsh34#
如果你知道数组的大小,你可以用这种方式创建2D数组:
字符串
也可以看看 malloc 函数。这是如何创建动态2D数组
型
当然,你应该使用for循环。我只告诉你如何创建数组。也请看看这个线程Using malloc for allocation of multi-dimensional arrays with different row lengths