为什么free函数的形参是void*类型,传入的是其他类型 指针不报警告?

C/C++ > C语言 [问题点数:20分]
等级
本版专家分:30
结帖率 92.86%
等级
本版专家分:15635
勋章
Blank
红花 2013年8月 高性能开发大版内专家分月排行榜第一
2013年3月 高性能开发大版内专家分月排行榜第一
2013年1月 高性能开发大版内专家分月排行榜第一
2012年12月 高性能开发大版内专家分月排行榜第一
2012年11月 高性能开发大版内专家分月排行榜第一
2012年10月 专题开发/技术/项目大版内专家分月排行榜第一
2012年9月 专题开发/技术/项目大版内专家分月排行榜第一
2012年8月 专题开发/技术/项目大版内专家分月排行榜第一
Blank
黄花 2013年5月 高性能开发大版内专家分月排行榜第二
2013年4月 高性能开发大版内专家分月排行榜第二
等级
本版专家分:15035
勋章
Blank
黄花 2015年10月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2015年12月 C/C++大版内专家分月排行榜第三
2015年11月 C/C++大版内专家分月排行榜第三
等级
本版专家分:139709
勋章
Blank
进士 2018年总版新获得的技术专家分排名前十
2017年 总版技术专家分年内排行榜第六
Blank
金牌 2018年1月 总版技术专家分月排行榜第一
2016年12月 总版技术专家分月排行榜第一
2016年11月 总版技术专家分月排行榜第一
2016年10月 总版技术专家分月排行榜第一
Blank
优秀版主 2016年10月优秀大版主
2016年8月优秀大版主
Blank
银牌 2018年5月 总版技术专家分月排行榜第二
2017年12月 总版技术专家分月排行榜第二
2016年9月 总版技术专家分月排行榜第二
等级
本版专家分:2267
等级
本版专家分:30
等级
本版专家分:30
等级
本版专家分:30
等级
本版专家分:139709
勋章
Blank
进士 2018年总版新获得的技术专家分排名前十
2017年 总版技术专家分年内排行榜第六
Blank
金牌 2018年1月 总版技术专家分月排行榜第一
2016年12月 总版技术专家分月排行榜第一
2016年11月 总版技术专家分月排行榜第一
2016年10月 总版技术专家分月排行榜第一
Blank
优秀版主 2016年10月优秀大版主
2016年8月优秀大版主
Blank
银牌 2018年5月 总版技术专家分月排行榜第二
2017年12月 总版技术专家分月排行榜第二
2016年9月 总版技术专家分月排行榜第二
等级
本版专家分:30
等级
本版专家分:0
liangchaoxi

等级:

C++函数形参为指针指针引用的区别

区别: 1、指针传参被调用函数指针变量在栈内存中重新申请内存。 2、指针引用传参被调用函数指针变量与调用函数指针变量共用一块空间。 // PointerCite.cpp : 定义控制台应用程序的入口点...void freePtr1...

函数形参-指针指针

程序1:void myMalloc(char *s) //我想在函数中分配内存,再返回 { s=(char *) malloc(100); } void main() { char *p=NULL; myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么? if(p) free(p); }程序2...

指针函数中当形参时的问题

void myMalloc(char *s) //我想在函数中分配内存,再返回  {  s=(char *) malloc(100);  }  void main()  {  char *p=NULL;  myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么?  if(p) ...

定义struct出错指针不允许指向完整类型_从内存的角度读懂C指针

一、前言C语言是一门比较偏底层的语言,为什么这样说呢?因为C语言可以直接操作内存,而直接操作内存是通过指针来实现的。指针是C语言的精华,功能强大,可以灵活地操作内存,也是C语言区别于其他编程语言的一大特点...

C语言函数参数的传值和传指针什么区别?

来源:公众号【编程珠玑】作者:守望先生前言函数传参有三种传参方式:传值、传址、传引用。我们可能听过C语言中的传值和传指针,在其他语言中,也有传引用一说,那么他们到底有什么...

指针形参,需要对指针进行修改时,函数参数需要改为指针指针

一、用二级指针作为函数参数,有两种典型情况: 1.需要传递一级指针的数组时: 例如标准C的main函数: intmain(intargc,char*[]argv),数组最高维可以退化,char*[]argv等价于char**argv。这里argv代表命令行参数...

表变量是什么_为什么要使用二级指针

所以,当我们定义了一个指向指针指针的时候(pointer to pointer),我们也称之二级指针,那针对于这个二级指针来说,第一级指针存放的是指向的变量的地址,第二级指针存放的是第一级指针的地址。可以用下面这张图...

非法使用void类型_原来void还可以这样用?

2、简单认识一下void 今天跟大家介绍的知识是C语言中的void关键字的用法,void在大部分小伙伴的程序中都只是用于函数无参数传入,或者无类型返回。 然而我们平时所定义的变量都会有具体的类型,int,float,char...

C 函数传参 形参指针 返回指针分析

