美文网首页
【tip4】一级指针无法带出申请到的内存,使用返回值可以。

【tip4】一级指针无法带出申请到的内存,使用返回值可以。

作者: papi_k的小茅屋 | 来源:发表于2024-01-22 12:08 被阅读0次

示例:

// 将申请到的内存赋给一级指针
void GetValue1(int *a)
{
    int *b = malloc(sizeof(int));
    *b = 2;
    a = b; // 该接口返回后,*a就不是2了,失效了。正确写法可以写成*a = *b;
}

// 将申请的内存通过返回值int *方式返给上级调用处
int *GetValue2(void)
{
    int *b = malloc(sizeof(int));
    *b = 2;
    return b;
}

int main()
{
    int a = 1;
    GetValue1(&a);
    printf("a=%d\n", a); // 输出结果还是1,而不是2
    int *b = GetValue2();
    a = *b;
    printf("a=%d\n", a); // 输出结果是2
   
    return 0;
}

yo peace!

相关文章

  • 指针

    指针只能存储地址值,通过指针可以对指针指向的内存进行空间进行存取操作。 指针使用注意点: 指针在数组中的使用 指针...

  • 二级指针与指针的运算

    上回说到,指针,是变量的内存地址 其实二级指针,就是一级指针的内存地址 void main(){ int i = ...

  • 搞不清白的指针啊啊啊啊

    1、一级指针和二级指针 在传递一级指针时,只有对指针所指向的内存变量做操作才是有效的;void fun(int *...

  • C++11(1)-智能指针

    C++裸指针的内存问题有:1、空悬指针/野指针2、重复释放3、内存泄漏4、不配对的申请与释放 使用智能指针可以有效...

  • Go-Pointer

    go 指针 声明指针类型 x 错误写法此时创建的是一个空指针,而空指针无法获取到内存地址,也就无法根据内存地址找到...

  • C++11智能指针管理第三方库分配的内存

    由于第三方库返回的分配内存返回的指针一般是原始指针,需要手动释放内存。这时候就可以使用智能指针来自动管理分配的内存...

  • OutOfMemoryError 和 StackOverflow

    OutOfMemoryError(内存不足):如果虚拟机的栈内存允许动态扩展,当扩展栈容量无法申请到足够的内存时,...

  • 多元组

    元组可以解决很多方法的返回值有多个问题 之前遇到需要方法返回多个返回值的时候,要么我们使用指针/输出参数的方式,要...

  • 多级指针

    多级指针注意引用即可,主要的还是多级指针和动态内存之间的跨函数使用内存

  • 指针数组使用的一些坑

    指针函数的返回值应该使用指针变量来接受,而不是指针常量 数组名是指针常量而不是指针变量,因此不能接受指针函数的返回...

网友评论

      本文标题:【tip4】一级指针无法带出申请到的内存,使用返回值可以。

      本文链接:https://www.haomeiwen.com/subject/obgeodtx.html