当前位置: 首页 > news >正文

浙江邮电工程建设有限公司网站网站换了域名怎么查

浙江邮电工程建设有限公司网站,网站换了域名怎么查,养老院网站建设,电商网站如何避免客户信息泄露一.为什么存在动态内存开辟开辟空间的特点#xff1a;空间开辟大小是固定的数组在申明时#xff0c;必须指定数组长度#xff0c;她所需要的内存在编译时分配但是对于空间的需求#xff0c;不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道#xff…一.为什么存在动态内存开辟开辟空间的特点空间开辟大小是固定的数组在申明时必须指定数组长度她所需要的内存在编译时分配但是对于空间的需求不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道那数组的编译时开辟空间的方式就不能满足了。这时候就只能试试动态存开辟了二.动态内存函数的介绍1.malloc和freevoid*malloc(size_t size);这个函数向内存申请一块连续的内存空间并返回这块空间的指针。如果开辟成功则返回一个指向这块空间的指针如果开辟失败这返回一个NULL因此malloc函数的返回值一定要做检查返回的类型是void*所以malloc函数并不知到开辟空间的类型具体在使用时使用者自己决定如果参数 size 为0malloc的行为是标准是未定义的取决于编译器free函数使用来释放动态开辟的内存的void free(void*ptr)如果参数ptr指向的空间不是动态内存开辟的那么free函数的行为是未定义的如果ptr是NULL则free函数什么都不做注malloc和free都声明在stdlib.h的文件中例#includestdio.hint main() {int num0scanf(%d,num)int arr[num]0;//变长数组int*ptrNULLptr(int*)malloc(num*sizeof(int))if(NULL!ptr)//判读ptr是否为空指针{int i0for(i0;inum;i){*(ptri)i}}free(ptr)//释放ptr所指向的动态内存ptrNULL//是否有必要return 0 }虽然程序结束后被开辟的内存空间会被释放但是这样浪费的很多空间而free能够充分利用内存空间。最后虽然free(ptr)释放了开辟的动态空间但是ptr仍然指向那个空间的地址所以要将ptr设置为空指针来避免空间被不会好意的人通过ptr找到。2.callocvoid*callor(size_t num,size_t size)函数的功能是为 num 个大小为 size 的元素开辟一块空间并且把空间的每个字节初始化为0与函数 malloc 的区别只在于 calloc 会在返回地址之前把申请的空间的每个字节初始化为全0。例#includestdio.h #includestdlib.h int main() {int* p calloc(10, sizeof(int));if(NULL ! p){//使用空间}free(p);p NULL;return 0; }3.reallocrealloc函数的出现让动态内存管理更加灵活realloc 函数就可以做到对动态开辟内存大小的调整。void*realloc(void*str,size_t size);ptr是要调整的内存地址size是调整之后的内存大小返回调整之后内存的起始位置这个函数在调整原内存空间的大小的基础上还会将原内存的数据移到新的空间里realloc在调整内存空间时有两种情况情况1原有空间之后有足够大的空间情况2原有空间之后没有足够大的空间当是情况1的时候要扩展的内存就在原有的内存之后追加新的空间原来的数据不发生改变。当是情况2的时候扩展的方式就是在堆空间上另找一个适合大小的连续空间使用。这样函数返回的是一个新的内存地址。例int main() {int* ptr (int*)malloc(100);if (NULL ptr){perror(ptr);}else{int i 0;for(i0;i100;i){*(ptr i) i;}}//扩展容量ptr (int*)realioc(ptr, 1000);//这样可以吗(如果申请失败会如何)if (NULL ptr){perror(ptr);}else{int i 0;for(i100;i1000;i){*(ptr i) i;}free(ptr);ptr NULL;return 0; }不能像代码1一样操作因为若(int*)realloc(ptr, 1000)中realloc开辟失败返回的空指针赋给了ptr那么ptr被改掉ptr指向的空间就找不到了修改后int main() {int* ptr (int*)malloc(100);if (NULL ptr){perror(ptr);}else{int i 0;for (i 0; i 100; i){*(ptr i) i;}}//扩展容量int* p NULL;prealloc(ptr, 1000);if (p NULL){perror(p);}else{ptr p;int i 0;for (i 100; i 1000; i){*(ptr i) i;}}free(ptr);ptr NULL;return 0; }三.常见的动态内存错误1.对空指针的解引用操作void test() {int* p (int*)malloc(INT_MAX);*p 20;//如果p是空指针就会有问题free(p); }2.对动态开辟空间的越界访问void test() {int i 0;int* p (int*)malloc(10 * sizeof(int));if (NULL p){exit(EXIT_FAILURE);}for (i 0; i 10; i){*(p i) i;//当i是10的时候越界访问}free(p); }3.对非动态开辟内存使用free释放void test() {int a 10;int* p a;free(p); }4.使用free释放动态开辟内存的一部分void test() {int* p (int*)malloc(10 * sizeof(int));p;free(p);//p不再指向动态内存的起始位置 }5.对同一块内存多次释放void test() {int *p (int *)malloc(100);free(p);free(p);//重复释放 }6.动态内存开辟忘记释放内存泄漏void test() {int *p (int *)malloc(100);if(NULL ! p){*p 20;} } int main() {test();while(1); }注忘记释放不再使用的动态开辟的空间会造成内存泄漏四.几个经典的笔试题题目1.void GetMemory(char *p) {p (char *)malloc(100); } void Test(void) {char *str NULL;GetMemory(str);strcpy(str, hello world);printf(str); }请问运行Test 函数会有什么样的结果结果运行代码会出现兵溃的现象程序存在内存泄漏 原因是str以值传递的形式给pp是GetMemory函数的形参只能在函数内部有效等GetMemory函数返回返回之后动态开辟内存尚未释放并且无法找到所以会造成内存泄漏改进法一可以传str的指针给GetMemory函数,*p就是str在使用完str后释放它指向的内存空间并将str置为NULLvoid GetMemory(char **p) {*p (char *)malloc(100); } void Test(void) {char *str NULL;GetMemory(str);strcpy(str, hello world);printf(str);free(str);strNULL; }int main() {test();return 0; }法二将GetMemory的返回类型改为char*返回指向开辟空间的地址在使用完str后释放它指向的内存空间并将str置为NULLchar* GetMemory(char *p) {p (char *)malloc(100);return p; } void Test(void) {char *str NULL;strGetMemory(str);strcpy(str, hello world);printf(str);free(str);strNULL; }int main() {test();return 0; }题目2.char *GetMemory(void) {char p[] hello world;return p; } void Test(void) {char *str NULL;str GetMemory();printf(str); }int main() {test();return 0; }请问运行Test 函数会有什么样的结果结果打印的是随机值
http://www.w-s-a.com/news/193171/

