1.动态内存分配
1.为什么:因为数组存储范围有限,如果数据量太大,就要自己申请内存
2.C动态内存分配
3.C++ new
好处是让我们达到自己想要的大小
内存为空以后访问不到堆内存中的数据即成员变量,站内存中的成员函数可以访问,在堆内存中都可以用delete删除,站内存中不会被删除
1.为什么:因为数组存储范围有限,如果数据量太大,就要自己申请内存
2.C动态内存分配
3.C++ new
好处是让我们达到自己想要的大小
内存为空以后访问不到堆内存中的数据即成员变量,站内存中的成员函数可以访问,在堆内存中都可以用delete删除,站内存中不会被删除
数组是一个容器,数组指针是指一个指向数组的指针变量,里面装的是元素,指针数组是指数组里面装的都是指针。
C中申请内存的代码
int a;
scanf("%d",&a);
int *p=(int*)malloc(sizeof(int)*a); malloc是申请内存的
for(int i=0;i<a;i++){
*(p+i)=i;
printf("%d,%p",*(p+i),p+i);
}
while(1){
sleep(1000);
int *p=(void*)malloc(1024*1024*10)
sleep(2000);
free(p)//释放内存
p=NULL;
}
C++中
myclass *p=(myclass *)malloc(sizeof(myclass))
p->show()
malloc和new的区别,都是动态生成,但是new会执行内存,调用构造函数,malloc分配但不执行,free(P)也不会执行析构函数