c++之:new与malloc
#include <iostream> using namespace std; void spacealloc_c() { //开辟内存空间---C语言风格 int *p = (int *)malloc(sizeof(int)); *p=10; if(p!=NULL) { free(p); p=NULL; } //开辟内存数组---C语言风格 //开辟内存空间,用于存放数组 int *q = (int*)malloc(sizeof(int)*10);//有别于new int(10)----此为赋值为10 printf("new出来的内存数组大小是:%d\n",sizeof(*q)); for(int i=0;i<10;i++) { q[i]=i+88; } for(int i=0;i<10;i++) { printf("%d\n",q[i]); } if(q!=NULL) { free(q); q=NULL; } } void spacealloc_plus() { //开辟内存空间---C++语言风格 int *p = new int; //int *p = new int(10);//表示给新分配的整形变量分配空间,并且赋值为10 *p=10; if (p!=NULL) { delete p; p=NULL; } //开辟内存空间,用于存放数组 int *q = new int[10];//有别于new int(10)----此为赋值为10 printf("new出来的内存数组大小是:%d\n",sizeof(*q)); for(int i=0;i<10;i++) { q[i]=i*88; } for(int i=0;i<10;i++) { printf("%d\n",q[i]); } if(q!=NULL) { delete[] q; q=NULL; } } void main() { spacealloc_c(); cout<<"====================================="<<endl; spacealloc_plus(); system("pause"); }
c++也可以使用malloc free,然而更c++风格的是new delete