社区
C++ 语言
帖子详情
如下代码有什么问题?????????????????????
Johnny_de
2005-11-30 03:42:20
#ifdef UNICODE
#define TCHAR wchar_t
#else
#define TCHAR char
#endif
TCHAR *Sample::CreateBuffer( TCHAR **buffer)
{
*buffer = (TCHAR*) malloc(500);
memset(*buffer, 0, 500);
return *buffer;
}
...全文
204
12
打赏
收藏
如下代码有什么问题?????????????????????
#ifdef UNICODE #define TCHAR wchar_t #else #define TCHAR char #endif TCHAR *Sample::CreateBuffer( TCHAR **buffer) { *buffer = (TCHAR*) malloc(500); memset(*buffer, 0, 500); return *buffer; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
moany
2005-11-30
打赏
举报
回复
返回值如果是TCHAR *,会出现两个指针指向同一块内存的情况,但其中一个删除时,另外一个指针会指向一块无效的内存。
输入参数为TCHAR **,返回时就已经分配好内存了,所以不需要返回值。
sinall
2005-11-30
打赏
举报
回复
TCHAR *Sample::CreateBuffer( TCHAR **buffer)
{
*buffer = (TCHAR*) malloc(500*sizeof(TCHAR));
memset(*buffer, 0, 500*sizeof(TCHAR));
return *buffer;
}
楼上各位返回值为什么要void?
Johnny_de
2005-11-30
打赏
举报
回复
能说明下修改的具体理由吗?谢谢了
gxqcn
2005-11-30
打赏
举报
回复
用下面的代码可兼容 MBCS 和 UNICODE 版本;但请先 #include < TCHAR.H >
LPCTSTR Sample::CreateBuffer( _TCHAR **buffer)
{
*buffer = (_TCHAR*) malloc(500 * sizeof(_TCHAR));
::memset(*buffer, 0, 500 * sizeof(_TCHAR));
return *buffer;
}
sankt
2005-11-30
打赏
举报
回复
#ifdef UNICODE
#define TCHAR wchar_t //两个字节
#else
#define TCHAR char
#endif
void *Sample::CreateBuffer( TCHAR **buffer)
{
*buffer = (TCHAR*) malloc(500*sizeof(TCHAR));
memset(*buffer, 0, 500*sizeof(TCHAR));
}
bm1408
2005-11-30
打赏
举报
回复
修改如下:
#ifdef _UNICODE
#define TCHAR wchar_t
#else
#define TCHAR char
#endif
void Sample::CreateBuffer( TCHAR **buffer)
{
*buffer = (TCHAR*) malloc(sizeof(TCHAR) * 500);
memset(*buffer, 0, 500);
}
csucdl
2005-11-30
打赏
举报
回复
没有入口检测
Johnny_de
2005-11-30
打赏
举报
回复
这是道面试题,反正我是彻底晕了。
handsomerun
2005-11-30
打赏
举报
回复
*buffer = (TCHAR*) malloc(500);??
是buffer = (TCHAR*) malloc(500);
还是*buffer = (TCHAR) malloc(500);
有点头晕
qfeng_zhao
2005-11-30
打赏
举报
回复
什么错误信息??
不过有一点wchar_t,与char类型大小不一样
*buffer = (TCHAR*) malloc(500);
memset(*buffer, 0, 500);
--------------------------
分配后,buffer的元素数不一致,wchar_t只为250个数据元素
可用:
*buffer = (TCHAR*) malloc(500 * sizeof(TCHAR));
memset(*buffer, 0, 500 * sizeof(TCHAR));
moany
2005-11-30
打赏
举报
回复
void Sample::CreateBuffer( TCHAR **buffer)
{
*buffer = (TCHAR*) malloc(500);
memset(*buffer, 0, 500);
}
moany
2005-11-30
打赏
举报
回复
函数类型为什么不用void
void Sample::CreateBuffer( TCHAR **buffer)
MongDB数据库与C#的交互(游戏服务器基础)
详细内容如下: 1.MongDB是什么,以及它提供的可视化控制台,基础使用都包含哪些知识? 2.MongDB与C#交互之中,如何创建连接,如何连接到集合? 3.四大管理操作:增删查改,需要如何进行,异步的方式又是怎么样操作? 4.排序是...
CA/TA可信安全应用开发
- 直接使用已搭建好的镜像 - 工程使用以及说明 (2)CA/TA开发编程实践 从无到有编写
代码
,已完成的大纲如下: - 2秒钟快速编写(clone)一组CA/TA程序 - 安全存储详解以及
代码
示例 - CA到TA双向传参数的四种方式...
深度学习原理详解及Python
代码
实现
【为什么要学习这门课程】 深度学习框架如TensorFlow和Pytorch掩盖了深度学习底层实现方法,那能否能用Python
代码
从零实现来学习深度学习原理呢? 本课程就为大家提供了这个可能,有助于深刻理解深度学习原理。 左手...
用C++和Go开发Node.js和Electron本地模块
理由至少有如下3个: 1. 保护敏感
代码
(因为JavaScript
代码
都是开源的,但C++和Go编译后的目标程序是二进制形式的) 2. 提升性能(JS
代码
的运行效率总体上不如C++和Go编译后的二进制文件的运行效率) 3. 集成第三方...
区块链之实战VM虚拟机开发
注入原理如下: 合约字节码(wast)中包含形如(import "env" "getAddress" (func ...))的
代码
段。意为从env模块中导入getAddress函数。 env模块从哪来呢?由虚拟机利用解释器的API构建原生模块,并实现预先设计的Env_...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章