array_push
이라는 함수가 있다고 가정 해 봅시다. c.함수에서 C 배열에 대한 포인터 업데이트
void array_push(int *array_pointer, int array_length, int val) {
int i;
int *temp_array = malloc(sizeof(int) * (array_length + 1));
for (i = 0; i < array_length; i++) {
temp_array[i] = *array_pointer;
array_pointer++;
}
temp_array[array_length] = val;
*array_pointer = temp_array;
}
어떻게 그것을 temp_array
새로운 배열을 사용할 수 있습니다 내 프로그램의 다른 부분을 가리 키도록 포인터 *array_pointer
를 업데이트 할 수 있습니다? 나를
int t[2] = {0,2};
array_push(t, 2);
/* t should now contain {0,2,3} */
이 작업을 수행 할 수 없습니다. 't'는 포인터가 아니며 배열입니다. 배열의 크기를 변경할 수 없습니다. – Barmar
@Barmar - 틀림없이 정확합니다. 처음 OP의 질문 중 일부를 알아 채지 못했습니다 ... – paulsm4