人间不清醒ab 2023-06-10 09:22 采纳率: 75%
浏览 19
已结题

动态申请数组与赋值运行结果有问题

问题遇到的现象和发生背景

动态申请数组后,无法完成动态传值,编译运行都没问题,就是数据对不上。

img

 printf("%d\n", count); // count=5
int *data = (int *)malloc(sizeof(int) * count);
    // data[0]=5;
    if (data == NULL)
    {
        printf("分配内存失败\n");
        data = (int *)realloc(data, 4 * count);
        printf("data=%d\n", data == NULL);
    }
    printf("分配内存成功%d\n", sizeof(data)); // 输出为结果为4
    int i = 0;
    while (num)
    { // num=99666
        // t==num%10;
        printf("分配内存成功%d\n", i);
        data[(i++)] = num % 10; //
        // printf("%d\n",t);
        printf("%d\n", data[i]); // 每次输出都为0;
        num = num / 10;
    }

我想要达到的结果

用动态数组接收数据;

  • 写回答

5条回答 默认 最新

  • 新_兰 2023-06-10 09:44
    关注
     data[(i++)] = num % 10; //
            // printf("%d\n",t);
            printf("%d\n", data[i]); // 每次输出都为0

    这里你给data[i]赋值但之后i++,所以之后输出的是赋值后的后一个数组元素

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月18日
  • 已采纳回答 6月10日
  • 创建了问题 6月10日

悬赏问题

  • ¥15 思科模拟器Router c3600 NM-4E
  • ¥15 岛津txt格式文件转nirs格式
  • ¥15 石墨烯磁表面等离子体
  • ¥15 angular 项目无法启动
  • ¥15 安装wampserver,图标绿色,但是无法进入软件
  • ¥15 C++ MFC 标准库 加密解密解惑
  • ¥15 两条数据合并成一条数据
  • ¥15 Ubuntu虚拟机设置
  • ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项
  • ¥15 electron 如何实现自定义安装界面