问题描述
- C语言字符指针问题求解答
- main()
{ char * a;
a=(char * )malloc(40);
scanf(""%s""* a );
}
上面代码中的scanf(""%s""* a);这行为什么是合法的?请赐教!
不好意思第一次代码输错了-_-
解决方案
创建了一个40个字符长度的缓冲区,然后输入字符到这个缓冲区中。你测试下就知道了。
解决方案二:
a=(char)malloc(40); 看不懂这要干嘛,怎么不是指针呢
解决方案三:
这不是指针吧,指针不是得先定义*a吗?还有与楼下一样,你那步骤是干嘛呢?
解决方案四:
这不是指针吧,指针不是得先定义*a吗?还有与楼下一样,你那步骤是干嘛呢?
解决方案五:
应该是char* a
类型用错了。
解决方案六:
从方法上本身是合法的,执行时,得不到想到的结果,最坏的情况下是程序core。此依赖于 scanf,*a的值。 当*a的值为0时,scanf函数内部可能做的判断,
不做处理,但如果是其它值,它认为是一个合法的地址,就会往地址中写入数据,程序core dump
时间: 2024-07-30 01:40:34