注册 登录
编程论坛 C++教室

执行sprintf()函数后,发现指针p值改变!

河边 发布于 2007-05-13 20:03, 819 次点击

pCustomerNode p=first;
if(p==NULL)
{

return;
}
while(p!=NULL)
{

sprintf(inform,"用户ID: %d, 用户状态: %s,用户密码 %d,用户注册时间 %d:%d",
p->numID,p->state,p->sectet,p->CustomerTime.hour,p->CustomerTime.min);

MessageBox(0,inform,"打印信息:",MB_OK);//可在此处加一断点观察指针p发生改变(与执行sprintf()函前相比)
p = p->next;

}

如上部分程序,执行sprintf()函数后,发现指针p值改变,当然此时还没执行到p = p->next;很是奇怪,难道sprintf()函数在捣鬼?其他程序执行完全没问题!
请教各位指导!


2 回复
#2
河边2007-05-14 14:25
问题已经解决!
主要原因是对字符变量inform 申请的空间太小,改为inform[70]或更大就OK!
#3
byebye122007-05-14 16:39

这样啊
好的
1