陈同学睡不醒 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 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000