그래서 연속으로 이틀에 걸쳐 박기하고 문제가있는 것입니다 :문제 메모리를 복사 할 때
(tuple1 및 tuple2가 무효 포인터가이 함수에 전달되는) 아이디어는 할당하는
char *data;
data = (char*) calloc (76, 1);
memcpy(data, tuple1, 32);
memcpy(data+32, tuple2, 44);
tuple1
및 tuple2
크기의 합계와 동일한 메모리 (tuple1
은 32 바이트이고 tuple2
은 44입니다.) tuple1
의 32 바이트를 복사하여 데이터 주소에 붙여 넣은 다음 44 바이트의 tuple2
을 복사하여 붙여 넣으십시오 데이터의 주소 다음 32 바이트.
tuple1
또는 tuple2
만 복사하면됩니다. 여기에 넣기에는 너무 긴 함수로 데이터를 인쇄하고 있습니다. 그러나 두 개의 메모리 사본을 처음 복사 할 때 memcpy()
은 잘 작동하지만 두 번째는 제대로 작동하지 않습니다.
누구든지이 심각한 문제를 해결할 수 있습니까?
당신이해야 설명 무엇에 의해 자체, 일했다. 그러나 표시되지 않은 코드가 작동하지 않을 수있는 이유는 여러 가지가 있습니다. 컴파일되고 실행될 때 문제를 보여주는 완벽한 프로그램을 게시하십시오. 그것이하는 일과 당신이 기대 한 바에 대해 설명합니다. – zwol
증명해보십시오. 설명하는 동작을 표시하는 완전한 프로그램을 표시하십시오 (memcpy 행 중 하나가 주석 처리 된 경우). 데모에 이르기까지 실제 코드를 잘라내는 과정에서 갑자기 다시 작업하기 시작하면 문제가 무엇인지 알려줍니다. –
두 번째 복사본이 작동하지 않는다는 것을 어떻게 알 수 있습니까? 무슨 증거가 있니? – abelenky