结构体数组指针的使用
我在程序中定义一个的结构体,从串口接收的每一条数据以结构体形式存储。
例 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;
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;
#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;
}