当前位置: 技术问答>linux和unix
菜鸟的简单C问题
来源: 互联网 发布时间:2014-11-24
本文导语: 写了两函数分别: char * key(char u[],char r[],int l){ char kkk[11]; char *kk=kkk; ....这里对数组u,r处理后存在kkk里.... return(kk); } int check_key(char k){ char *c_key; ...... c_key=key(allmesg....
写了两函数分别:
char * key(char u[],char r[],int l){
char kkk[11];
char *kk=kkk;
....这里对数组u,r处理后存在kkk里....
return(kk);
}
int check_key(char k){
char *c_key;
......
c_key=key(allmesg.user,allmesg.regtime,atoi(allmesg.num));
printf("c_key:%s",c_key);
}
该运算在unix下kk和c_key值相等
可程序移到linux下kk中值正确,但c_key中就前部分改变了
char * key(char u[],char r[],int l){
char kkk[11];
char *kk=kkk;
....这里对数组u,r处理后存在kkk里....
return(kk);
}
int check_key(char k){
char *c_key;
......
c_key=key(allmesg.user,allmesg.regtime,atoi(allmesg.num));
printf("c_key:%s",c_key);
}
该运算在unix下kk和c_key值相等
可程序移到linux下kk中值正确,但c_key中就前部分改变了
|
sigh~! 野指针呀, key()调用结束后, 局部变量kkk空间被回收了。
c_key 指向一个未知区域,里面什么值要看os的了。
c_key 指向一个未知区域,里面什么值要看os的了。
|
用malloc 分配空间