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

怎么做souq网站高端品牌名字怎么取

怎么做souq网站,高端品牌名字怎么取,网页界面设计系统,网站建设及维护协议Hello大家好&#xff0c;很高兴我们又见面啦&#xff01; 给生活添点passion&#xff0c;开始今天的编程之路。 今天我们来看几个经典的动态内存笔试题。 1、题目1 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> void GetMemory(char* …

       Hello大家好,很高兴我们又见面啦!

       给生活添点passion,开始今天的编程之路。

今天我们来看几个经典的动态内存笔试题。


1、题目1

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
void GetMemory(char* p)
{p = (char*)malloc(100);
}
int main()
{char* str = NULL;GetMemory(str);strcpy(str, "Hello world");printf(str);return 0;
}

       程序没有输出结果。

       首先,printf(str)应该是打印出存放在str这个位置的字符串,我们想让他输出一个字符串,但是为什么没输出呢?

       其实是这里的内存开辟有问题。

       我们在进入函数时,创建了一个形参指针变量,开辟的时候也是在我们的形参那里开辟的,而我们的形参不会影响实参。也就是说,我们真正存放字符串的地址仍然是NULL。那么在strcpy的时候就不可避免地解引用空指针这个错误归根结底还是解引用了空指针(上一篇介绍过)。

图片理解:

1d86c7b92e9748289bd59aa48de61262.png

解决办法

       我们想一下,既然要开辟实参那里的地址,那么是不是需要让开辟的时候从str那开辟呢?

       现在问题就成了怎么从str那开始开辟。回想指针初识篇的传址调用,是不是在进入函数之后对形参进行了解引用操作呢?那我们现在也对形参进行解引用,让形参解引用之后指向str不就好了吗?

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
void GetMemory(char** p)
{*p = (char*)malloc(100);
}
int main()
{char* str = NULL;GetMemory(&str);strcpy(str, "Hello world");printf(str);return 0;
}

       这里我们就运用了二级指针,我们把str这个指针的地址传过去,那么解引用二级指针不就指向了str这个指针吗?

图片理解:

405447be5e65435f94cee9dcbbc68c7c.png


2、题目2

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
char * GetMemory(void)
{char p[] ="Hello world";return p;
}
int main()
{char* str = NULL;str = GetMemory();printf(str);return 0;
}

运行结果:

358c52e84dd84ee3af039ca2e742fa46.png

       这个题目的错误就在于忽略了变量的生命周期(这部分知识在补充篇详细讲解过)。我们的确把字符串存放在了p这个数组里,但是当出函数后,这个p地址里存放的内容就消失了,所以打印出来是一堆乱码。


3、题目3

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{char* str = (char*)malloc(100);strcpy(str, "hello");free(str);if (str != NULL){strcpy(str, "world");printf(str);}return 0;
}

运行结果:

4bf9381c0e1142bc85614a86b2507698.jpg

 注:这里拿手机编译器运行了一下

       虽然这个程序正常打印里,但实际上他是有问题的。我们提前释放了内存,导致这一百个字节的空间不是我们的了,那么这时候我们再去放入world就属于是非法访问了。那这个地能访问吗?还真能,他还真往里面放了个world并且打印出来了。但实际上这种写法是有问题的,所以千万别这样写。

       好了,今天的内容就分享到这,觉得有帮助的还请点点关注支持一下,我们下次再见!

 

 

http://www.yayakq.cn/news/960590/

相关文章:

  • 网站建设维护总结智联招聘网最新招聘官网
  • 深圳工程造价建设信息网站自学摄影教程的网站有哪些
  • 创建网站需要什么seo超级外链工具
  • 湖北省建设厅质监站网站wordpress 右侧广告位
  • 杭州论坛网站制作四位一体网站开发
  • 做我男朋友的网站彩票网站开发的风险
  • 农村电商平台网站设计思路有哪些企业品牌推广方案范文
  • 做网站怎么切图马鞍山网站建设推广
  • 常见的办公网网站开发江门关键词排名工具
  • php彩票网站开发有什么网站可以做微信支付宝支付
  • 赣榆哪里有做网站的wordpress保存帖子数据库
  • 成都网站建设 Vr网站建设柳市
  • 建设 市民中心网站wordpress注册没有反应
  • 宠物医院网站建设邮箱的官方网站注册
  • 精品资源共享课程网站建设浙江网站设计公司
  • 微网站 好处上海做衣服版的网站
  • 做网站费用常州 招网站开发
  • asp网站跳转浏览器wordpress后台插件的关闭
  • 江苏元鼎建设工程有限公司网站网络维护工作怎么样
  • asp.net4.5网站开发安卓app软件开发费用
  • 安康网站制作公司网站广告弹出来代码
  • 宁波专业网站推广平台咨询商务网站制作工程师
  • 北京网站制作网站如何用电脑做网站服务器
  • 湖北做网站找谁seo行业岗位有哪些
  • 电影网站做cpaseo标签优化方法
  • 网站做3年3年包括什么乌兰察布网站建设
  • 上海网站建设商城wordpress控制仪
  • 甘肃省建设厅网站官网企业网站展示
  • 普陀区网站建设前端赣州网络公司
  • 徐州英文网站seo广东网站建设商家