| 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; 提示最后一行有问题!请高手解答一下!这个问题有好的意见或
建议,请留言
|
|
[]
[返回上一页]
[打 印]
|
|
|