user-0 提问: 结构体数组指针的使用

回复:
user: user-1
content: 举例 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

user: user-1
content: C++是可以的； C现在早就可以了吧？ 结构体不能进行整体赋值操作，似乎是老黄历了吧。  我等老古董，也许会说出这种话。 不知你说的可是标准？？？？

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

user: user-2
content: 引用 5 楼 max_min_ 的回复:[quote=引用 3 楼 lubyam 的回复:] [quote=引用 1 楼 lubyam 的回复:] 不知道  是不是你想要的。。仅供参考！  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!")); [/quote]  用了new 就不要用malloc ，两个一起是怎么回事呢？释放都不晓得要怎么弄了！[/quote] 额。。弄错了。。。。使用malloc

user: user-3
content: 引用 1 楼 lubyam 的回复:不知道  是不是你想要的。。仅供参考！  struct AAA *tStr=new(struct AAA *)malloc(sizeof(struct AAA )); tStr.a1='a'; tStr.b1='b'; memcpy(tStr.yy,"Hello World!",sizeof("Hello World!"));   god code

user: user-4
content: 引用 3 楼 lubyam 的回复:[quote=引用 1 楼 lubyam 的回复:] 不知道  是不是你想要的。。仅供参考！  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!")); [/quote]  用了new 就不要用malloc ，两个一起是怎么回事呢？释放都不晓得要怎么弄了！

user: user-5
content: rxData* pData=new rxData[n]；//n为单元数

user: user-2
content: 引用 1 楼 lubyam 的回复:不知道  是不是你想要的。。仅供参考！  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!"));

user: user-6
content: 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;

user: user-2
content: 不知道  是不是你想要的。。仅供参考！  struct AAA *tStr=new(struct AAA *)malloc(sizeof(struct AAA )); tStr.a1='a'; tStr.b1='b'; memcpy(tStr.yy,"Hello World!",sizeof("Hello World!"));

user: user-7
content: 结构体不能进行整体赋值操作的（只能初始化的时候做，而且，对于结构体中字符数组的部分，还必须用字面字符串），貌似C99中有严格规定，lz可以百度一下

user: user-8
content: 你的意思是使用指针数组呗？  struct AAA **base = malloc(sizeof(struct AAA *)*N); 可以把这N个循环使用 收到一个数据时 分配结点空间，相应的填入数据 struct AAA *data = malloc(sizeof(struct AAA));  然后把data挂到base指针数组里面去 base[i] = data;

user: user-2
content: 引用 9 楼 Jennypan2009 的回复:[quote=引用 8 楼 lubyam 的回复:]  struct AAA *tStr=(struct AAA *)malloc(sizeof(struct AAA )); tStr->a1='a'; tStr->b1='b'; memcpy(tStr->yy,"Hello World!",sizeof("Hello World!"));   如果有多个数据是不是将tStr++后,再进行赋值操作?[/quote]    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!"));   恩，上面写错了。。。

user: user-2
content: 引用 9 楼 Jennypan2009 的回复:[quote=引用 8 楼 lubyam 的回复:]  struct AAA *tStr=(struct AAA *)malloc(sizeof(struct AAA )); tStr->a1='a'; tStr->b1='b'; memcpy(tStr->yy,"Hello World!",sizeof("Hello World!"));   如果有多个数据是不是将tStr++后,再进行赋值操作?[/quote]    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!"));  [/ 恩

user: user-0
content: 引用 8 楼 lubyam 的回复: struct AAA *tStr=(struct AAA *)malloc(sizeof(struct AAA )); tStr->a1='a'; tStr->b1='b'; memcpy(tStr->yy,"Hello World!",sizeof("Hello World!"));   如果有多个数据是不是将tStr++后,再进行赋值操作?