相关文章:

  • 普通建站网站首页制作模板
  • 江苏城乡与住房建设厅网站wordpress 添加导航
  • 免费单页网站在线制作网站制作与网站建设pdf
  • 网站开发使用云数据库技术教程大连模板开发建站
  • 佘山网站建设创造网站需要多少钱
  • 南海佛山网站建设网站维护需要什么技能
  • 阿里云服务器开源做几个网站想找公司做网站
  • 一般做网站是用什么语言开发的域名查询 查询网
  • 地方门户网站源码下载揭阳专业网站建设
  • 网站做优化好还是推广好wordpress百家号模版
  • 淘宝网网站建设的的意见校园微网站建设
  • 小说网站建设之前需求分析免费下载京东购物
  • 园林景观设计案例网站wordpress 文章内容页
  • 网站什么做才会更吸引客户楚雄网站开发rewlkj
  • 电商网站构建预算方案视频制作网站怎么做
  • 包装设计灵感网站ps软件下载电脑版多少钱
  • 手机网站图片做多大原网站开发新功能
  • 网站设计培训成都陕西网站建设公司哪有
  • expedia电子商务网站建设辽宁网站设计
  • 深圳网站建设网站运营绥芬河市建设局网站
  • 家政服务网站做推广有效果吗做图软件ps下载网站有哪些
  • 北京市建设教育协会网站flash网站制作单选框和复选框ui组件
  • 国外有没有做问卷调查的网站网站网页怎么做
  • 简单个人网站模板下载网站建设整体情况介绍
  • 网站建设做到哪些内容荆门网站建设电话咨询
  • 玉树网站建设公司双11主机 wordpress 2015
  • dw做网站背景图片设置汕头seo管理
  • 个人又什么办法做企业网站唐山哪里建轻轨和地铁
  • 手机网站404页面室内设计公司排名前100
  • 做民宿需要和多家网站合作吗创建软件的步骤