zoukankan      html  css  js  c++  java
  • linux c 出错集

    2018.7.8

    1.声明结构体时,结构体内部不能赋值。比如

    struct student{

      char id=0;

      char score=0;

    };

    这样大错特错!

    2.字符数组 char a[10] 。只有在声明的时候可以这样: char a[10]="xxxxx";

    若 不是声明时,a="xxx";这样大错特错。a是一个常量指针,不能改变值。

    此时可以用strcpy()或循环赋值。

    3. 记住  中括号  []  的降维作用。。。。。额。。无语。

    谨记教训。

    4.在创建链表结点的时候犯了一个低级错误:

    错误代码是这样的:

    void creat(p_list p)

    {

      p=(p_list)malloc(sizeof(list));

      p->next = p;

      p->pre = p;

      p->data = 0;

    }

    这里的错误是这样的:忽略了变量范围的作用域。

    这里的p_list p 很具有迷惑性,声明一个指向p_list型链表结点的指针。把p传进子函数,切记,这是传进子函数的是指针变量,传进子函数后,主函数的变量就已经失去作用了只不过是把主函数中P的值给了子函数中的p但是这时的p是子函数中的变量,其作用域只限于子函数区域。要更改错误有以下两种方法:

    1,调用函数时传递p指针的地址。

    2,将函数改为如下形式:

    p_list creat()

    {

      p_list p;

      p=(p_list)malloc(sizeof(list));

      p->next=p;p->pre = p;p->data=0;

      return p;

    }

  • 相关阅读:
    docker镜像管理基础
    docker的基础应用
    mysql基础
    策略模式
    简单工厂模式
    hystrix-go简介
    手把手带你使用 go-kit(option)
    手把手带你使用 go-kit(组件扩充,服务发现)
    手把手带你使用 go-kit(客户端直连)
    手把手带你使用 go-kit(基础篇)
  • 原文地址:https://www.cnblogs.com/jiaan/p/9279282.html
Copyright © 2011-2022 走看看