码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 个人C语言问题记录


    1、返回二重指针过程中报错

    read_csv.c:57:12: warning: function returns address of local variable [-Wreturn-local-addr]
         return data;
                ^~~~
    
    • 1
    • 2
    • 3

    问题原因,在返回局部变量,函数返回了局部变量(函数中的局部变量存放在stack中,函数执行完成之后会自动释放,因此不应将局部变量的指针作为返回值。)。在定义过程中加static

    static int *data[84];
    
    //data[COUNT] = (int*)malloc(84 * sizeof(int));   //每一行分配内存
    
    • 1
    • 2
    • 3

    用完记得free

    2、函数返回多个值

    方法一:设置全局变量,这样你在形参中改变全局变量,在实参中也会有效。所以你可以在形参中改变多个全局变量的值,那么在实参中就相当于返回多个值。
    
    方法二:如果你用数组名作为形参,那么你改变数组内容,比如排序,或者进行加减运算,回到实参时依然是有效的。这样也会返回一组值。
    
    方法三:可以利用指针变量,这个原理和方法二是一样的,因为数组名本身就是数组首元素的地址。就不多说了
    int **Open_CSV(int *count){
    int Number = 99;
    *count = Number
    }
    最后会改变值
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3、无法修改左值

    宏定义无法修改

    read_csv.c:38:26: error: lvalue required as increment operand
                         COUNT++;
                              ^~
    
    • 1
    • 2
    • 3

    4、若使用指针需要初始化和申请地址

    int *count , a = 0, b = 0, c = 0;
        static int **data, *IQ_I[42], *IQ_Q[42]; 
        *IQ_Q = &b, *IQ_I = &c, count = &a;
        data = Open_CSV(count);  
    
    • 1
    • 2
    • 3
    • 4

    不初始化也许程序看起来没什么问题,但可能出现野指针的问题,运行到一半地址会突然变掉。导致出现出现,

  • 相关阅读:
    FeignClient调用接口400异常
    字节青训营|安卓基础知识笔记,快速入门!
    react路由传参的几种方式
    java计算机毕业设计社区健康信息管理系统源码+系统+mysql数据库+lw文档
    Xinlinx zynq7045国产替代 FMQL45T900全国产化 ARM开发板
    猿创征文丨赶紧进来!!! 详细介绍C语言指针(九千字完结篇)
    从0开始学汇编的第三天:寄存器(内存访问)
    分饼干问题(DP)
    嵌入式处理趋势,第一部分:超集成MCU
    杭州高职画室哪家好?如何选择高职画室?高职美术学习选哪家画室?
  • 原文地址:https://blog.csdn.net/qq_43313294/article/details/134525738
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号