c语言结构体初始化问题 这个不会 指教一下

数据结构和算法都不是仅限于C语言范畴的东西,所以如果照问题描述所言的话,只能是指语法和C语言本身的一些特性了,指针就是一个地方。不过本人没有学过Objective-C,所以也就没得比较了。
学ObjectC是可以从C语言开始。但是如果是连C语言都没学过的话,干嘛不直接学ObjectC呢又不会有特别的困难
我已经不写代码好多秒了……请教一个数组赋值结构体的问题_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:311,213贴子:
请教一个数组赋值结构体的问题收藏
我在一个结构体中定义了3个变量
socket传结构体不是要先放进数组么,这部成功了,我从client发送给了server。
server用数组接受后,再赋给结构体。
比如:我传的是11013tom
1101是id,3是type,tom是name。
server中数组赋给结构体后,id输出是11013tom,tyoe输出是3tom,那么输出是tom。。。。。。。。这个咋整??
上代码以下部分:1.客户端怎么输入("11013tom")的2.服务器端怎么输出的(id...)
struct HEAD{ char id[4]; char type[1]; char name[10];}ss[50] = “11113mike”;memcpy(&head,ss,sizeof(head));然后printf一下:head.id =11113mike
head.type =3mike head.name=我想要的是:head.id=1111
head.type=3
head.name=mike
#include &string.h&#include &stdio.h&int main(){struct HEAD{char id[4];char type[1];char name[10];}char ss[50] = "11113mike";memcpy(&head,ss,sizeof(head));printf("%.*s\n%.*s\n%.*s\n", sizeof( head.id), head.id, sizeof( head.type),head.type, sizeof( head.name), head.name);}
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或当前位置: >
> 结构指针内存分配问题请教一个c语言基本的问题我现在定义两个结构体,分别为:typedef_A{fl
结构指针内存分配问题请教一个c语言基本的问题我现在定义两个结构体,分别为:typedef_A{fl
xiaorenxu & at
结构指针内存分配问题请教一个c语言基本的问题
我现在定义两个结构体,分别为:
typedef & _A
& float & *x;
typedef & _B
void & main()
我现在的问题是想给 & z分配内存,具体是这样:y个数为N个,而x的个数为M个。其实类似建立一个矩阵 & y[N][M]。请问如何分配,谢谢,在线等。
z = (B *)malloc(sizeof(B));
z-& y = (A *)malloc(M * sizeof(A));
for(int i = 0; i
z-& y[i]-& x = (float *)malloc(N * sizeof(float));
提示一下,结构体的定义少了struct
tree7758 & &
& & (0)(0)z = (B *)malloc(sizeof(B));
z-& y = (A *)malloc(M * sizeof(A));
for(int i = 0; i
z-& y[i]-& x = (float *)malloc(N * sizeof(float));
================
OKtreedog & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-等 级:论坛游民
帖 子:23
专家分:60
那个 最后的分数输出 我也不知咋回事,忘了。
#include&stdio.h&
#include&string.h&
struct&&Student
&&& char name[20];
struct Student a[3];
int main(void)
&&& printf(&请输入学生的学号,姓名,性别,年龄,分数\n&);
&&& for(i=0;i&3;i++)
&&&&&&&&scanf(&%d %s %c %d %f&,&a[i].num,&a[i].name,&a[i].sex,&a[i].age ,&a[i].score);
&&& printf(&\n\n&);
&&& for(i=0;i&3;i++)
&&&&&&&&printf(&%d&&%s&&%c %d %f\n&,a[i].num,a[i].name,a[i].sex,a[i].age ,a[i].score);
&&& return 0;
附件: 只有本站会员才能下载或查看附件,请
等 级:论坛游民
帖 子:21
专家分:20
以下是引用yuls在 01:44:40的发言:
那个 最后的分数输出 我也不知咋回事,忘了。
struct&&Student
&&& char name[20];
struct Student a[3];
int main(void)
&&& printf(&请输入学生的学号,姓名,性别,年龄,分数\n&);
&&& for(i=0;i&3;i++)
&&&&&&&&scanf(&%d %s %c %d %f&,&a.num,&a.name,&a.sex,&a.age ,&a.score);
&&& printf(&\n\n&);
&&& for(i=0;i&3;i++)
&&&&&&&&printf(&%d&&%s&&%c %d %f\n&,a.num,a.name,a.sex,a.age ,a.score);
&&& return 0;
}&&& 小数可以这样控制嘛
printf(&%d&&%s&&%c %d %5.2f\n&,......(占5个字符宽,有2位小数)。
等 级:论坛游民
帖 子:21
专家分:20
以下是引用hh2010在 00:11:30的发言:
struct&&Student
&&& char name[20];
&&& struct Student a[3];
int main(void)
&&& printf(&请输入学生的学号、姓名、性别、年龄、分数\n&);
for(i=1;i&=3;i++)
scanf(&%d%s%d%f&,&a.num,&a.name,&a.sex,&a.score);
for(i=1;i&=3;i++)
printf(&%3d%3s%3d%3f&,a.num,a.name,a.sex,a.score);
以上程序可以输入,但输不出结果,望高手指点一下,谢谢
比如:输入8 huang m 8 90
输出结果为: 8huang&&00.&&&&&00.&&&&&&00.000000问题1:for(i=1;i&=3;i++),定义的结构体数组是3个元素,那下标应该是0,1,2。
问题2:scanf(&%d%s%d%f&,&a[i].num,&a[i].name,&a[i].sex,&a[i].score);这里不够细心,是不是少了年龄?
printf(&%3d%3s%3d%3f&,a[i].num,a[i].name,a[i].sex,a[i].score);这里%3f似乎不起作用,因为当实际数据超过域宽时,域宽不起作用,按数据实际宽度输出,建议%5.2f。
[ 本帖最后由 qq423000 于
08:21 编辑 ]
提示: 作者被禁止或删除 内容自动屏蔽
等 级:论坛游民
专家分:24
以下是引用hh2010在 00:11:30的发言:
struct&&Student
&&& char name[20];
&&& struct Student a[3];
int main(void)
&&& printf(&请输入学生的学号、姓名、性别、年龄、分数\n&);
for(i=1;i&=3;i++)
scanf(&%d%s%d%f&,&a.num,&a.name,&a.sex,&a.score);
for(i=1;i&=3;i++)
printf(&%3d%3s%3d%3f&,a.num,a.name,a.sex,a.score);
以上程序可以输入,但输不出结果,望高手指点一下,谢谢
比如:输入8 huang m 8 90
输出结果为: 8huang&&00.&&&&&00.&&&&&&00.000000&&&你这里对数组的赋值犯了常见错误:C语言对数组下标不是从1开始,而是从0开始。
&&&C中对数组下标的规定是“不对称”的:下界是0(包含),上界是数组大小(不包含),因此在数组定义中:我们提倡写法是for(i=0;i&3;i++) 而不是for(i=0;i&=2;i++) ,注意这里不能为i&=3,因为下标3对于数组a[3]来说已经出界了,a[3]的含义是:内存中存储数组a的地址的下一个地址中所引用的值,内容是不确定的。如果你在不确定的时候对他进行引用或者赋值操作,会带来不确定的后果。这也是指针危险的原因之一。
等 级:论坛游民
专家分:16
你源代码第一个for语句赋值的时候错了,应该是for(i=0;i&3;i++)
后面输入的for好像也是同样的问题
等 级:新手上路
版权所有,并保留所有权利。
Powered by , Processed in 0.029087 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved当前访客身份:游客 [
当前位置:
vs2008 使用C语言,调用CreateFile打开虚拟串口(如COM1,COM30),然后读写USB(USB转RS232)
现在有个问题,生成的exe执行文件在win7上能够运行OK,读写串口正常(使用串口监视器查看);但是将执行文件在xp上运行时发现,打开串口是OK,一开始通信也是可以的。但是,通信一会后会出现发送数据失败(能够从串口读到数据)。win7不会出现这个问题。
哪位大神指教一下!
共有5个答案
<span class="a_vote_num" id="a_vote_num_
是否驱动的问题?
--- 共有 1 条评论 ---
确实与驱动有一定的关系,而且xp的usb转串口后会不稳定。两者导致该问题,已解决!
(9个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
你的.net formwork 在win7下和xp下都是的用一个版本的吗?将错误信息记录下来,看看是什么问题。
<span class="a_vote_num" id="a_vote_num_
引用来自“Rayn-瑞恩”的评论 你的.net formwork 在win7下和xp下都是的用一个版本的吗?将错误信息记录下来,看看是什么问题。
在vs2008 使用C++语言开发的,和.net没有关系。您了解DCB结构体吗?在xp上怎么设置。以下是我在win7上的设置
HANDLE hC char *q = NULL, *p = NULL; TCHAR str = {0};
q = convertwctosc(port); if((p = strstr(q, &COM&)) == NULL){ free(q); return NULL; } int comid = atoi(p+strlen(&COM&)); free(q); if(comid & 10) wsprintf(str, _T(&COM%d&), comid); else wsprintf(str, _T(&\\\\.\\COM%d&), comid);
hComm = CreateFile(str, //串口号 & & & & & & & GENERIC_READ | GENERIC_WRITE, //允许读写 & & & & & & & 0, //通讯设备必须以独占方式打开 & & & & & & & NULL, //默认安全属性 & & & & & & & OPEN_EXISTING, //通讯设备已存在 & & & & & & & FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, //支持异步I/O & & & & & & & NULL); //通讯设备不能用模板打开
if(hComm == INVALID_HANDLE_VALUE){ CloseHandle(hComm); return NULL; } DCB //获取当前DCB配置 if(!GetCommState(hComm,&dcb)){ CloseHandle(hComm); return NULL; } //设置 DCB 配置串口 dcb.DCBlength & & &= sizeof(dcb); /* ---------- Serial Port Config ------- */
dcb.BaudRate = m_portdata. dcb.Parity = NOPARITY; dcb.fParity = 0; dcb.StopBits = ONESTOPBIT; dcb.ByteSize = 8; dcb.fOutxCtsFlow = 0; dcb.fOutxDsrFlow = 0; dcb.fDtrControl = DTR_CONTROL_ENABLE; dcb.fDsrSensitivity = 0; dcb.fRtsControl = RTS_CONTROL_ENABLE; dcb.fOutX = 0; dcb.fInX = 0; /* ----------------- misc parameters ----- */ dcb.fErrorChar = 0; dcb.fBinary = 1; dcb.fNull = 0; dcb.fAbortOnError = 0; dcb.wReserved = 0; dcb.XonLim = 100; dcb.XoffLim = 100; dcb.XonChar = 0x11; dcb.XoffChar = 0x13; dcb.EvtChar = 0;
& &//设置 DCB if(!SetCommState(hComm,&dcb)){ CloseHandle(hComm); return NULL; }
if(!setuptimeout(hComm,0,0,0)){ CloseHandle(hComm); return NULL; }
m_hComm = hC
//flush buffer flashbuf();
--- 共有 2 条评论 ---
: 这是Bug,[xx] 转成可表情
(9个月前)&nbsp&
严肃点,不要在代码里面插表情
(10个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
建议你换台xp再试下
--- 共有 1 条评论 ---
我换了2台xp都是一个问题啊!
(10个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
亲,用cncomm库。
--- 共有 2 条评论 ---
: comm不支持64位吧?
(5个月前)&nbsp&
没有用那个类哦…
(9个月前)&nbsp&
有什么技术问题吗?
chrlis...的其他问题
类似的话题

我要回帖

更多关于 c语言结构体初始化 的文章

 

随机推荐