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

时间:2017-10-26 16:15:17

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

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

这里的问题在哪里?  我正在使用DEV C ++ IDE btw。

注意:我也尝试在ideone.com在线编译器上做同样的事情并且它没有给出运行时错误,但是它不是stdin中给出的字符串,而是打印(null)。
这是代码:

from operator import mul, truediv
import math
def trigonometry(angle, side_length, side_respective_to_angle, unknown):
    o, h, a = 'opposite', 'hypotenuse', 'adjacent'
    sohcahtoa = {o: {h: (math.sin, truediv), a: (math.tan, truediv)},
                 h: {o: (math.sin, mul),     a: (math.cos, mul)},
                 a: {o: (math.tan, mul),     h: (math.cos, truediv)}}
    function, op = sohcahtoa[side_respective_to_angle][unknown]
    return op(side_length, function(math.radians(angle)))

1 个答案:

答案 0 :(得分:0)

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

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

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