Ghua975 2022-12-27 22:05 采纳率: 83.3%
浏览 21
已结题

简单修改正确代码后输入输出不成功

删掉了原本正确代码中char*c="abcd";的内容而下边加了两行printf 和 scanf 为什么就不行了呢

int MyStrlen(const char*c)
{
    int count = 0;
    while (*c!= 0)
    {
        ++count;
        ++c;
    }
    return count;
}
int main()
{
    char *c;
    printf("Input the string:");
    scanf("%s",&*c);
    printf("The length of the string is %d\n", MyStrlen(c));
    return 0;
}

  • 写回答

2条回答 默认 最新

  • ShowMeAI 2022-12-27 22:22
    关注

    望采纳

    • char*c="abcd"; 这一行被删掉后,c指针没有指向任何有效的内存空间。当你使用 scanf 函数将字符串输入到 c 中时,实际上是将字符串输入到了一个未知的内存空间中。这可能会导致程序崩溃或产生其他未知的行为。
    • 要正确使用 scanf 函数,需要为 c 分配足够的内存空间。可以使用 malloc 函数或定义一个固定长度的数组来分配内存空间。例如
    char c[100];
    

    或者

    c = (char*)malloc(100 * sizeof(char));
    
    free(c)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月5日
  • 已采纳回答 12月28日
  • 创建了问题 12月27日

悬赏问题

  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥15 使用LM2596制作降压电路,一个能运行,一个不能
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错