제가 지금 스택을 배열으로 구현하고 있는데 아래와 같은코드에서
main함수속에서 copy한후 copy된 스택을 del을 하면서
free를 사용했을경우 컴파일 에러가 뜨지않는반면 실행시키면 free는 읽히는데 실행은 되지않아 질문드려요
copy함수안에서 _st_ar 입력받는 포인터 역시 free가 되지않네요 ㅠㅠ
main안에 변수는 모두 main내부에서 선언했습니다.
int *copy(int *_st_ar, int nsize, int *_t)
{
int i;
int* _copy_ar = (int*)malloc(sizeof(int)*(nsize*2));
for(i=0;i<nsize;i++)
_copy_ar[i] = _st_ar[i];
if(_st_ar != NULL)
free(_st_ar);
_st_ar = NULL;
return _copy_ar;
}
void del(int *_copy_ar)
{
free(_copy_ar);
_copy_ar = NULL;
}
int main()
{
// ...
printf("copy the stack array\n");
new_array = copy(stack_array, nsize, &top);
printStack(stack_array, nsize);
printStack(new_array, nsize*2);
printf("destroy stack array\n");
del(new_array);
printStack(new_array, nsize*2);
return 0;
}