常量区
一般是算在全局静态区,常量区的内容是不能更改的,举个例子
所以一定要注意这个问题,否则很容易会让程序挂掉
全局静态区
全局变量和所有的静态变量都在这个区内,很好理解
栈区
一般我们定义的变量,只要不是malloc 或者 new 出来的都在栈区,栈区的容量很小,如果在栈区存的东西过多会导致栈溢出
堆区
c语言使用的是malloc ,calloc,relloc 切记:使用完后要即使free 否则会造成内存泄漏
我用一段代码来表示三种方法的不同
如果我们想分配动态数组类似于下面,想从键盘输入数组的长度,这样会报错
如果使用指针malloc内存就可以动态分配数组
int a = 0;
scanf("%d", &a);
int *arrs = (int *)malloc(sizeof(int)*a);