栈stack 存在内存高地址部分
类似压子弹 先进后出 ,后进先出
printf("Element at top of the stack: %d\n" ,peek());
printf("Elements: \n");
// print stack data
while(!isempty()) {
int data = pop();
printf("%d\n",data);
}
printf("Stack full: %s\n" , isfull()?"true":"false");
printf("Stack empty: %s\n" , isempty()?"true":"false");
return 0;
}
上面的程序代码输出如下:
Element at top of the stack: 15
Elements:
15
12
1
9
5
3
Stack full: false
Stack empty: true
堆heap 存在内存地址低地址 类似完全二叉树
在堆上分配内存
array = (int *)malloc(n * sizeof(int));
free(array)
检查1:申请后 空间为空 正常
检查2:是否越界
// 边界检查访问
int getElement(IntArray *array, int index) {
if (index < 0 || index >= array->size) {
printf("Index out of bounds!\n");
exit(EXIT_FAILURE);
}
return array->data[index];
}解析
//为访问元素索引
类似土堆 二进制表