【发布时间】: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++