从动态数组中删除零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 (将#修改为@)