首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

构造体数组指针的使用

2013-10-31 
结构体数组指针的使用我在程序中定义一个的结构体,从串口接收的每一条数据以结构体形式存储。例 typedef st

结构体数组指针的使用
我在程序中定义一个的结构体,从串口接收的每一条数据以结构体形式存储。
例 typedef struct AAA
{
   unchar a1;
   unchar b1;
   unchar yy[64];
  
}rxData;

接收到的每一条数据都以rxData的结构体形式保存,也就是说 数据1={a1,b1, yy[]};数据2={a1,b1,yy[]};....
如果用结构体数据指针进行定义,初始化,并进行赋值等操作该怎么写呀。

结构 指针 struct
[解决办法]



typedef struct AAA
{
    u_char a1;
    u_char b1;
    u_char yy[64];
    
}rxData;

int main()
{
    rxData rxArr[2] = {0};
    rxData data1 = {'a', 'b', "test1\n"};
    rxData data2 = {'c', 'd', "test2\n"};
    rxArr[0] = data1;
    rxArr[1] = data2;

[解决办法]
rxData* pData=new rxData[n];//n为单元数
[解决办法]
引用:
Quote: 引用:

不知道  是不是你想要的。。仅供参考!

struct AAA *tStr=new(struct AAA *)malloc(sizeof(struct AAA ));
tStr.a1='a';
tStr.b1='b';
memcpy(tStr.yy,"Hello World!",sizeof("Hello World!"));


饿,,运算符用错了




struct AAA *tStr=new(struct AAA *)malloc(sizeof(struct AAA ));
tStr->a1='a';
tStr->b1='b';
memcpy(tStr->yy,"Hello World!",sizeof("Hello World!"));


用了new 就不要用malloc ,两个一起是怎么回事呢?释放都不晓得要怎么弄了!
[解决办法]

引用:
Quote: 引用:


struct AAA *tStr=(struct AAA *)malloc(sizeof(struct AAA ));
tStr->a1='a';
tStr->b1='b';
memcpy(tStr->yy,"Hello World!",sizeof("Hello World!"));


如果有多个数据是不是将tStr++后,再进行赋值操作?




struct AAA *tStr=(struct AAA *)malloc(sizeof(struct AAA )* n);//这里的n就是你想要几个
tStr->a1='a';
tStr->b1='b';
memcpy(tStr->yy,"Hello World!",sizeof("Hello World!"));


恩,上面写错了。。。 
[解决办法]
你的意思是使用指针数组呗?

struct AAA **base = malloc(sizeof(struct AAA *)*N);
可以把这N个循环使用
收到一个数据时
分配结点空间,相应的填入数据
struct AAA *data = malloc(sizeof(struct AAA));

然后把data挂到base指针数组里面去
base[i] = data;

[解决办法]
举例
VC6:
//structs.c
#include<stdio.h>
typedef struct tag_div_type{
long q,r;
}div_type;


div_type div_long( long x,long y)
{
div_type d;
d.q =x / y;
d.r =x % y;
return d;
}

void print(const div_type *pdiv)
{
printf("%ld,%ld\n",pdiv->q,pdiv->r );
}

int main(){
div_type a =div_long(100,37);
div_type b,c;
b = a;
c= a;
print(&a);
print(&b);
print(&c);
getchar();
return 0;
}


输出:
2,26
2,26
2,26

热点排行