zoukankan      html  css  js  c++  java
  • 函数和指针的运用

    #include <stdlib.h>
    
    int *f1(void)
    {
       int x = 10;
       return &x;
    }
    
    int *f2(void)
    {
       int *ptr;
       *ptr = 10;
       return ptr;
    }
    
    int *f3(void)
    {
       int *ptr;
       ptr = malloc(sizeof *ptr);
       return ptr;
    }
    
    f1和f2运用时有错误的。

    Function f1 returns the address of a local variable.  Since the variable’s lifetime ends after the function returns, any use of the return value produces undefined behavior.

    Function f2 produces undefined behavior because it dereferences and returns an uninitialized pointer.  (It has not been assigned to point to anything, and its initial value is indeterminate.)

    Function f3 has no errors (although its caller should make sure the return value is not NULL before using it, and call free when the memory is no longer needed).

    这里考的是返回一个指针的问题,一般来说返回指针的函数,里面一定有malloc之类的内存申请操作,传入指针类型,则是对指针指向的内容做修改。如果想修改指针本身,那就要传入指针的指针。
  • 相关阅读:
    3.5.3 数据排序;重复数值、缺失值处理
    3.5.1 pandas基础
    3.3 numpy
    数据准备和特征工程
    2.4函数
    2.3语句与控制流
    2.2数据结构与序列
    2.1Python基础知识
    五、MySQL安装
    四、Hadoop HA 集群搭建
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007640.html
Copyright © 2011-2022 走看看