2014-04-18 2 views
0

사용자 선택에 따라 배열에서 요소를 삭제하는 간단한 프로그램을 작성하고, 선택한 요소 다음에 요소를 그 자리로 이동시키는 등의 작업을하고 싶습니다. 그런 다음 (size-1)의 배열을 표시하면이 온라인을 많이 보았습니다. 나는 size-1이 아닌 실제 크기로 배열을 표시 할 수 있는지 알고 싶습니다. 그래서 삭제 후에 거기에 하나의 요소가 있지만 더 이상 존재하지 않는다는 것을 명확히합니다. 따라서 크기가 10 인 경우 삭제 후 10 개의 요소를 인쇄하지만 마지막 요소는 인쇄 프로세스 전에 하나의 요소를 삭제할 때 비어 있습니다.런타임에 실제로 배열에서 요소를 삭제할 수 있습니까?

+4

메모리는 사용되지 않을 때 특별한 '쓰레기'데이터를 포함하지 않습니다. 기본적으로 초기화되지 않은 메모리는 '쓰레기'라고 말합니다. 왜냐하면 메모리가 마지막으로 사용되었을 때 메모리에 있던 내용을 포함하기 때문입니다. 일반적으로 말도 안되는 값입니다. – turbulencetoo

+2

왜 이런 짓을 한거야? –

+0

삭제하기 전의 임의의 동일한 정보로 되돌아 가고 싶습니까? 그리고 동적으로 할당 된 배열 또는 정적 배열에 대해 이야기하고 있습니까? 이것에 대한 사용 사례는 무엇입니까? 아니면 궁금합니까? – lurker

답변

2

C에서 배열은 사용자가 원하는만큼 자유롭게 사용할 수있는 메모리 블록입니다.

배열 끝에서 요소를 삭제하려면 null 종결자를 이동하거나 다른 독립 길이 변수를 업데이트하여 배열이 더 짧은 하나의 요소임을 기록하면됩니다.

요소를 앞이나 중간에서 삭제하려면 모든 후속 요소를 한 칸 더 앞쪽으로 이동해야합니다.

더 이상의 마법은 없습니다.

관련 문제