2010-01-31 1 views
3
int x[10],y[10]; 
x = y; 

나는이 효과를 얻을 수있는 간단한 해킹을 생각하고있다.C에서는 이와 같이 배열을 복사 할 수 없습니다. 왜? 그리고 최고의 해킹

+0

나는 당신이 C라는 태그를 붙 였지만 여전히 확인하고있다. C++ 해결책은 괜찮을 까? –

+5

오류가 발생했습니다. 해킹이 필요한 이유가 무엇인가요? 왜 언어로 프로그램하는 법을 이해하지 못합니까? – Hogan

+1

caf에서 데이터를 복사하는 가장 좋은 방법에 대한 질문에 답변했습니다. 단순한 할당이 불가능한 이유에 대해 http://stackoverflow.com/questions/2035066/type-of-an-array/2035255#2035255 유용한 정보 (비슷한 질문에 대한 내 답변)를 찾을 수 있습니다. –

답변

19

당신은 간단한 할당 사용 struct의에서 그 (것)들을 포장 할 수 있습니다

struct foo { int a[10]; } x, y; 
x = y; 

하지만 실제로는 memcpy을 사용하십시오.

+0

GCC는 실제로 그 예제로'memcpy'를 호출합니다. –

11

메모리 블록을 전송하려면 memcpy (또는 memmove)을 사용해야합니다.

memcpy(x, y, sizeof(x)); 
1

사용 방어 적이기(), 또는으로 자신을 복사 A의 (전 = 0; 나는 < 10; 내가 ++) 루프

관련 문제