微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C程序:在数组末尾插入一个元素

如何解决C程序:在数组末尾插入一个元素

我想在数组的末尾添加一个元素。 LENGTH(a) 是一个宏,表示数组 a 的大小。数组的初始值为{1}。我想把所有的偶数都加到数组中。所以,我想要的结果是array = {1,2,4},但结果如图所示。

enter image description here

代码如下:

#include <stdio.h>
#include <stdlib.h>

#define LENGTH(a) (sizeof(a) / sizeof(*a))

void insert(int *,int);

void main(){
    int size = 1;
    int * array = (int*)malloc(size * sizeof(int));
    array[0] = 1;
    int i;
    int value = 0;

    for(i = 0; i < 5; i++){
        if (i%2 == 0){
            insert(array,i);   
        }       
    }
    for(i = 0; i < LENGTH(array); i++) {
      printf("array[%d] = %d\n",i,array[i]);
   }
}

void insert(int *array,int a){
    array = realloc(array,(LENGTH(array)+1)*sizeof(int));
    printf("length = %d\n",LENGTH(array));
    array[LENGTH(array)] = a;   
}

我想知道为什么会出现这种情况以及如何解决

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。