每日一题(20)——malloc与free(一)

void GetMemory(char *p)
{p = (char *)malloc(100);
}void Test(void)
{char *str = NULL;GetMemory(str);strcpy(str, "hello world");printf(str);
}

1、指出编程错误

2、指出错误后果

3、指出纠正方法






分析:

1、调用GetMemory( str )后, str并未产生变化,依然是NULL.只是改变的str的一个拷贝的内存的变化

2、strcpy( str, "hello world" );程序运行到这将产生错误。

3、推荐使用2级指针形式,如下:

void GetMemory(char **p, int num)
{*p = (char *)malloc(sizeof(char) * num);
}
void Test(void)
{char *str=NULL;GetMemory(&str, 100);strcpy(str,"hello world");printf(str);free(str);str=NULL;
}






本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gentoo ffmpeg+mencoder快速搭建视频处理系统笔记

软件说明:MP3支持:lamexvid支持:xvidH264/AVC支持:x264AC3支持:liba52MPEG4 ACC支持:faac、faad23GPP AMR Floating point 和 AMR-Wideband支持:libamrnb、libamrwbemerge lame libogg libvorbi…

深入理解Linux内核之内核抢占

1.开场白环境:处理器架构:arm64内核源码:linux-5.11ubuntu版本:20.04.1代码阅读工具:vimctagscscope我们或许经常听说过内核抢占,可是我们是否真正理解它呢?内核抢占和抢占式内核究竟有什么关系…

Python+Selenium学习笔记10 - send_keys上传文件

在火狐浏览器上传文件 上传前,同一个HTML文件在火狐和Edge浏览器显示有些不同 这是Firefox浏览器的显示 这是Edge浏览器 上传后 1 # coding utf-82 3 from selenium import webdriver4 import os5 import time6 7 dr webdriver.Firefox()8 file_path "file:…

不错,又有东西可以领!顺带开发个炫彩灯

什么是涂鸦Arduino SDK?Arduino 是全球最流行的开源硬件平台,涂鸦官方推出的 Arduino 开发驱动库,使用任意 Arduino 开发板涂鸦通用模组即可快速实现设备联网,开发属于自己的 IoT 项目。本次实战营适合你吗?没基础 —— Arduino 开发需要掌…

每日一题(21)——malloc与free(二)

char *GetMemory(void) {char p[] "hello world";return p; }void Test(void) {char *str NULL;str GetMemory();printf(str); }1、指出编程错误 2、指出错误后果 3、指出纠正方法分析: 运行结果可能会乱码,因为GetMemory返回的是指向“栈…

GNS3从入门到精通

GNS3是一款优秀的具有图形化界面的模拟器。可以运行在多平台上(Windows,Linux,MacOS等)。其最大的特点就是搭建拓扑极其简单,且支持保存startup-config,供下次实验中继续导入使用,而且所有设备导…

Android App优化之ANR详解

引言 背景:Android App优化, 要怎么做?Android App优化之性能分析工具Android App优化之提升你的App启动速度之理论基础Android App优化之提升你的App启动速度之实例挑战Android App优化之Layout怎么摆Android App优化之ANR详解Android App优化之消除卡顿Android App优化之内存…

面试官让你用C语言实现大数相乘,慌吗?

在之前的笔试题解析里面,我写了大数相加的问题,这里再剖析一个大数相乘,顾名思义,大数相乘就是这个数已经大到最大的数据类型都没有办法保存了。我们看看最大的数据类型可以保存多大的数据。#include "stdio.h" #includ…

写给偷偷老去的80后

喜欢隐身了,不怎么爱在群里发言了    同学聚会必修的两个项目:吃饭,    小孩都开始叫自己叔 叔或者阿姨了,虽然经常不大情愿地反驳着:叫姐姐,叫哥哥    永远寂寞,不管你是一人独处时&#xff0c…

每日一题(22)——malloc与free(三)

void GetMemory(char **p, int num) {*p (char *)malloc(num); }void Test(void) {char *str NULL;GetMemory(&str, 100);strcpy(str, "hello world");printf(str); }1、指出编程错误 2、指出错误后果 3、指出纠正方法 分析: 内存只分配&#xff…

每周分享之cookie详解

本章从JS方向讲解cookie的使用。(实质上后端代码也是差不多用法,无非读取和设置两块) 基本用法:document.cookie"usernamepengpeng"; 修改的时候也是这句,重新赋值即可。 一般的,cookie是记域名的…

每天都用,但是你一定不知道麦克风的灵敏度是什么

我们讨论音频器件的时候,就不得不去讨论灵敏度,麦克风、喇叭、蜂鸣器这些器件都会涉及到灵敏度。灵敏度体现的是输出和输入的关系,因为和声音有关,我们必须要知道声压,理解灵敏度、测量灵敏度,并从中选择合…

查找乱码字符串的SQL

昨天系统导数据库,一不小心把nls_language设错了,结果导出来的函数和过程里面的中文字符串中的字符都变成问号了(?)。 结果业务部门报告,好多报表里面的内容都变成问号了,这下麻烦了。 首要问题…

每日一题(23)——malloc与free(四)

void Test(void) {char *str (char *)malloc(100);strcpy(str, "hello");free(str);if(str ! NULL){strcpy(str, "world");printf(str);} }1、指出编程错误 2、指出错误后果 3、指出纠正方法 分析: 篡改动态内存区的内容,后果难以…

三大类sql语句——该记录是本人以前微博上的文章

一、DML语句二、DDL语句三、事务控制语句一、DML语句-Data Mulipulation LanguageDML语句数据操作野菊执行后会生成一个事务,事务需要提交才能够永久生效,在commit前是可以进行回滚撤销操作的!1、insert into 插入语句(1&#xff…

邓总的vim配置,需要的自己拿走~

我比较喜欢直接用source insight看代码,不过邓总很喜欢用vim,今天特意让他整理了他的vim 配置,喜欢的同学可以自行下载。在公众号后台回复「vim」获取下载链接VIM 配置查看本机 VIM cscope ctagsvim Ubuntu自带,cscope 、ctags…

html嵌套html解决办法(object/object)

后台管理系统多用到了页面嵌套页面的场景&#xff0c;下面是我在工作中解决的方法&#xff0c;利用<object></object>的data属性&#xff0c;下面试w3c的介绍&#xff1a; data 属性用于指定供对象处理的数据文件的 URL。 该属性的值是文件的 URL&#xff0c;该 UR…

每日一题(24)—— const

关键字const是什么含意&#xff1f; 只读变量&#xff1b;const int a; int const a; const int *a; int * const a; int const * a const; 前两个的作用是一样&#xff0c;a是一个常整型数。第三个意味着a是一个指向常整型数的指针&#xff08;也就是&#xff0c;整型…

原来,我有这样期望

我妈小时候一直跟我们讲他们村里的一个人&#xff0c;我妈说他们家特有钱&#xff0c;他们家的粮仓里装满了花生和大米&#xff0c;而让他们变得这么富有的原因是—勤劳和省。我还上小学那几年&#xff0c;水稻的产量很低「袁隆平的杂交水稻是在后来几年才普及的」&#xff0c;…

详解SMS下OSD2008

百忙有闲来和大家分享一下接着上篇的SMS的一个应用—OSD&#xff0c;长话短说&#xff0c;开始吧&#xff01;老规矩&#xff0c;先看看拓扑图在来构思下要做的步骤&#xff0c;一 、SMS-OSD前的装备工作 二 、安装OSD组件 三 、创建捕获光盘 四 、捕获模板系统镜像 五 、创建、…