CIN,这样为什么不行,该怎么解决
CIN,这样为什么不行
------解决方案--------------------
因为p没有初始化
------解决方案--------------------
- C/C++ code
int main() { char *p; cin>>p; cout << p << endl; }
------解决方案--------------------
因为p没有初始化
------解决方案--------------------
- C/C++ code
int main() { char *p; p=new char; cin>>p; cout << p << endl; delete p; p=NULL; }
------解决方案--------------------
cin>>p; // 没有任何问题,但是意思是像给一个指针赋值,不是指针的值赋值
cout << p << endl; // 跟着上的语句,这句才错了
------解决方案--------------------
野指针也敢进行赋值?
------解决方案--------------------
int main(void)
{
char *p;
p = (char *) malloc(100);
cin >> p;
return 0;
}
------解决方案--------------------
- C/C++ code
int main(void) { char *p; p = (char *) malloc(100); cin >> p; return 0; }
------解决方案--------------------
在studio2005里面编译没有错误,只是警告使用了没有初始化的p,但是运行就崩了;
这样给p分配空间就行了,使用之后再释放这个空间,和楼上的差不多(malloc和 free, new和delete):
- C/C++ code
#include <iostream> using namespace std; int main() { char* p = new char; cin>>p; delete p; system("pause"); return 0; }
------解决方案--------------------
------解决方案--------------------
因为你没有给P分配内存:
- C/C++ code
int main() { char p[256] = {0}; cin>>p; cout << p << endl; }