Set*_*hot 3 c string struct pointers
从C语言中的结构打印字符串有问题...
typedef struct box{
char *REF_OR_SYS; int num, x, y, w, h, o;
}BOX;
sscanf(str, "%s %d %d %d %d %d %d", &label, &refNum, &x, &y, &w, &h, &o);
BOX detect = {label, refNum, x, y, w, h, o};
printf("\nLABEL IS %s\n", detect.REF_OR_SYS); //Prints out the String correctly
//(Either the word REF or SYS)
return detect;
Run Code Online (Sandbox Code Playgroud)
当这个结构传递给另一个结构时,所有内容都显示在字符串的EXCEPT之外.
void printBox(BOX detect){
printf("Type: %s Ref: %d X: %d Y: %d W: %d H: %d O:%d\n",
detect.REF_OR_SYS, detect.num, detect.x,
detect.y, detect.w, detect.h, detect.o);
Run Code Online (Sandbox Code Playgroud)
}
我错过了一些简单的事吗?REF_OR_SYS总是打印出?? _?
使用strdup()(一般可用,如果不能使用malloc())来复制读入字符串label的sscanf():
detect.REF_OR_SYS = strdup(label);
Run Code Online (Sandbox Code Playgroud)
当该函数返回时label超出范围并且REF_OR_SYS将是一个悬空指针.free()不再需要时记住它.
| 归档时间: |
|
| 查看次数: |
1406 次 |
| 最近记录: |