动态内存分配和释放(动态分配的内存一定要手动释放,否则造成内存泄露.
(java中A aa = new A();其实就是 A *p = (A *)malloc(sizeof(A)))
病毒就是靠访问正在运行的那些程序所占用的内存。Java中规定局部变量必须初始化,因为这些变量一开始都是垃圾值,但是属性不是必须初始化的,因为已经默认初始化为0)
# include <stdio.h> # include <malloc.h> int main(void) { //静态数组 int a[5] = {4, 10, 2, 8, 6}; int len; printf("请输入你需要分配的数组的长度: len = "); scanf("%d", &len); /** malloc: 向系统申请一块内存 malloc(sizeof(int) * len): int类型的占4个字节,申请一块4*len长度的内存,然后将这块内存的首地址返回 (int *)malloc(sizeof(int) * len): 因为首地址没有意义,int类型的为4个字节,double的为8个字节,强转为(int*)类型,4个字节分割 */ //动态数组.可以动态扩展数组,手动释放 int * pArr = (int *)malloc(sizeof(int) * len); // *pArr = 4; //类似于 a[0] = 4; // pArr[1] = 10; //类似于a[1] = 10; // printf("%d %d ", *pArr, pArr[1]); //我们可以把pArr当做一个普通数组来使用 for (int i=0; i<len; ++i) scanf("%d", &pArr[i]); for (i=0; i<len; ++i) printf("%d ", *(pArr+i)); free(pArr); //把pArr所代表的动态分配的20个字节的内存释放 return 0; }