如何解决从动态数组中删除零C语言
我尝试使用两个动态数组,以使第二个数组仅接受来自用户收费的第一个数组中的非null元素,并且在每次迭代中重新分配第二个数组的大小。最后,我想获得一个没有null元素的数组,但是我的代码在这里不起作用:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,*T,*K,*p,i=0,j=0,size;
printf("Choose the number of elements :\t");
scanf("%d",&n);
printf("\n");
T=(int*)malloc(n*sizeof(int));
K=malloc(sizeof(int));
for(p=T;p<T+n;p++){
printf("Enter T[%d]\t",p-T);
scanf("%d",p);
}
for(i=0;i<n;i++){
if(*T!=0){ K = (int*)realloc(K,(j++)*sizeof(int));
*K=*T;
K++;
}
T++;}
size = sizeof K / sizeof *K;
for(i=0;i<n;i++){
printf("\n\nT+%d=%d *T=%d",i,K,*K);
K++;}
printf("\n");
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。