【问题标题】:C - runtime error while printing string(using a pointer) [duplicate]C - 打印字符串时出现运行时错误(使用指针)[重复]
【发布时间】:2018-04-08 02:53:47
【问题描述】:

我有一个简单的 C 程序问题,我需要你的帮助。
我使用指针声明一个字符串。使用 scanf 我从标准输入给它一个值。稍后我尝试打印这个字符串。它全部编译好吧,但是当我运行程序时,它接受我的字符串,当它开始打印时,我收到一个返回值 3221225477 的运行时错误。

问题出在哪里? 我正在使用 DEV C++ IDE 顺便说一句。

注意:我也尝试在 ideone.com 在线编译器上做同样的事情,它不会给出运行时错误,但它不是在标准输入中给出的字符串,而是打印 (null)。
代码如下:

#include <stdio.h>

int     main(void)
{
    char *string;

    scanf("%s", string);
    printf("Hello,%s !", string);

    return 0;
}

【问题讨论】:

  • 1.) C 中没有“运行时错误”。2.) string 未初始化且未指向任何可用内存,写入存在未定义的行为。

标签: c string pointers runtime-error dev-c++


【解决方案1】:

您需要为变量字符串分配空间。 例如:

char *string;
int i;
scanf("%d", &i);
string = (char*)malloc(sizeof(char)*i);

然后你可以从输入中读取并打印字符串

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    相关资源
    最近更新 更多