题目一: void GetMemory( char *p ) {  p = (char *) malloc( 100 ); }   void Test( void )  {  char *str = NULL;  GetMemory( str );   strcpy( str, "...【运行错误】传入GetMemory(char* ...

C语言形参指针的问题梳理

起因:我在学习链表的时候将*head(头指针)作为一个创建新结点函数形参,在函数中改变了head的指向,传入的实参是head(定义一个结构指针),但能改变主函数中head的指向。 我很疑惑因为传入的head不是代表...

C语言指针作为形参的一些问题

C语言中指针是个非常麻烦的事件,函数形参、实参值传递也是个比较绕脑的概念,指针函数中作为形参进行数据传递,比较常用的方式是把数组的首地址或者变量地址通过指针传给函数,还有函数中申请一段空间通过形参...

指针作为函数形参的总结

 一般用指针函数形参是为了传入参数地址,来进行修改实参数的值,即指针指向的值。但是如果要用来修改指针本身的值则需要指针指针或者指针变量的传址引用。  先来看一段经典的代码: void GetMemor

指针相减得到的是什么_从内存的角度读懂C指针

一、前言C语言是一门比较偏底层的语言,为什么这样说呢?因为C语言可以直接操作内存,而直接操作内存是通过指针来实现的。指针是C语言的精华,功能强大,可以灵活地操作内存,也是C语言区别于其他编程语言的一大特点...

指针(NULL,0),野指针void*的讲解

一:野指针  “野指针”不是NULL指针,是指向“垃圾”内存的指针。  “野指针”的成因主要有两种:  (1)指针变量没有被...所以,指针变量在创建的同时应当被初始化,要么将指针设置NULL,要么让它指向合法

指针作为形参进行传递注意事项

一个例子参考:...using namespace std; int m_value = 1; void func(int *p) { p = &m_value; }int main(int argc, char *argv[]) { int n

指针和引用 作为函数参数

* 有两个作用,一个是作为标识符来表示这是一个指针(声明变量时的等号左边),也就是说存放的是地址,另外一个是作为运算符来取值(赋值等号左边)。 int *p=NULL; int a = 1; p = &a; cout<&...

void的多种用法

关注+星标公众号,错过精彩内容转自| 最后一个bugvoid 对于程序员来说并陌生,但你知道 void 有多少种吗?1、简单认识一下void今天跟大家介绍的知识是C语言中的void关...

Linux下c语言函数中:指针参数的传入指针参数的传出

函数指针参数的传入:int型 #include <stdio.h> #include <string.h> void fun(int *p) { *p = 8; //这边(*p)表示传进来的是a的地址,改变(*p)的值,就是改变a的地址里面的值 printf("函数:p...

C语言函数参数类型以及返回值类型的一一对应

在平常写程序过程中,无非要使用到函数,写程序的时候经常知道实参传上去的形参该对应什么类型,或者说有时候知道怎么样传参,参数的类型该怎么一一对应,博主通过大量失败经验,总结了以下内容 一: 函数实参...

.net new一个类为什么报指针_C++指针小结

满堂花醉三千客,一剑霜寒十四州。--僧 贯休《献钱尚父》断断续续地学C++也有一两个月了,好歹把基本理论看了几遍,然而越学越觉得...本文试着对C++中的指针做个小结,主要参考的资料有《C++ Primer Plus》,《Essen...

C语言基础---19.为什么不能向函数传递一个数组

指针变量传递给函数 如下内容来源书籍《C语言深度剖析–第2版》,强烈建议初学者买来读一读,良心推荐! 1.常规理解(错误) #include <stdio.h> void fun(char a[10]) { char c = a[3]; printf("%c ...

函数参数的传递问题(指针指针

程序1: void myMalloc(char *s) //我想在函数中分配内存,再返回 { ... s=(char *) malloc(100);...void main() ... //这里的p实际还是NULL,p的值没有改变,为什么?  if(p) free(p); }

指针形参时应该注意的地方

1. 指针作为形参时,可以将指针的地址改变,比如调用malloc。 2. 只可以对指针指向的值做改变。       首先看以下程序:   #include &lt;stdio.h&gt; int *swap(int *px, int *py){   int...

C 函数参数传递一级指针和二级指针的区别

二级指针:指向一级指针指针,保存的也是地址,这个地址是一级指针变量的地址; 如: int a = 1; int* p = &a; //一级指针,p保存的是变量a的地址,*p 是取到变量a 的值 int** _p = &p; //二级指针,...

为什么要使用二级指针

所以,当我们定义了一个指向指针指针的时候(pointer to pointer),我们也称之二级指针,那针对于这个二级指针来说,第一级指针存放的是指向的变量的地址,第二级指针存放的是第一级指针的地址。可以用下面这张图...

指针作为函数形参申请内存失败

指针作为函数形参时,不要用该指针去申请动态内存。网上有下面的例子: void GetMemory(char *p, int num) { p = (char *)malloc(sizeof(char) * num); } void Test(void) { char *str = NULL; GetMemory...

C++智能指针和普通指针参数的使用问题

void*(或PVOID)转string 定时器使用 char * str = (char *)pvArgToCompletionRoutine; string ss=str; 内存泄漏:给一个对象申请一块内存空间,由于某种原因这块内存未释放掉,这块内存被占用导致应用卡顿等。 ...

C语言 被调函数修改指针形参

如果你想修改的是个指针,那么是传递指针的地址(二级指针),还是传递该指针呢? 1. C语言中的函数调用 讲之前,先弄清楚一些概念:主调函数,被调函数,实参,形参void fun(int p) // p 是形参,是在fun()内...

都有数据一直指针_C语言指针,超详细的讲解(附代码)!!!

为什么需要指针指针解决了一些编程中基本的问题。✅指针的使用使得不同区域的代码可以轻易的共享内存数据。当然小伙伴们也可以通过数据的复制达到相同的效果,但是这样往往效率太好。因为诸如结构体等大型数据,...

VSCode launch.json配置详细教程

主要介绍了vscode 的node.js debugger 的 launch.json 配置详情,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

相关热词 c# 字符串后六位 c#程序如何创建本地文本 c#和java比较 c# list 查找 c#打开窗体 c# 逻辑循环 c# 去数组中的数据库 c# 查找所有集成类 c#调用c++ 结构封装 c#两个类属性绑定