菜单

C语言安全编码之数组索引位的法定范围

2019年5月18日 - MySQL

**C语言中的数组索引必须保险位于合法的限制内!

C语言的数组,C语言数组

C语言的1维数组

一,求出一列数中的最大值和最小值

    int age[5];
    float sum=0;

    printf("请输入5个整数:\n");
    for (int i=0; i<5; i++) {
        scanf("%d",&age[i]);
    }
    int min=age[0];
    int max=age[0];

    for (int i=1; i<5; i++) {
        sum=sum+age[i];
        if (age[i]>max) {
            max=age[i];
        }
        if (age[i]<min) {
            min=age[i];
        }
    }
    printf("max=%d\n",max);
    printf("min=%d\n",min);

结果:

manbetx网页手机登录版 1

manbetx网页手机登录版,贰.冒泡排序

 int arr[5]={1,5,9,3,4},t;
    for (int i=0; i<4; i++) {
        for (int j=0; j<4-i; j++) {
            if (arr[j]>arr[j+1]) {
                t=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=t;
            }
        }
    }

    for (int i=0; i<5; i++) {
        printf("%d\t",arr[i]);
    }

结果:

manbetx网页手机登录版 2

 

http://www.bkjia.com/Cyy/1086196.htmlwww.bkjia.comtruehttp://www.bkjia.com/Cyy/1086196.htmlTechArticleC语言的数组,C语言数组 C语言的一维数组
一,求出一列数中的最大值和微小值 int age[ 5 ]; float sum= 0 ; printf( ”
请输入5个整数:\n ” ); for ( in…

**示例代码如下:

enum {TABLESIZE = 100};
int *table = NULL;
int insert_in_table(int pos, int value) {
  if(!table) {
    table = (int *)malloc(sizeof(int) *TABLESIZE);
  }
  if(pos >= TABLESIZE) {
    return -1;
  }
  table[pos] = value;
  return 0;
}

其中:pos为int类型,或者为负数,那会变成在数组所引用的内部存款和储蓄器边界之外实行写入

化解方案如下:

enum {TABLESIZE = 100};
int *table = NULL;
int insert_in_table(size_t pos, int value) {
  if(!table) {
    table = (int *)malloc(sizeof(int) *TABLESIZE);
  }
  if(pos >= TABLESIZE) {
    return -1;
  }
  table[pos] = value;
  return 0;
}

你也许感兴趣的稿子:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图