《程序设计》cs.u20119 动态分配 在C++语言中,每个程序需要用到几个变量, 在写程序前就应该知道。每个数组有几个元 素也必须在写程序时就决定。 冷有时我们并不知道我们需要多大的数组元素 直到程序开始运行。因此希望能在程序中根 据某一个当前运行值来决定数组的大小如 设计一个打印魔阵的程序,我们希望先输入 魔阵的阶数,然后根据阶数定义一个矩阵 程序设计21
《程序设计》 cs.sjtu 2011.9 程序设计 - 21 动态分配 ❖ 在C++语言中,每个程序需要用到几个变量, 在写程序前就应该知道。每个数组有几个元 素也必须在写程序时就决定。 ❖ 有时我们并不知道我们需要多大的数组元素 直到程序开始运行。因此希望能在程序中根 据某一个当前运行值来决定数组的大小。如 设计一个打印魔阵的程序,我们希望先输入 魔阵的阶数,然后根据阶数定义一个矩阵
《程序设计》cs.u20119 动态分配方法 冷这些问题的解决方案就是内存的动态分 配。我们定义一个指针,并让它指向 个台适的内存。如: int *scores scores≡内存的起始地址; 程序设计22
《程序设计》 cs.sjtu 2011.9 程序设计 - 22 动态分配方法 ❖ 这些问题的解决方案就是内存的动态分 配。我们定义一个指针,并让它指向一 个合适的内存。如: int *scores; scores = 内存的起始地址;
《程序设计》cs.u20119 动态内存分配与回收 冷C++中由new和 delete两个运算符替代 运算符new用于进行内存分配: 申请动态变量:p= new type; 申请动态数组:p= new type[ size] 申请动态变量并初始化:p= new type(初值) 运算符 delete释放new分配的内存: 释放动态变量: delete p; 释放动态数组: delete[p 程序设计23
《程序设计》 cs.sjtu 2011.9 程序设计 - 23 动态内存分配与回收 ❖ C++中由new 和 delete两个运算符替代 - 运算符new用于进行内存分配: 申请动态变量:p = new type; 申请动态数组:p = new type[size]; 申请动态变量并初始化:p = new type(初值); - 运算符delete 释放 new分配的内存: 释放动态变量:delete p; 释放动态数组:delete [] p;
《程序设计》cs.u20119 动态内存分配与回收 //为简单变量动态分配内存,并作初始化 int maino f int*p; p= new int(99); //动态分配内存,并将99作为初始化值赋给它 cout<<P delete p; return 0: 程序设计24
《程序设计》 cs.sjtu 2011.9 程序设计 - 24 动态内存分配与回收 //为简单变量动态分配内存,并作初始化 int main() { int *p; p = new int(99); //动态分配内存,并将99作为初始化值赋给它 cout<< *p; delete p; return 0; }
《程序设计》cs.u20119 动态内存分配与回收 /动态字符串的使用 int main( 输出结果: Rint p* char“q; abcde p= new int(5) q=new char[10]; strcpy(, abcde; cout <<*p<< endl; cout < q < endl; delete p; delete q return o 程序设计2
《程序设计》 cs.sjtu 2011.9 程序设计 - 25 动态内存分配与回收 //动态字符串的使用 int main() {int *p; char *q; p = new int(5); q = new char[10]; strcpy(q, "abcde"); cout << *p << endl; cout << q << endl; delete p; delete q; return 0; } 输出结果: 5 abcde