用memset()给字符串指针赋值的问题

sunnycrystal_2008 2008-05-08 09:59:00
我写了这样一段代码:
unsigned char *tt;(tt已经被分配了一段内存空间,长度为len, 且值为0)
memset(tt, 0, len);
编译时没错,但是程序运行到memset函数时就崩了,这是为什么呢?难道memset不能给已经是“0”的字符串再清空?
...全文
1361 54 打赏 收藏 转发到动态 举报
写回复
用AI写文章
54 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyctr 2009-04-20
  • 打赏
  • 举报
回复
留名,学习
茻鄷 2008-05-12
  • 打赏
  • 举报
回复
tt指向name,但是name没有初始化!只初始化了结构体的指针
wKernel 2008-05-12
  • 打赏
  • 举报
回复
memset没有问题,我一直那么初始化,我认为是你没有给tt申请空间。
sunnycrystal_2008 2008-05-11
  • 打赏
  • 举报
回复
谢谢有这么多热心的人帮助,我按照大家的说法做了一下,确实是这个问题,我的分数就给最先给我答案的人了,其它的人就不好意思了,呵呵!以后继续向大家学习!!!
bbplayers 2008-05-11
  • 打赏
  • 举报
回复
tt指向name,但是name没有初始化!
WindBoy1987 2008-05-11
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 Chiyer 的回复:]
C/C++ code
改法1
#include "stdlib.h"


typedef struct
{
unsigned char Name[32];
bool Need;
bool NeedBuf;
int Type;
}DEF_PARAM, *PRT_DEF_PARAM;



int main() {

PRT_DEF_PARAM dd;
unsigned char *tt;
dd = (PRT_DEF_PARAM )malloc(sizeof(DEF_PARAM));
memset(dd, 0, sizeof(DEF_PARAM));


return 0;
}


改法2

#include "stdlib.h"…
[/Quote]

这也解决不了吗?
kingmax54212008 2008-05-11
  • 打赏
  • 举报
回复
学习了。呵呵~~~
svnware 2008-05-10
  • 打赏
  • 举报
回复
路过看看,楼上的朋友们已经解释的很清楚了!
laowang2 2008-05-10
  • 打赏
  • 举报
回复
up
geldqb 2008-05-10
  • 打赏
  • 举报
回复
tt = dd->Name;
没有给dd->Name分配空间.
dd->Name是一个野指针.
qinqinhao 2008-05-10
  • 打赏
  • 举报
回复
up
帅得不敢出门 2008-05-10
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 dingguobin 的回复:]
应该注意:malloc是的4096确实不妥 sizeof更合理
dd = (PRT_DEF_PARAM )malloc(4096);
这个只是指向结构体的指针,在你的结构体里还有Name 这个指针.
你没有给name分配空间,所以会崩溃.
[/Quote]

关键在于这个name无空间 你怎么操作
browningblue 2008-05-10
  • 打赏
  • 举报
回复
you don't allocate memory for Name.
ribut9225 2008-05-10
  • 打赏
  • 举报
回复
楼主可以结帐了
jiaohhp 2008-05-10
  • 打赏
  • 举报
回复
同意。
就是name没有分配空间!
yueyeli 2008-05-10
  • 打赏
  • 举报
回复
你自己的错!memset没有错
red_berries 2008-05-10
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 Treazy 的回复:]
以后就直接点,把代码帖出来

找问题方便多了

连空间都没分配还说已经分配了

瞎猜有啥猜的
[/Quote]
tujie1899 2008-05-10
  • 打赏
  • 举报
回复
呵呵,又是指针的老套路了!
用指针小心点!!
奔跑哥 2008-05-09
  • 打赏
  • 举报
回复
但是在用memset的时候最后一个参数应该是 sizeof(type) × len吧
奔跑哥 2008-05-09
  • 打赏
  • 举报
回复
哦,看错了,不对。len 对着。
加载更多回复(32)

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