美文网首页
指针数组使用前初始化问题

指针数组使用前初始化问题

作者: mztkenan | 来源:发表于2017-12-02 12:09 被阅读179次

背景

今天刚上复旦大一的表弟问我一道题,说是死循环,我在codeblocks里运行并不是死循环,报出一个signal警告停止运行。数组越界了,冒泡排序写的也有点问题。但是主要原因在输入输出方面,回顾了下指针的概念,最后终于发现问题所在,指针在使用前一定要初始化

资料

C语言指针的初始化和赋值
问题总结成一个典型错误

    int  *p;
    *p = 7;

这里就要深入指针的物理概念了,第一行定义了一个int指针类型变量p,但是没有将具体的内存中的地址赋给它,所以不能赋值

原始题目

编写输入、输出、排序3个函数。3个函数都以指针数组和数组元素个数为形参,分别实现将一组离散的变量顺序输入、输出和从大到小排序。

改进

#include<stdio.h>
int shuru(int *p[],int n1)
{
    int i1;
    for (i1=0;i1<n1;i1++) scanf("%d",p[i1]);
}
int shuchu(int *q[],int n2)
{
    int i2;
    for (i2=0;i2<n2;i2++) printf("%d ",*q[i2]);
}
int paixu(int *h[],int n3)
{
    int i3,i4,t;
    for (i3=0;i3<n3;i3++)
      for (i4=0;i4<n3-i3-1;i4++)
      if(*h[i4]>*h[i4+1])
      { t=*h[i4];*h[i4]=*h[i4+1];*h[i4+1]=t; }
}
int main()
{
    int n,a[1000]={0},*qp[1000];
//  for (int i=0;i<1000 ;i++ )//这里是我补充的
//  {
//      qp[i]=&a[i]; 
//  }
    scanf("%d",&n);
    shuru(qp,n);
    paixu(qp,n);
    shuchu(qp,n);
    return 0;
}


相关文章

  • 数组和指针

    数组初始化 函数,数组,指针 使用指针形参 指针操作 通过指针改变数组内容

  • 指针数组使用前初始化问题

    背景 今天刚上复旦大一的表弟问我一道题,说是死循环,我在codeblocks里运行并不是死循环,报出一个signa...

  • Algorithm小白入门 -- 数组

    数组双指针技巧数组删除、去重 1. 双指针技巧 1.1 快慢指针 快慢指针一般都初始化指向链表的头结点head,前...

  • 14.6 结构和其他数据形式:结构、指针、malloc()

    在结构中使用字符数组来存储字符串,但是使用指向char的指针来代替字符数组会更加方便。 但是此处没有初始化指针,此...

  • debug问题

    这种情况主要是因为使用变量前没有初始化 尤其是指针 特别注意指针的初始化问题 普通变量也可能出现这种问题此时要回去...

  • C-数组篇(一维数组-上)

    数组,相信大家都使用过。本文将由浅入深的讨论数组,探索一些更高级的数组话题,如多维数组、数组与指针及数组的初始化等...

  • 指针 数组 互相转换

    数组转指针 指针使用数组中的值

  • android 源码阅读的C++语法准备2 数组 函数 字符串

    1.C++ 数组 声明和初始化 指向数组的指针 balance 是一个指向 &balance[0] 的指针,即数组...

  • 指针与数组

    指针与数组 指针数组,数组指针,指针法访问数组,分不清如何使用,下面将帮你疏通思路,更好理解他们的关系。 数组名的...

  • 10.18

    今天主要时对前几周学习的一种巩固,主要有指针和数组的结合使用,数据指针,数组和动态申请,还有const的用法。指针...

网友评论

      本文标题:指针数组使用前初始化问题

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