在实习过程中,会经常碰到将整型转为字符串,但系统只提供了字符串转为整型atoi,所以自己就写了个函数来完成这个功能convert
#include"iostream.h"
#include"string.h"
#include"math.h"
char *convert(int p)//1234
{
int p2=p;
int count=0;
while(p>0)
{
p=p/10;
count++;
}
char *s=new char[count];
int j=0;
int h,t=count;
while(p2>0)//1234
{
h=(int)pow(10,--t);
s[j]=p2/h+'0';
p2-=h*(s[j]-'0');
j++;
}
s[count]='/0';
return s;
}
void main()
{
char name[15];
strcpy(name,convert(1234));
cout<<name;
}
完成任务.后发现自己对动态内存分配没搞清楚.对于程序中一般声明的变量,其所占内存空间不需要程序员管理,编译器在编译阶段就自动管理这些空间的代码加入到目标文件中.程序运行后,由系统自动为变量分配内存空间,在变量的生存期内,变量一直占用内存空间,在生存期间结束后释放内存空间.可有时程序只能在运行时才能确定需要多少内存空间来存储数据,这时程序员就需要采用动态内存分配的方法设计程序.
动态内存分配它完全由应用程序自己进行内存的分配和释放.它是在一些被称为堆的内存块中为变量分配内在空间.而在C++中除了可以使用这两个函数,(malloc,free),最常用的方法是利用new和delete运算符进行动态内存的分配和释放,因为使用这种方法能够检测内存漏洞.