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

C++分析以下关于指针的操作有什么问题

代码一:按值传递/按引用传递

按值传递是指,在函数调用时,将参数的值复制一份传递给函数,函数中对参数值的修改不会影响到原始值

对于指针类型的参数,在按值传递的情况下,传递给函数的是指针变量的值(即指针变量所存储的地址),而不是指针所指向的内存地址。因此,当在函数中对指针变量赋值时,只是修改了指针变量的值,而不是指针所指向的内存地址。

void GetMemory1(char* p) {
    p = (char*) malloc(100);
}
char* str = NULL;
GetMemory1(str);

p 指向的是一个新分配的内存块,但是这个操作不会影响到原始指针 str,因为传递给函数的是指针 str 的副本,即指针变量的值,而不是指针所指向的内存地址

修改方案1:采用引用作为函数参数

void GetMemory1(char*& p) {
    p = (char*) malloc(100);
}

修改方案2:指向指针的指针

void GetMemory2(char** p) {
    *p、p = (char*) malloc(100);

代码二:作用域/内存释放

char *GetMemory2(void){
 char p[] = "hello world";
 return p;
}
void Test2(void){
 char *s

http://www.kler.cn/a/3404.html

相关文章:

  • 系统思考—业务协同
  • c#的tabControl控件实现自定义标签颜色
  • 【Unity】 HTFramework框架(五十九)快速开发编辑器工具(Assembly Viewer + ILSpy)
  • LabVIEW滤波器选择与参数设置
  • Kafka后台启动命令
  • 回归人文主义,探寻情感本质:从文艺复兴到AI时代,我的情感探索之旅
  • java面试准备8
  • Android 之 打开相机 打开相册
  • Python深度学习实战:人脸关键点(15点)检测pytorch实现
  • STM32数据搬运工DMA
  • 【贪心算法】一文让你学会“贪心”(贪心算法详解及经典案例)
  • 2023-第十四届蓝桥杯冲刺计划!
  • 蓝桥杯冲刺 - week2
  • HFish蜜罐的介绍和简单测试(三)
  • 【蓝桥杯集训·每日一题】AcWing 3662. 最大上升子序列和
  • 【Vue3】用Element Plus实现列表界面
  • Unity | 发布Android的那些事儿
  • Spring - Spring 注解相关面试题总结
  • 新人使用Git获取远程仓库项目
  • Html5版飞机大战游戏中(Boss战)制作
  • 你的应用太慢了,给我司带来了巨额损失,该怎么办
  • 【Python入门第三十六天】Python丨文件写入
  • 【蓝桥杯嵌入式】第十三届蓝桥杯嵌入式国赛客观题以及详细题解
  • 使用C++编写一个AVL的增删改查代码并附上代码解释
  • Java_Spring:3. IoC 的概念和作用-程序的耦合和解耦
  • c#文案语音配图片一键生成视频