代码如下:
void main(){
int i=0;
int intStepNo=0;
char *chrInput=new char(sizeof(char)*1024);for(i=0;i<1024;i++)
{
*(chrInput+i)=0;
}
cout<<121<<endl; //此处不通过
}每次程序运行到cout处即出现内存非法访问,cout无法输出除了char和string以外的类型数值,
希望各位高人赐教~。谢谢
void main(){
int i=0;
int intStepNo=0;
char *chrInput=new char(sizeof(char)*1024);for(i=0;i<1024;i++)
{
*(chrInput+i)=0;
}
cout<<121<<endl; //此处不通过
}每次程序运行到cout处即出现内存非法访问,cout无法输出除了char和string以外的类型数值,
希望各位高人赐教~。谢谢
解决方案 »
- 用 CEGUI SDK for Visual C++ 6 (Native STL)如何做一个简单的界面?
- 请问我怎么取已知一曲线的特征点?
- ~~~~~~~~~~~~~~~~~哪里有PDF Library SDK下载,用过的帮下忙~~~~~~~~~~~~~~~~~~~~~~````
- 命令行参数的使用
- 初能问题:VC是打开“.dsw”,“.dsp”文件?
- 求VC重构工具.
- 有关消息映射函数的问题。
- 网站开张,散分1000,来者有分!
- 一个古老而神秘的问题,请各位高手进门指教(菜货千万不要进!会吓到你们的!)
- 学完《深入浅出MFC》之后……
- 如何改变一个系统服务的状态?系统服务高人请进
- 100分求windows核心编程一书源代码。在线等,马上揭帖
{
*(chrInput+i)=0;
}
不关cout的事,
char *chrInput=new char(sizeof(char)*1024);
这里很大问题哦
你是没有开数组空间 而是new 了一char 然后初始化他我sizeof(char)*1024
而下面
for(i=0;i<1024;i++)
{
*(chrInput+i)=0;
}
在未开辟空间的地方负值,所以出错
改为
char *chrInput=new char[sizeof(char)*1024];
cout<<121<<endl; //没有这个用法
std::cout<<to_string<int>(121, std::hex)<<std::endl;
用这个
std::cout<<to_string<long>(121, std::dec)<<std::endl;
Sorry....:(
前者开辟空间为一个int,初始化为100
后者开辟连续的大小为100个int的空间
与
char *chrInput=new char(sizeof(char)*1024);区别何在?