社区
C++ 语言
帖子详情
请教关于char*,char [] 等的意义
luoxiangdong
2004-02-07 05:47:29
char * buf;
buf=new char[100];
char * buf2;
buf2=buf;
delete [] buf2;
这样是不是删掉了new 分配的内存?
指针buf2在delete时,怎样知道到底要释放的内存是几个字节?
...全文
76
18
打赏
收藏
请教关于char*,char [] 等的意义
char * buf; buf=new char[100]; char * buf2; buf2=buf; delete [] buf2; 这样是不是删掉了new 分配的内存? 指针buf2在delete时,怎样知道到底要释放的内存是几个字节?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
优化有问题代码完整工程
再次简化代码,取消串口,直接显示结果,仍然有问题!!
疑问代码如下:
struct _USB_DATA_STRUCT
{
/*
unsigned
char
command_data[40];//release结果正确
int command_index;
int command_size;
int numofnod;
*/
int command_index;
int command_size;
int numofnod;
unsigned
char
command_data[40];//release结果错误
void SetData(unsigned
char
* pdata,int size)
{
if(size>40)
{
AfxMessageBox("数据太大,超范围!");
return;
}
memcpy(command_data,pdata,size);
}
};
void CTestprjDlg::OnButton1()
{
// TODO: Add your control notification handler code here
unsigned
char
ctem[32];//错误:32,103,104; 正确:105,110
USB_DATA_STRUCT CommandData;//需要填写要发送的数据
ctem[0]=0xee;
ctem[1]=0x01;
memset(ctem+2,0x00,30);
CommandData.SetData(ctem,32);
ShowTest(CommandData.command_data,32);
}
void CTestprjDlg::ShowTest(unsigned
char
* p,int nlen)
{
CString str = _T("");
for(int i=0;i <32;i++)
{
CString tmp_str;
tmp_str.Format("0x%02X ", p[i]);
str += tmp_str;
}
m_textctrl.SetWindowText(str);
}
//VC6
Debug版本没有问题,输出如:
EE 01 00 00 00...后面全0
Release版本(按Maximize speed优化)有问题,输出如:
EE 01 00 00 00 00 00 00 00 00 00 00 EE 01 00 00 00 00 00 00 00 00 00 00 EE 01 00 00 00 00 00 00
Release版本下,按以下修改没有问题。
1.调整ctem的大小。小于等于104有问题,大于等于105没有问题。
2.将ctem改为
char
* ctem;
ctem=new
char
[32];
没有问题。
3.优化方式由Maximize speed修改为Minimize code也没问题。
请教
可能是什么原因?
char
**的含义
int CompStrLen(const void* a, const void* b) { if(strlen((
char
**)a)==strlen((
char
**)b)) return strcmp((
char
**)a, (
char
*)b); return strlen((
char
**)a) - strlen(*(
char
**)b); } 不明白为什...
c#引用c语言dll
char
,C#调用C++的DLL乱码, 函数原型是:
char
*fuc(
char
*a,
char
*b)解决方案...
C#调用C++的DLL乱码, 函数原型是:
char
*fuc(
char
*a,
char
*b)在C语言的标准库函数中,有strcat()函数,它的作用是连接两个字符串,原型如下:
char
*strcat(
char
*strDestination,const
char
*strSource)作用是:在Dest的后面接上Src指向的字符串,把两个字符串连接起来。我自己实现了my_strca...
C++,为什么字符串可以赋值给const
char
* 类型的数据,而不能给
char
* 类型的数据赋值。
先来看三组代码: 1.const
char
*name1 = "Levitt";//正确 2.
char
*name2 = "Levitt";//报错 3.
char
name3[] ="Levitt";//正确 对于这种现象,我百思不得其解,后来
请教
了我们班的著名大佬老陈。最后得出了结论(当然也有可能结论有错,望广大网友指正) ...
int *(*a[5])(int,
char
*)
int* 表示是一个int型指针;(*a[5])(int,
char
*)中的a[5]表示是一个有5个元素的数组,而(*)(int,
char
*)则表示指向一个函数的指针,该函数有两个参数,第一个参数为int型,第二个是字符指针型,结合前面部分,表示这个函数的返回类型为int型,所以(*a[5])(int,
char
*)为5个返回类型为int型函数组成的数组;整个结合起来int* (*a[...
C++ 语言
64,683
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章