我使用malloc创建了一个包含MAX个元素的数组并将其分配给指针,模拟了一个栈。然后我创建了第二个指针指向第一个指针,以便能够前后移动,执行push和pop操作。
int * stack= (int *) malloc(MAX * sizeof(*stack));
int * stack_ptr = stack;
最后,我使用`delete`删除包含数组的指针。
free (stack);
当我删除数组(stack)后,stack_ptr 指向一个没有内容的地址,对吗?
即使程序在恰好终止之后,这会导致内存泄漏或任何问题吗?
free(stack_ptr)
也会释放该块。正如您在释放引用该块的指针后不使用stack_ptr
访问堆一样,任何其他引用此块的指针都不能访问已释放的块。 - Ted D.int ** stack_ptr = &stack;
。 - Weather Vane