如何解决C程序:在数组末尾插入一个元素
我想在数组的末尾添加一个元素。 LENGTH(a) 是一个宏,表示数组 a
的大小。数组的初始值为{1}。我想把所有的偶数都加到数组中。所以,我想要的结果是array = {1,2,4},但结果如图所示。
代码如下:
#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 举报,一经查实,本站将立刻删除。