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

从动态数组中删除零C语言

如何解决从动态数组中删除零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 举报,一经查实,本站将立刻删除。