一.普通变量
1.动态分配内存:
动态分配1块内存空间:[<type> * <p>=]new <type>(<val>);
//参数说明:
type:<val>的数据类型
val:内存空间中存储的值
p:指向这块内存空间的指针变量
//实例:
#include <iostream>
using namespace std;
int* f() {
int* p = new int(10);
return p;
}
int main() {
int* p = f();
printf("%d\n", *p);//结果:10
printf("%d\n", *p);//结果:10
printf("%d\n", *p);//结果:10
return 0;
}
2.释放内存:
释放动态分配的内存:delete <p>;
//参数说明:
p:指向要释放的内存空间的指针
//实例:
#include <iostream>
using namespace std;
int* f() {
return new int(10);
}
int main() {
int* p = f();
printf("%d\n", *p);//结果:10
delete p;
return 0;
}
二.动态数组
1.创建动态数组:
创建动态数组:[<type> * <p>=]new <type>[<len>];
//参数说明:其他参数同上
len:数组长度(即数组中元素的个数)
//实例:
#include <iostream>
using namespace std;
int* f() {
int* p = new int[10];
int i;
for (i = 0; i < 10; i++) {
p[i] = i + 100;
}
return p;
}
int main() {
int* p = f();
int i;
for (i = 0; i < 10; i++) {
printf("%d ", p[i]);
}
delete[] p;
return 0;
}
//结果:
100 101 102 103 104 105 106 107 108 109
2.释放动态数组:
释放动态数组:delete[] <p>;
//中括号([])告诉编译器要释放的是数组
//参数说明:
p:指向要释放的数组的首元素的指针