不定长指针数组问题
struct aa{
int a;
};
struct bb
{
int b;
struct aa (*c)[];
};
我怎么做,才能判断bb结构体中的c是不是 NULL,并且能个c赋值阿.谢谢
----------------解决方案--------------------------------------------------------
你提的问题,我也不知道...
我帮你顶给高人吧...
我把问题转化了
#include"stdio.h"
struct aa
{
int a;
};
struct bb
{
int b;
struct aa (*c)[100];
};
void main()
{
struct bb b1;
struct aa a1[100];
a1[0].a=100;
a1[1].a=1000;
b1.c=&a1;
//printf("%0x,%0x\n",*(b1.c),a1);好用b1.c来引用a1数组的元素吗?
}
----------------解决方案--------------------------------------------------------
应该是数组指针吧。
struct bb b1;
struct aa a1[2][100];
b1.c = a1; //这样可以
b1.c = &a1[1]; //这样可以
----------------解决方案--------------------------------------------------------
楼上的兄弟,怎么通过b1.c来引用数组元素呢...
----------------解决方案--------------------------------------------------------
// C99 标准支持不定长数组
struct data
{
int count;
int ar[];
};
int n = 52;
struct data * t;
t = (struct data *)malloc(sizeof(struct data) + sizeof(int) * n);
t->count = n;
// DEV-C++ 通过
[[it] 本帖最后由 cosdos 于 2008-3-6 22:42 编辑 [/it]]
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]sunkaidong[/un] 在 2008-3-6 21:36 的发言:[/bo]
楼上的兄弟,怎么通过b1.c来引用数组元素呢...
楼上的兄弟,怎么通过b1.c来引用数组元素呢...
换个例子你看
int a[2][4] = {1,2,3,4,5,6,7,8};
int (*p1)[4] = a;
int (*p2)[4] = &a[0];
printf("%d\n",p1[1][3]);
printf("%d\n",(*p2)[3]);
楼上说的对,c99支持不定长数组,c++不支持,dev-cpp部分支持c99
----------------解决方案--------------------------------------------------------
楼上的你说的我知道..我是想考虑能不能用b1.c.a之类方式的引用结构体a[i].a
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]sunkaidong[/un] 在 2008-3-7 13:42 的发言:[/bo]
楼上的你说的我知道..我是想考虑能不能用b1.c.a之类方式的引用结构体a.a
楼上的你说的我知道..我是想考虑能不能用b1.c.a之类方式的引用结构体a.a
你首先得弄清楚b1.c是个什么类型,它是个指针。
int *pi;
我就这样定义个指针,你能通过pi引用what?
----------------解决方案--------------------------------------------------------
#include"stdio.h"
struct s
{
int a;
int b;
}
main()
{
struct s a[2][4];
struct s (*p1)[4] = a;
struct s (*p2)[4] = &a[0];
printf("%d\n",p1[1][3].a);
printf("%d\n",(*p2)[3].b);
}
----------------解决方案--------------------------------------------------------
首先,你写的是一个不定长的数组的指针。而不是不定长指针数组。
其次,定义一种指向不定长数组的指针是很奇怪的。我不能理解你的意图。
----------------解决方案--------------------------------------------------------