陈同学睡不醒 2021-12-24 16:29 采纳率: 50%
浏览 41
已结题

C语言molloc()函数在char类型中怎么使用

在动态内存分配中使用molloc()函数,int整型可以显示出来,但把数据换成char类型就运行出错了,这是怎么回事啊?

#include <stdio.h>
#include <stdlib.h>
int main()
{

char *int_array ;
int no_els , i ;

printf("Enter the number of elements: ");
scanf("%d", &no_els );

int_array = (char *)malloc( no_els * sizeof( char )) ;
if( int_array == NULL )
    printf("Cannot allocate memory\n");
else
{
    for( i = 0 ; i < no_els ; i++ )
    {
        printf("Enter element %d: ", i+1 );
        scanf("%c",int_array+i);
    }

    for( i = 0 ; i < no_els ; i++ )
        printf("Enter %d is %c\n",i+1,*(int_array+i));
    free ( int_array );    
}    
    return 0 ;

}

运行结果是这样的

img

用gets函数和puts函数试过 结果报错的更离谱了
我想要达到的结果是用char类型逐行显示每个元素

img

  • 写回答

5条回答 默认 最新

  • CSDN专家-link 2021-12-24 16:39
    关注

    scanf("%c",这句前加一个getchar()
    你输入一个字符后按回车键了,这样会有一个换行符,需要用getchar()接收掉,否则scanf("%c"会接收这个换行符

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

报告相同问题?

问题事件

  • 系统已结题 1月1日
  • 已采纳回答 12月24日
  • 修改了问题 12月24日
  • 修改了问题 12月24日
  • 展开全部

悬赏问题

  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题