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 (将#修改为@)