雪冬 发表于 2023-1-6 21:21:36

c语言绘制正弦曲线

如图         

ssffzz1 发表于 2023-1-6 22:00:14

本帖最后由 ssffzz1 于 2023-1-6 22:01 编辑

写的很板正。printf用法精妙。

char *b;

b是个指针,此时并未分配空间。后面用到b的时候,实际上是非法访问内存了。这里需要写成
char b;

程序能运行,依照课本上的说法完全是运气,但实际上是C语言堆栈分配的结果,还有一些运气性质。
可以将YMAX的值调到较大,即可验证问题。

雪冬 发表于 2023-1-7 01:39:37

version2.   

雪冬 发表于 2023-1-7 01:41:47

version2 run result.

雪冬 发表于 2023-1-7 01:46:54

ssffzz1 发表于 2023-1-6 22:00
写的很板正。printf用法精妙。

char *b;


谢谢您的热心指导.请看第二版.

雪冬 发表于 2023-1-7 01:51:43

更正了一下.         

雪冬 发表于 2023-1-7 01:52:53

更正了一下.请看图.

雪冬 发表于 2023-1-7 01:54:48

运行结果一致.

ssffzz1 发表于 2023-1-7 18:24:09

雪冬 发表于 2023-1-7 01:46
谢谢您的热心指导.请看第二版.

谈不上指导,共同进步。我也是个初学咋练。


知道这类问题的根因,还是直接看汇编代码来的直接。


要触发那个BUG,把YMAX改的比较大,或者把char *b ,放到int i ,j的前面。当然还是要看最终的编译器如何处理的,也就是说看汇编代码最直接。

girlexplorer 发表于 2023-1-7 18:32:40

论绘制图形,无论二维还是三维,matlab秒杀所有其它语言。

雪冬 发表于 2023-1-8 07:31:32

ssffzz1 发表于 2023-1-7 18:24
谈不上指导,共同进步。我也是个初学咋练。




您说的确实对,在iPad Linux 上发现了问题。

雪冬 发表于 2023-1-8 07:38:48

iPad上运行。      

雪冬 发表于 2023-1-8 07:46:24

ssffzz1 发表于 2023-1-6 22:00
写的很板正。printf用法精妙。

char *b;


再次感谢您的指点。

雪冬 发表于 2023-1-8 09:55:51

运行结果是更正后的。更正前编译通过,运行失败。
页: [1]
查看完整版本: c语言绘制正弦曲线