C - 打印字符串时出现运行时错误(使用指针)

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

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

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

注意:我也尝试在 ideone.com 在线编译器上执行相同的操作,它不会给出运行时错误,而是打印 (null),而不是 stdin 中给出的字符串。
这是代码:

#include <stdio.h>

int     main(void)
{
    char *string;

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

    return 0;
}

最佳答案

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

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

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

关于C - 打印字符串时出现运行时错误(使用指针),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46959141/

相关文章:

c - 如何使用双指针从文本文件填充字符串数组?

c - 我应该如何在心理上解析这个陈述?

c - 为动态数组的元素赋值

c - 在 ubuntu 中使用 gcc 生成特定频率的声音?

c - 如何将字符串数组传递给函数?

java - 如何使用 vector Java比较我输入的字符串和文本文件中的字符串?

开罗分割图像

java - 如何在 Java 中拆分字符串,包括空格(就像在 Python 中一样)

c++ - 取消引用预先增加的指针会产生奇怪的结果

string - 在 Go 中打印 bytes.Buffer 时的不同行为