社区
C++ 语言
帖子详情
如何是错的,请指出。
Jesin
2004-09-15 02:28:57
以下代码在VC6++下编译、执行为何报错?
#include "stdafx.h"
#include "iostream.h"
#include "string.h"
int main(int argc, char* argv[])
{
char *a=NULL;
a=new char(10);
strcpy(a,"hello");
cout<<a<<endl;
delete a; //出错的地方
return 0;
}
...全文
102
15
打赏
收藏
如何是错的,请指出。
以下代码在VC6++下编译、执行为何报错? #include "stdafx.h" #include "iostream.h" #include "string.h" int main(int argc, char* argv[]) { char *a=NULL; a=new char(10); strcpy(a,"hello"); cout<<a<<endl; delete a; //出错的地方 return 0; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MN归来
2004-09-15
打赏
举报
回复
\\供你参考一下,接分
#include <iostream>
#include <string.h>
using namespace std;
int main( int argc, char*argv[] )
{
char *a = new char[10];
if ( a == NULL ) {
cout << " can't allocate more memory,terminating.\n";
return;
}
strcpy(a,"hello");
cout << a << endl;
delete []a;
return 0;
}
zhaotao0982
2004-09-15
打赏
举报
回复
//#include "stdafx.h" //去掉这个头文件
#include "iostream.h"
#include "string.h"
int main(int argc, char* argv[])
{
char *a=NULL;
a=new char[10]; //改动这里
strcpy(a,"hello");
cout<<a<<endl;
delete a; //出错的地方
return 0;
}
248406869
2004-09-15
打赏
举报
回复
to:pressman(GCC) ( )
你的程序缓冲区溢出了。看来linux也不太稳定,竟然没core dump.
wxfnj
2004-09-15
打赏
举报
回复
#include "iostream.h"
#include "string.h"
int main(int argc, char* argv[])
{
char *a=NULL;
a=new char[10];
strcpy(a,"hello");
cout<<a<<endl;
delete [] a;
return 0;
}
通过
pressman
2004-09-15
打赏
举报
回复
/*Test in GNU CC(Linux)
* Test1.c
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
char *a=NULL;
a=malloc(5*sizeof(char));
if (!a)
{
printf("Memory request faily!\n");
exit(1);
}
strcpy(a,"hello");
printf("%s",a);
printf("\n");
free(a);
return 0;
}
hello
248406869
2004-09-15
打赏
举报
回复
搂主
char *a=new char(10);
delete a;
没有错,他是分一个字节把它初始化为10;
按你的定义strcpy(a,"hello");错了缓冲区溢出了。
你应定义为:
char *a=new char[10];
delete[] a;
nicknide
2004-09-15
打赏
举报
回复
darkstar21cn(星之魄)(我是你的)
你试试一下下面的代码就知道了
a = new char (65);//
cout << a << endl; //打印出a来
呵呵,不一定只出来一个a,有可能什么怪东西都出来了……因为这里a是一个char*,所以当成字符串打印,但是a+1不一定是0(不知道什么地方是0呢),所以不会那么快结尾,应该如我前面讲的cout<<*a<<endl;
不过,你错误的原因还是krfstudio所说,是因为写逸出,所以在DEBUG版本中的回收内存的时候,被捕获到错误了,于是引发一个运行时的异常(或者断言),导致错误
修改方法可以按 darkstar21cn(星之魄)(我是你的) 所说,该成
char* a = new char[10];
//或者是 char* a = operator new (10);
//那释放的时候就是 operator delete (a);
//do something
delete []a;
cxc014
2004-09-15
打赏
举报
回复
我觉得可以这样写;
楼主用的是VC6吧,我在DEV-C++下调试没错
VC是重写了new和delete的,所以,在VC下有错;
nicknide
2004-09-15
打赏
举报
回复
还是 krfstudio() ( ) 仔细……咳,这个就是我天天晚上4点钟睡的害处……
darkstar21cn
2004-09-15
打赏
举报
回复
你试试一下下面的代码就知道了
a = new char (65);//
cout << a << endl; //打印出a来
darkstar21cn
2004-09-15
打赏
举报
回复
a=new char(10);
表示用10来初始化a,就是a只有1Byte
a=new char[10];
才是生成一个10Byte的空间
nicknide
2004-09-15
打赏
举报
回复
运行时错误吗?楼主?
我看象上面一行代码有问题啊:
cout<<a<<endl;
你改成:
cout<<*a<<endl;
看看
krfstudio
2004-09-15
打赏
举报
回复
从语法上来说,“delete a;”应该是没有错误的,上面的代码在 VC7.0 中可以通过编译,但是代码还是有问题的,“a=new char(10)”只分配了一个字节的内存,后面的“strcpy(a,"hello");”可能导致非法内存访问。
wwwooowww
2004-09-15
打赏
举报
回复
#include "iostream.h"
#include "string.h"
int main(int argc, char* argv[])
{
char *a=NULL;
a=new char[10];//这样才能new出足够的空间。可以支持后面的拷贝
strcpy(a,"hello");
cout<<a<<endl;
delete a;
return 0;
}
你的a=new char(10);,系统所做的是:new一个字节,将该字节的内容赋值为asc码的10。
wwwooowww
2004-09-15
打赏
举报
回复
是a=new char[10];
而不是:
a=new char(10);
社群本质拆解25讲——为什么90%的人认为的「社群」概念都是
错
的?
【课程概要】 本课程针对市面上把社群简单化为微信群、QQ群的肤浅乱象,从社会学和网络技术发展两个视角,对社群的定义和本质进行了厘清,明确
指出
社群不能与社交软件的群组管理功能划等号,并辨析了社群与各种软件...
4.2分析下面程序,
请
指出
错
误的原因和程序
错
在哪里,并改正
错
误。
#include main() { long a,b; float x,y; scanf("%d,%d\n",a,b); scanf("%5.2, %5.2\n",x,y); printf("a=%d,b=%d\n",a,b); printf("x=%d,y=%d\n",x,y); } ...第九行应该为: printf("x=%f,y=%f
永磁同步电机
错
相分析—原创
下面对正常情况和
错
相情况进行分析,并
指出
不同的
错
相情况会出现什么样的现象。 正常相序 正常情况下的磁场合成: Iαβ=23[1−0.5−0.5032−32][IuIvIw]=23[1−0.5−0.5032−32][Imsinθ∗Imsin(θ∗+120o)Imsin(θ...
2020年蓝桥杯B组个人题解(热的,不知道对
错
)
现在是蓝桥杯刚结束,趁着有记忆,写下这篇博客,不知道对
错
,如果我
错
了,
请
指出
。 A 因为是到0就结束了,那么每次看看-600是否结束,如果没有结束就+300.然后时间+2*60 最后时间再加上剩下的能量/10 所以我的答案...
python查找word中的
错
别字
在 Python 中,你可以使用模块 pyenchant 来查找 word 中的
错
别字。 首先,你需要安装 pyenchant 模块: pipinstall pyenchant 然后,你可以使用下面的代码来查找 word 中的
错
别字: import enchant# 读取 word ...
C++ 语言
64,682
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章