我有一个简单的 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/