在C语言中,是通过malloc 和free来动态分配内存的
在C++中,是通过new和 delete 来分配内存的
new的使用的两种用法
1. 常见的,我们将指针初始化为某变量的地址
在这种用法中,变量是在编译的时候分配的有名称的内存,而指针pt1只是可以通过名称直接访问的内存提供了一个别名。
运行的结果:
2. 第二种用法,是在运行阶段分配未命名的内存来存储值,这种情况下,只能通过指针来访问内存。
运行结果:
3 源码
// Len_new.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
using namespace std;
int main()
{
// 第一种用法, 指针初始化为变量的地址
int nights = 1001;
int *pt1 = &nights;
printf("value: %d, location: 0x%x \n", nights, &nights);
printf("value: %d, location: 0x%x \n", *pt1, pt1);
// 第二种用法,为一个int值分配未命名的内存
int* pt2 = new int;
*pt2 = 2001;
printf("\nvalue: %d, location: 0x%x \n", *pt2, pt2);
}
运行结果: