#include <iostream>
int *parray(int a[100][100],int m , int n)
{ int b[200],i, t , j;
i = 1;
j = t = 0;
for(int i = 0; i < m ; i++)
for(int j = 0; j < n ; j++)
b[t++] = a[i][j];
// for(int i = 0; i < m*n ; i++)
// std::cout<<b[i]<<' ';
return b;
}
int main()
{
int a[100][100],m,n,*b;
std::cin>>m>>n;
for(int i = 0; i < m ; i++)
for(int j = 0; j < n ; j++)
std::cin>>a[i][j];
b = parray(a,m,n);
for(int i = 0; i < m*n ; i++)
std::cout<<b[i]<<' ';
return 0;
}
출력두 번째 케이스에서 코드가 작동하는 이유는 무엇입니까?
1 2 612675848 32767
2 2 1 2 3 4
이다 입력되면하지만 제거해 둘은 "//"그냥 parray()
함수의 리턴 전에 출력된다 :
1 2 3 4 1 2 3 4
누군가 전달하기 전에 값을 인쇄 할 때 코드가 작동하는 이유를 알려주실 수 있습니까?
'int b [200]'200은 충분히 커지지 않을 것입니다. 'int b [10000]'이어야합니다. – scohe001
두 번째로 작동하는 이유를 알고 싶습니다. – jymspaul