您当前的位置: 百科371电脑/网络VC++ → 电脑/网络内容 退出登录 用户管理 用户注册
本类热门文章
相关文章
中原建材网
error C2106: '=' : left operand must be l-value

减小字体 增大字体

问题:typedef struct snifferdata{ char num[300]; map<u_int, string> time; char length[300]; char type; char proto[300]; char source[20]; char sport[300]; char dest[20]; char dport[300]; char message[300]; struct snifferdata *next;}snifferdata,*node;char str[300];snifferdata *temp;temp=(node)malloc(sizeof(snifferdata));sprintf_s(str, 300, %d , currentCount+1);pList->InsertItem(currentCount, str, NULL);temp->num =str; 提示最后一行有问题!请高手解答一下!  

temp的成员num是char[300]是const char*类型的,不能这样写。你这样写法有问题,temp->num=str即便是编译通过,也只是使用temp->num指向一个临时的char数组的起始位置,不久str就会从栈中弹出,你的temp->num就会是引用一个非法的位置。
应该把最后一行改成
strncpy(temp->num,str,300);

如果你对typedef struct snifferdata{ char num[300]; map<u_int, string> time; char length[300]; char type; char proto[300]; char source[20]; char sport[300]; char dest[20]; char dport[300]; char message[300]; struct snifferdata *next;}snifferdata,*node;char str[300];snifferdata *temp;temp=(node)malloc(sizeof(snifferdata));sprintf_s(str, 300, %d , currentCount+1);pList->InsertItem(currentCount, str, NULL);temp->num =str; 提示最后一行有问题!请高手解答一下!这个问题有好的意见或 建议,请留言
[] [返回上一页] [打 印]
电脑/网络评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

中原建材网 简单版 站长QQ:382546553