내 C 프로그램에서 첫 번째 요소 (요소 0)를 제거하는 동안 char 배열을 다른 배열로 복사하려고합니다.배열을 C로 복사
은 내가 쓴 : 나는 배열 2를 인쇄 할 때
char array1[9];
char array2[8];
int i, j;
for(i = 1, j = 0 ; i < 10, j < 9; i++, j++){
array2[j] = array1[i];
}
printf(array2);
, 그것은 나에게 스택 오버 플로우를 제공합니다.
아이디어가 있으십니까?
당신이 그와 같은 루프를 초기화 할 수 있습니다와 같은 별도의 배열 2를 사용할 필요가 없습니다입니까? 나는 (i = 0; i <8; i ++) {array2 [j] = array1 [j + 1]; } – Shaded
Ummm, C 배열의 첫 번째 인덱스는 0입니다. 마지막 인덱스는 size-1입니다. 따라서 array2 [8]를 할 당하면 array2를 넘치게됩니다. 또한 쉼표 연산자의 조건이 잘못되었습니다. 쉼표 연산자가 첫 번째 값을 버립니다. 대신에 &&를 원한다. – derobert