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

中山骏域网站建设怎样能在百度上搜索到自己的店铺

中山骏域网站建设,怎样能在百度上搜索到自己的店铺,华为做网站吗,企业网站布局C语言动态内存经典笔试题分析 文章目录 C语言动态内存经典笔试题分析1. 题目一2. 题目二3. 题目三4. 题目四 1. 题目一 void GetMemory(char *p){p (char *)malloc(100);} void Test(void){char *str NULL;GetMemory(str);strcpy(str, hello world);printf(str)…C语言动态内存经典笔试题分析 文章目录 C语言动态内存经典笔试题分析1. 题目一2. 题目二3. 题目三4. 题目四 1. 题目一 void GetMemory(char *p){p (char *)malloc(100);} void Test(void){char *str NULL;GetMemory(str);strcpy(str, hello world);printf(str);}运行Test函数会有什么结果 代码运行时会崩溃 上述代码中出现的问题 malloc开辟的空间没有释放内存泄漏代码会崩溃即使GetMemory函数返回str依然为NULLGetMemory函数无法把malloc开辟的100个字节带回来 TIP上述代码中的printf(str);没有错与printf(“abcdef”); printf(“%s”,str);一样都是将数组的首元素地址传给kbdprintf 代码出现的主要问题是GetMemory函数返回str依然为NULL 分析 传给GetMemory函数的只是str中的值并不是str的地址使用为传值调用传值调用形参的改变并不会改变实参形参只是实参的临时拷贝所以str中的值不会改变在使用strcpy时对NULL指针解引用了导致程序崩溃 上述代码的修改 void GetMemory(char** p) {*p (char*)malloc(100); } void Test(void) {char* str NULL;GetMemory(str);strcpy(str, hello);printf(str);free(str);str NULL; }2. 题目二 void GetMemory(char** p, int num) {*p (char*)malloc(num); } void Test(void) {char* str NULL;GetMemory(str, 100);strcpy(str, hello);printf(str); }运行Test函数会有什么结果 正常打印hello 分析 与题目一类似不过这段代码时将str的地址传给了GetMemory函数函数形参使用二级指针存放指针的地址并将开辟好的空间的地址赋值给p也就是str代码并没有明显问题并不会像代码一一样崩溃 只不过这段代码没有释放malloc开辟的空间会导致内存泄漏 上述代码的修改 void GetMemory(char** p, int num) {*p (char*)malloc(num); } void Test(void) {char* str NULL;GetMemory(str, 100);strcpy(str, hello);printf(str);free(str);str NULL; }3. 题目三 char* GetMemory(void) {char p[] hello world;return p; } void Test(void) {char* str NULL;str GetMemory();printf(str); }运行Test函数会有什么结果 代码打印的结果是不确定的 分析 这段代码错就错在返回了局部变量的地址局部变量的生命周期在出作用域就结束了也就是在调用完GetMemory函数之后p就被销毁了还给了操作系统在下面用指针接收了局部变量的地址时这个指针就是野指针代码打印会出不确定的结果 可以简化下这段代码 int* test() {int n 10;return n; } int main() {int* ret test();printf(hello\n);printf(%d, *ret);return 0; }打印出的结果为不确定的 分析 上述代码就是明显返回了局部变量的地址如果没有 printf(“hello\n”);这段的话代码虽然能正常运行但是不代表没错printf(“hello\n”);这段的话破坏了函数的栈帧空间导致打印的值不确定 在运行代码的时候main函数开辟一块空间再为TestTest函数开辟一快空间再为TestGetMemort函数开辟一快空间GetMemort函数中有一个字符数组p并且返回p的地址数组名就是首字符地址调用GetMemort函数结束GetMemort函数被销毁还给了操作系统当在打印数组之前出现了其他代码就会破坏函数的栈帧空间导致打印的值为不确定的 4. 题目四 void Test(void) {char* str (char*)malloc(100);strcpy(str, hello);free(str);if (str ! NULL){strcpy(str, world);printf(str);} }代码运行结果正常打印world 运行结果没错不代表结束没错 分析 在上述代码中使用strcpy将“hello”拷贝到str中然后使用free释放了malloc开辟的空间空间没了但是空间的地址还在str没有置NULL此时str就是野指针对野指针进行访问就是非法访问因为野指针指向的一块不属于它的空间
http://wiki.neutronadmin.com/news/333877/

相关文章:

  • 贵阳花果园r区网站建设网站开发如何处理兼容性问题
  • 怎样做网站域名断桥铝门窗制作需要哪些工具
  • 石家庄做标书的网站网站建设中期目标
  • 文化传播公司做网站宣传好吗那个网站做720度效果图
  • 建立网站站建设可以吗灌云住房和城乡建设网站
  • 模具厂咋做网站介绍一学一做视频网站吗
  • 网站建设项目需求书珠海制作网站
  • 免费网站建设工具做网站要用到哪些架包
  • 怎么做卖橘子的网站上海网站建设的企业
  • 北京建设网站兼职普工wordpress+广告联盟
  • 企业做网站的公司重庆网站建设仿站
  • 用dw设计网站模板下载地址七牛云wordpress加速
  • 西安网站设计费用成都网站建设费用
  • 爱奇艺影业公司网站开发意义临淄专业网站优化哪家好
  • 动易网站怎么进入后台静态网站怎么建设
  • 网站建设找朝云科技微信最火公众号排行
  • 制作网站的全过程wordpress 增加语言包
  • 做毕业设计网站教程缩短网址在线生成
  • 网站的维护和更新做网站的预算表
  • 有没有免费的微网站开鲁网站seo免费版
  • 烟台网站排名优化报价有什么软件可以做网站
  • 做网站点子h5
  • 东莞网站建设方案企业网站开发费用包括哪些
  • 凡科建站怎么保存网站直接下载app安装
  • 企业网站建设及前期准备wordpress 保留 index.php
  • 企业内部网站建设教程西安网站建设云速
  • 网站推广在哪好外贸wordpress 删除数据库
  • 公司的官方网站怎么做网站建设一年多少钱
  • 大连城市建设集团网站枫林seo
  • 华为公司网站建设方案免费个人网页制作网站