33,311
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
void copy_2arr(size_t N_length, size_t M_length, int(*)[5], int(*)[5]);
void show_2arr(size_t N_length, size_t M_length, int(*)[5]);
int _tmain(int argc, _TCHAR* argv[])
{
int arr1[3][5] = { { 1, 2, 3, 4, 5 }, { 2, 3, 4 ,5, 6 }, { 7, 8, 9, 10, 11 } };
int arr2[3][5];
copy_2arr(3, 5, arr2, arr1);
show_2arr(3, 5, arr1);
show_2arr(3, 5, arr2);
system("PAUSE");
return 0;
}
void copy_2arr(size_t N_length, size_t M_length, int(*arr_des)[5], int(*arr_sour)[5])
{
for (size_t i = 0; i < N_length; i++)
{
for (size_t i = 0; i < M_length; i++)
{
arr_des[N_length][M_length] = arr_sour[N_length][M_length];
printf(" d_%d ", arr_des[N_length][M_length]);
printf(" s_%d ", arr_sour[N_length][M_length]);
printf("\n");
}
printf("\n");
}
printf("\n");
}
void show_2arr(size_t N_length, size_t M_length, int(*arr_show)[5])
{
for (size_t i = 0; i < N_length; i++)
{
for (size_t i = 0; i < M_length; i++)
{
printf(" %d ", arr_show[N_length][M_length]);
}
printf("\n");
}
printf("\n");
}
arr_des[N_length][M_length] = arr_sour[N_length][M_length];
如果这样赋值,那么还需要i, j做什么?另外,这样使用很明显是数组越界了,会导致程序异常。
同理,show函数内的输出一样。