精华内容
下载资源
问答
  • 例如:int **array;//假定array是10*10大小吧 array[1][9],然后在一个循环里array[1][9]增长到array[1][11],竟然没有出错。 有知道原因的吗?麻烦解释一下,谢谢
  • 提示错误...想要在这个界面中以表格的形式显示出从MYSQL数据库查询出的数据(已实现),并直接在表格中进行删除和修改,按下删除和修改按钮后进行保存。现在就是删除和修改功能没有完成。提示错误为:Exception in ...

    想要在这个界面中以表格的形式显示出从MYSQL数据库查询出的数据(已实现),并直接在表格中进行删除和修改,按下删除和修改按钮后进行保存。现在就是删除和修改功能没有完成。提示错误...

    想要在这个界面中以表格的形式显示出从MYSQL数据库查询出的数据(已实现),并直接在表格中进行删除和修改,按下删除和修改按钮后进行保存。现在就是删除和修改功能没有完成。

    提示错误为:Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1

    求各位大神解决这个问题或者告诉我这两个功能该如何写!多谢!

    public void actionPerformed(ActionEvent e){

    Object obj = e.getSource();

    connection();

    Object[] cloum1={"学号","姓名","课程号","课程名","成绩"};

    Object[][] row1=new Object[50][5];

    table1=new JTable(row1,cloum1);

    scrollpane1=new JScrollPane(table1);

    jp.add(scrollpane1);

    scrollpane1.setBounds(50,50,500,400);

    if(obj == b1){

    try{

    String s1 = tf.getText().trim();

    if(list1.getSelectedItem().toString().equals("姓名")){

    if(b1.equals(e.getSource())){

    for(int i=0;i<50;i++)

    for(int j=0;j<5;j++)

    table1.setValueAt("", i, j);

    ResultSet rs = state.executeQuery( "select grade.学号,姓名,课程号,课程名,成绩 from grade where 姓名 = '"+s1+"'");

    int k=-1;

    while (rs.next()) {

    ++k;

    String 学号 = rs.getString(1);

    ……

    table1.setValueAt(学号,k,0);

    ……

    }

    }

    }

    }

    catch(SQLException e2){……}

    }

    }

    try{

    int selectedRowIndex = table1.getSelectedRow(); // 取得用户所选单行

    String studentID=row1[selectedRowIndex][0].toString();//获取用户选择的学号//提示错误语句

    if(obj == b2){//修改 }

    if(obj == b3){//删除 }

    }

    catch(SQLException e2){…}

    }

    展开

    展开全文
  • OJ题目描述 输入一个链表,从尾到头打印链表每个节点的值。 代码: ------ ```c /** ...段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起
  • 运行时错误9下标越界的处理方法

    万次阅读 2016-08-08 15:29:32
    内容提要:文章介绍excel中VBA运行时错误9下标越界的原因及其解决方法。对Excel感兴趣的朋友可加Excel学习交流群:284029260(www.itblw.com)  Excel中vba提示下标超界,说明对象不存在或者数组元素不存在。  ...
    内容提要:文章介绍excel中VBA运行时错误9下标越界的原因及其解决方法。对Excel感兴趣的朋友可加Excel学习交流群:284029260(www.itblw.com

      Excel中vba提示下标超界,说明对象不存在或者数组元素不存在。

      举个简单的例子:工作表中没有"1月"这个工作表,却用Sheets("1月");数组定义的是arr(1 to 10),却用Arr(11),都会出现下标越界的提示。

      简单的理解:下标越界就是引用超出了所在的范围。

      当我们在excel的VBA中输入下面代码,运行,就会出现“运行时错误9下标越界”的提示。代码如下:

    Sub a()
    Dim arr() As String
    arr(1) = "你好"
    End Sub

      其实上面的“运行时错误9下标越界”是因为定义的动态数组没有确定维数和尺寸。定义成固定维数和尺寸的,或用Redim界定一下维数和尺寸即可解决此问题。

    运行时错误9下标越界

      改正后的代码如下:

    Sub a()
    Dim arr() '定义一个动态数组
    Dim i As Integer
    ReDim arr(1 To 3) '定义一个3个元素的数组,并且对数组进行初始化
    arr(1) = 3
    arr(2) = 4
    arr(3) = 5
    '在下面语句重新定义一个10个元素的数组,清除前面的元素,并重新分配新的存储变量
    ReDim arr(1 To 10)
    For i = 1 To 10
    arr(i) = i
    Next i
    End Sub

    展开全文
  • 数组应用中常见的错误提示:Array Index Out of Bounds Exception :当访问到数组中不存在角标时,就会在运行时发生该角标越界异常。 Null Point Exception:空指针异常。当引用型变量没有任何实体指向时,...

    ----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

    数组应用中常见的错误提示:Array Index Out of Bounds Exception :当访问到数组中不存在角标时,就会在运行时发生该角标越界异常。

    Null Point Exception:空指针异常。当引用型变量没有任何实体指向时,还再该变量操作具体的实体时,就会发生该异常。

    这些错误都是在运行时期发生的。编译时不会,因为没有语法错误,编译时不会在内存中创建实体。

    数组的另一定义方式。

    在数组定义时,既明确了数组的长度、类型,还明确了元素的内容。

    格式:元素类型[ ] 数组名=new 元素类型[ ]{元素,元素,---}

    int[ ] arr = new int [ ] {2,6,9};还可以写成int [ ] arr = {2,6,9};直接大括号。

    通过数组实体具备的一个属性--length,直接获取数组的长度。

    操作数组的核心思想:角标。 通过角标就可以对数组中的元素进行访问(设置和获取)

    通过数组操作的最基本动作:遍历。通过循环操作数组。

    从前向后遍历:for(int x=0 ,x<arr.length;x++)

    从后向前遍历:for(int x= arr.length-1;x>=0;x++)

    数组常见的操作

    一、获取数组中的最大值、最小值。

    思路:1、互相比较。2、两个元素相比,获取较大的那个和下一个继续比,以此类推,最终出现最大值。

    步骤:1、每次比完,哪个是较大的元素不确定,需要定义一个变量进行记录。该变量需要初始化,初始化为数组中的任一元素。

    2、每一个元素都要和该位置记录的元素进行依次比较。需要取出数组中的每一个元素。需要变量,for循环。

    3、遍历过程中,需要判断,将较大值存储到变量中。

    4、循环结束,最大值出现在该变量中。

    需要定义一个功能来进行最大值的获取

    1、明确结果。既然数组是int类型,那么结果为int类型

    2、明确未知内容。数组是未知,所以参数列表是数组类型。

    public static int getMax(int [] arr )

    {

    int max=arr[0]

    for(int x=1,x<arr.length;x++)

    {

    if(arr[x]>max])

    max=arr[x];

    }return max;

    }

    另一种方式:

    public static int getMax_2(int[]arr)

    {

    int maxIndex=0;

    for(int x=1;x<arr.length;x++)

    {

    if (arr[x]>arr[maxIndex])

    {

    maxIndex=x;

    }

    }return arr[maxIndex];

    }

    二、排序

    选择排序

    public static void selectsort(int[]arr)

    {

    for (int x=0;x<arr.length-1 ;x++ )

    {

    for (int y=x+1;y<arr.length ;y++ )

    {

    if (arr[x]>arr[y])

    {

    int temp=arr[x];

    arr[x]=arr[y];

    arr[y]=temp;

    }

    }

    }

    }

    冒泡排序

    public static void bubblesort(int[]arr)

    {

    for (int x=0;x<arr.length-1 ;x++ )

    {

    for (int y=0;y<arr.length-1-x;y++)

    {

    if (arr[y]>arr[y+1])//(从小到大排)

    {

    int temp=arr[y];

    arr[y]=arr[y+1];

    arr[y+1]=temp;

    }

    }

    }

    }若不涉及性能优化,这种思想方式易记忆。

    For表达式部分也可写成for(int x=arr.length-1;x>0;x--)

    {

    for(int y=0;y<x;y++)

    ----------

    }

    数组中元素的置换

    public static void swap(int []arr,int a,int b)

    {

    int temp=arr[a];

    arr[a]=arr[b];

    arr[b]=temp;

    }

    三、二分查找(折半查找)

    1、查找一个元素在数组中的位置

    思路:直接对数组遍历,遍历过程中需要对要找元素进行判断。如果遍历的元素和要找的元素相等,说明存在,返回该元素角标即可。

    如果没有找到,可以用-1来表示没有找到的情况。

    步骤:1、定义一个功能

    明确结果:角标 int

    明确未知内容:数组、要找的元素

    2、函数的具体实现

    通过循环遍历数组,在循环中进行判断

    public static int getIndex(int[]arr,int key)

    {

    for (int x=0;x<arr.length ;x++ )

    {

    if (arr[x]==key)

    return x;

    }return -1;(若没有这一句,编译不会通过,因为函数会缺少返回值)

    }

    二分查找:前提:对有序数组进行查找

    public static int binarySearch(int[]arr,int key)

    {

    //需要定义三个变量,用于记录角标的变化。

    int min,max,mid;

    min=0;//头角标

    max=arr.length-1;//尾角标

    //只要min<=max就有继续折半的可能。

    while (min<=max)

    {

    //mid是变化,是随着循环而变化的,定义在循环内。

    mid=(min+max)>>>1;//获取中间角标值

    //获取到的中间角标元素和key进行比较,来确定min和max的新值

    if (key>arr[mid])

    min=mid+1;

    else if (key<arr[mid])

    max=mid-1;

    else

    return mid;

    }return -1;

    }

    二分查找的另一种写法

    public static int binarySearch(int[]arr,int key)

    {

    int min,max,mid;

    min=0;

    max=arr.length-1;

    mid=(min+max)>>>1;

    while (arr[mid]!=key)

    {

    if (key>arr[mid])

    {

    min=mid+1;

    }

    else if (key<arr[mid])

    {

    max=mid-1;

    }

    if (min>max)

    return -1;

    mid=(min+max)>>>1;

    }return mid;

    }

    二分练习

    有一个有序数组,要求在该数组中添加一个元素,还能继续保持这个数组有序,元素位置如何获取。

    思路:1、数组有序,还要获取位置,即查找,可用二分查找

    2、如果插入元素在数组中存在,只要找到元素在数组中的位置即可。

    3、如果元素在数组中不存在,位置在头角标即可,只是将return-1改为return min即可。

    给定的数组中的元素进行反转

    思路:1、反转其实就是头尾角标的元素进行位置置换

    2、然后让头角标自增,尾角标自减,再继续位置置换

    3、以此类推,直至头角标>=尾角标结束

    public static void reverseArry(int[]arr)

    {

    for (int start=0,end=arr.length-1;start<end ;start++,end-- )

    {

    int temp=arr[start];

    arr[start]=arr[end];

    arr[end]=temp;

    }

    }

    四、数组应用之进制转换

    查表法:我们发现,十六进制中一共有十六个元素,而且没通过&15获取的数值都在15内,都有对应的十六进制元素。而元素对应的数字恰好有规律,既符合数组这种容器的特点角标。

    那么可将十六进制的元素都存储到数组中,将每次&15的结果作为角标来查找这个数组,就可获取对应的十六进制元素。

    查表法的使用:元素很多时,而且这些元素与数字有对应关系,而且这些数字都有角标的规律,这时优先考虑查表法。

    进制转换

    public static void trans(int num,int base,int offset)

    {

    if (num==0)

    {

    System.out.println(0);

    return;

    }

    //数组建表思想:元素和角标是否有规律

    char[]arr={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

    //数组存储思想:定义数组存储用指针来操作数组元素。

    char[]chs=new char[32];

    int pos =chs.length;

    while (num!=0)

    {

    int temp=num&base;

    chs[--pos]=arr[temp];

    num>>>=offset;

    }

    for (int x=pos;x<chs.length ;x++ )

    {

    System.out.print(chs[x]);

    }System.out.println();

    }

    public static void toBin(int num)

    {

         trans(num,1,1);

    }

    public static void toOctal(int num)

    {

    trans(num,7,3);

    }

    public static void toHex(int num)

    {

        trans(num,15,4);

    }

    开发时使用的数组排序:class前加上import java .util.*;

    Main函数中Arrays.sort(arr);(java提供的数组排序方式。)

    开发时使用的进制转换 

    System.out.println(Integer.toBinaryString(6));对6进行2进制的转换

    System.out.println(Integer.toOctalString(6));对6 进行 8进制的转换

    System.out.println(Integer.toHexString(6));  对6 进行 16进制的转换

    ----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------

    展开全文
  • 大家在用STM32的时候有没有遇到过HardFault的问题呢:之前有一段时间被这个问题困扰了很久,下面针对这...其产生的原因大概有如下几类:(1)数组越界操作;(2)内存溢出,访问越界;(3)堆栈溢出,程序跑飞;(4)中断处...

    大家在用STM32的时候有没有遇到过HardFault的问题呢:

    29e1cf224b80820b10ea4e03166302a1.png

    之前有一段时间被这个问题困扰了很久,下面针对这个问题做个小总结。

    现象还原:在debug模式下进行仿真调试,全速运行再停止运行,程序会跑到 HardFault_Handler函数中,产生 HardFault,即硬错。其产生的原因大概有如下几类:

    (1)数组越界操作;

    (2)内存溢出,访问越界;

    (3)堆栈溢出,程序跑飞;

    (4)中断处理错误;

    针对HardFault问题的定位,网上有几种方法,大概都是围绕着:在debug模式下,查看一些地址,分析寄存器、函数调用栈等,这是很让人头疼的事情。

    这里分享一种简单的、直观的HardFault错误定位的方法,使用开源库:CmBacktrace 。这个库之前已经有介绍过了,这篇笔记我们来实践一下。

    CmBacktrace简介

    CmBacktrace (Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。主要特性如下:

    • 支持的错误包括:
      • 断言(assert)
      • 故障(Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault)
    • 故障原因 自动诊断 :可在故障发生时,自动分析出故障的原因,定位发生故障的代码位置,而无需再手动分析繁杂的故障寄存器;
    • 适配 Cortex-M0/M3/M4/M7 MCU;
    • 支持 IAR、KEIL、GCC 编译器;

    移植及使用(keil)

    CmBacktrace 源码地址:

    https://github.com/armink/CmBacktrace

    404d5351e3e149aa66124f44e1684e91.png

    把cm_backtrace文件夹复制到我们的工程目录下,并添加至keil工程中,并添加头文件、勾选C99模式:

    77f44dee673e0b481e12d30d34b392ba.png

    4a4541418ce2fc066757e58d9df6e8ea.png

    此时,编译会产生几个错误:

    7d305b6022ee2b9ca09d0dacca0adc11.png

    那是因为有些预处理宏没有找到,打开、修改cmb_cfg.h文件的内容。cmb_cfg.h文件默认内容为:

    a75b21ccb4b32051599de00bbc16ca69.png

    我们修改后的cmb_cfg.h内容变为:

    2ced772156f689707b898ecc95af1e7d.png

    这时候编译还会有一个错误,cmb_fault.c与stm32f10x_it.c中的HardFault_Handler函数重定义:

    4c0b687f8218775058b69a60c86d8828.png

    需要把stm32f10x_it.c中的HardFault_Handler函数屏蔽掉:

    2eb925fc7fcdecfa89a8a79c51cfd532.png

    这时候就可以编译通过了。下面我们来看看这个库的效果。

    我们编写如下测试函数:

    左右滑动查看全部代码>>>

    void fault_test_entry(fault_test_case_E _test_case){
    switch (_test_case)
    {
    case FAULT_TEST_BY_DIV0:
    fault_test_by_div0();
    break;

    case FAULT_TEST_BY_UNALIGN:
    fault_test_by_unalign();
    break;

    default:
    printf("test case error!\n");
    break;
    }
    }

    static void fault_test_by_div0(void) {
    volatile int * SCB_CCR = (volatile int *) 0xE000ED14; // SCB->CCR
    int x, y, z;

    *SCB_CCR |= (1 << 4); /* bit4: DIV_0_TRP. */

    x = 10;
    y = 0;
    z = x / y;
    printf("z:%d\n", z);
    }

    然后在主函数中调用测试函数:

    ba01b2ec77be621fdfec47b41f60b876.png

    6b5a44510b5d0396389bada3aaa62e0b.png

    下载运行程序:

    e2b58524b8fc01947bd9f0e5a6f8dc04.png

    可以看到,列出的信息很详细,包括出错原因。按照它的提示,我们运行命令:

    左右滑动查看全部代码>>>

    addr2line -e stm32f10x_demo.axf -a -f 0800162a 080016b7 08001719

    运行这个命令需要用到addr2line.exe工具,这个工具在CmBacktrace源码目录下的tools文件夹中:

    8cac8e1c5dd97ba48fbefa99986b1182.png

    有32bit和64bit两个版本,根据我们的环境选择,并拷贝到我们的keil工程目录下可执行文件.axf所在的文件夹中:

    f73de1b60111c9b15a980a67dbaf51d3.png

    在这个文件中进入到cmd窗口,方法:按下Shift键的同时点击鼠标右键:

    335e0d7f1d0e84b974269026807a01be.png

    运行上面那条命令:

    69d65fe81aaf495bd45a68a2a3b6d147.png

    可以看到addr2line.exe工具给我们定位出了错误相关的代码行号,我们看看对应行的代码是什么:

    6bd7bac2bd3a0aea88d4c859431e778d.png

    可见,对应的行号正是出错的地方。

    可以看到,使用这个CmBacktrace 库能帮助我们有效、快速地定位到HardFault之类的错误。addr2line命令后面跟着几个地址就是错误相关的地址,这几个地址可以牵扯的内容很深。如果我们不使用CmBacktrace 库,我们可能就得自己去分析这些偏底层的内容了,相关知识可阅读:《Cortex-M3/M4权威指南》。

    以上就是本次的笔记分享,如有错误欢迎指出!谢谢

    本篇笔记keil工程及CmBacktrace源码可在本公众号聊天界面回复关键词:追踪库,进行获取。关于CmBacktrace的详细介绍可阅读全文进行查看。

    猜你喜欢:

    C语言、嵌入式位操作精华技巧大汇总

    SFUD | 一个简洁实用的开源项目,帮你轻松搞定SPI Flash

    等你来撩:

    聊天界面发送m获取往期笔记目录

    db347454e68e51e728aa52076f624289.png

    展开全文
  • 2.提示给这个数组输入整数值(如果用户输入错误,应可以重输) 3.显示未排序数组的元素 4.询问是否要在未排序数组中查找数据(如果你选择的不是Y,y,程序将从第八步开始) 5.提示输入一个查找值 6.显示查找结果...
  • 问题 在使用matlab的csfunction编程时出现了错误:matlab调用.mex函数时,第一次调用正常,第二...猜想可能是数组越界等导致的内存问题,然后在网上找到这样一篇文章:有关奇葩的mex编程时的matlab出现栈内存错误的...
  • C++读取访问权限冲突引发异常问题

    千次阅读 2020-11-24 21:05:37
    可这并不会造成编译错误,也就是说,编译器并不会在你编译的时候就指出你访问数组越界了,这个时候可能还是“0 errors,0 warnings” 你还在暗暗庆幸自己的代码没有bug,但是当你运行之后就会抛出访问
  • java 异常

    2016-09-06 21:52:27
    ArrayIndexOutOfBoundsException数组越界 ClassCastException 类型转换异常 InputMismatchException用户输入异常 NullPointerException空指针异常 FileNotFoundException文件没有找到
  • 这个意思是,__NSDictionaryM 无法将值传到下标索引对象,言简意赅就是数组越界。可是再看看,这是数组吗?不是,所以。遇到这样的crash,我这里有两种情况: 1.首先看看你indexPath.row 用的有没有问题; 2.看看...
  • C--段错误

    2018-11-29 13:11:57
    程序执行提示:段错误 (核心已转储)/Segmentation fault 一、可能的原因 解引用空指针 ...数组未初始化 or 数组下标否越界 变量的格式处理不合理 二、调试方法 Linux下执行程序的时候遇到了这个错误,...
  • 北大oj知识点(2)

    2021-01-19 17:17:14
    oj错误提示Wrong Answer:Runtime Error:Presentation Error:Time Limit Exceeded:Memory Limit Exceeded:Compile Error...运行时错误,出现这个错误的原因一般是数组越界或者递归过深导致栈溢出。 Presentation E
  • 此类异常,编译时没有提示做异常处理,因此通常此类异常的正确理解应该是“逻辑错误” 算数异常, 空指针, 类型转换异常, 数组越界, NumberFormateException(数字格式异常,转换失败,比如“a12”就会转换失败...
  • 被TRACE小郁闷一把

    千次阅读 2007-03-19 15:18:00
    写了个程序,解析数据包的,总是在运行一段时间后出现 dumpout.cpp 52 断言错误,看代码提示,知道是数组越界了,改数组大小,还是不行,郁闷不已。仔细看了dumpout.cpp 52行的错误,才明白 TRACE输出的缓冲区大小...
  • 9-2崩溃问题

    2018-11-11 11:41:00
    1.常见的崩溃类型 ANR:主线程5秒内没响应 app主线程发起一次网络请求,如果这个网络请求5秒内没有...比如页面列表index计算错误数组越界,导致应用崩溃。 Crash:native crash 封装的底层库崩溃导致的 2.基本...
  • Java_关于异常的总结

    2019-09-15 14:06:00
    异常的概念 Java 中的异常(Exception)又称为例外,是一个在程序执行期间发生的事件,它中断正在执行的程序的正常指令流。...2.编写的程序代码中的错误所产生的异常,例如数组越界异常。这种异常称为未检査的...
  • 编译时异常可以认为是程序存在的潜在风险,例如程序要打开一个文件,但是文件不存在,或者试图创建一个socket,但是远程主机没有开机等等,...运行时异常可以认为是程序写得有问题,比如说数组越界、除以0和空指针访问
  • 数组下标越界异常;类型转换异常;……为什么要学习异常程序运行时不可能不出现任何问题的;即使我们的程序本身没问题,但是程序一般是要给用户使用的,我们不能控制用户不输入错误数据;而且有的程序会需要使用第三...
  • 而且这个错误跟他提示里的变量‘ishift’其实没有关系,如果程序提示了这个错误,那么就在错误发生的函数里面老老实实看看数组哪里的下标越界了; 看到其他帖子说的什么把“project-&gt;配置属性-&gt;c/c++...
  • 什么是异常?异常本质上是程序上的错误错误在我们...运行期间的错误只有程序运行时才能看到错误提示,比如数组访问时下标越界、使用空对象调用方法、算术运算时除数为0、类型转换时无法正常转型等,运行期间的错...
  • Java异常 学习

    2020-07-29 20:24:06
    思维导图 导学 本节课程,我们将会学习到异常,以及如何处理可能会发生的异常。...比如使用空的对象引用调用方法、数组访问时下标越界、算数运算除数为0、类型转换时无法正常转型等,这些错误在编译的时候完全没有提示
  • Java异常

    2020-07-29 16:21:57
    运行期间的错误,比如使用空的对象引用调用方法、数组访问时下标越界、算数运算除数为0、类型转换时无法正常转型等,这些错误在编译的时候完全没有提示。 在程序运行过程中,意外发生的情况,背离我们程序本身的...
  • 异常处理允许读者为程序的正常情况单独设计和编写代码,并与不正常情况下的处理代码分开。...这种异常说明代码有逻辑错误,需要更改代码而不是捕获异常,因此这种异常通常起到运行时提示错误的功能,而不是异常的功能。
  • 出现错误时,根据报错提示,一步步溯源去找是不是哪个物体没激活。 越界问题 索引的值超出数组的实际大小时报错。在使用for循环去处理一些问题时,因为条件的设置没考虑边界的问题时而产生。 Unity在
  • 前言 今天在开发过程中调用一个库函数结果库函数有throw操作,当前代码没有对throw进行捕获操作,导致进程在main 函数中...所谓“处理”,可以是给出错误提示信息,然后让程序沿一条不会出错的路径继续执行;也可能是不
  • 这两种情况下,除了模式选择不同,其它的完全一样,编译时也没有提示相关错误。 我查了芯片数据手册,说是HardFaultException(硬故障)这种情况,是由于堆栈被破坏或者数据写越界造成的,于是我追查了我的内存空间...
  • ●健壮性:不能出现野指针、内存泄露、数组越界访问等等: ◎申请内存之后,应该立即检查指针值是否为NULL;动态内存的申请与释放必须配对,防止内存泄漏。释放了内存之后,立即将指针设置为NULL,防止产生“野指针...

空空如也

空空如也

1 2 3
收藏数 43
精华内容 17
关键字:

数组越界没有提示错误