address boundary error 结论

1
2
char* a;
cin>>a;

报错。
原因是char* 没有经过初始化,指向的内存区域不确定。
应该

1
2
3
4
5
char a[12];
//或
char* a = new char[12];
/* ... */
delete a[];

那为什么我们平时常看到char* 的用法呢?

1
char* mystr = "haha";

这句语句可行是因为使用了常量字符串初始化,有了个确定的addr。

结论

1.所以说啊 , char* 并没有与众不同。
2.万物皆int。
3.std::string好。