memcpy의 카피 시작인덱스 설정문제
글쓴이: basic0968 / 작성시간: 수, 2019/04/10 - 6:49오후
위 반복문과 아래 memcpy가 같은 의미라고 생각해 코딩하였는데,
전혀 다른 결과가 나옵니다. memcpy의 아규먼트를 어떻게 설정해야 할까요 ??
&arr[start]로 설정하니 세그먼트 오류가 뜹니다
/* for(count = 0 ; count <= middle - start ; count ++) { arr_left[count] = arr[start + count]; }*/ memcpy(arr_left,arr+start,middle-start+1); arr_left[count] = CHECK_END; /* for(count = 0 ; count < end - middle ; count ++) { arr_right[count] = arr[middle + count + 1]; }*/ memcpy(arr_right,arr+middle+1,end-middle); arr_right[count] = CHECK_END;
Forums:
...
arr_left, arr의 원소가 1byte짜리인 거 맞나요? 아니면 전혀 다른 동작을 합니다. 예를 들어서 int array로 정의되어 있다면 for loop는 middle-start+1 개의 *원소*를 (즉 (middle-start+1)*4 byte) 옮기게 되고 memcpy는 middle-start+1 *바이트*를 옮기니까 전혀 다른 동작을 하게 됩니다.
댓글 달기