| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2985 人关注过本帖
标题:不定长指针数组问题
只看楼主 加入收藏
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
收藏
 问题点数:0 回复次数:11 
不定长指针数组问题
struct aa
{
    int a;    
};

struct bb
{
    int b;
    struct aa (*c)[];    
};
我怎么做,才能判断bb结构体中的c是不是 NULL,并且能个c赋值阿.谢谢
搜索更多相关主题的帖子: 指针 struct int 赋值 NULL 
2008-03-06 17:28
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你提的问题,我也不知道...
我帮你顶给高人吧...
我把问题转化了
#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数组的元素吗?

}

学习需要安静。。海盗要重新来过。。
2008-03-06 19:56
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
应该是数组指针吧。
struct bb b1;
struct aa a1[2][100];
b1.c = a1;        //这样可以
b1.c = &a1[1];    //这样可以

Fight  to win  or  die...
2008-03-06 20:30
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
楼上的兄弟,怎么通过b1.c来引用数组元素呢...

学习需要安静。。海盗要重新来过。。
2008-03-06 21:36
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
// 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]]

—>〉Sun〈<—
2008-03-06 22:38
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
[bo]以下是引用 [un]sunkaidong[/un] 在 2008-3-6 21:36 的发言:[/bo]

楼上的兄弟,怎么通过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

Fight  to win  or  die...
2008-03-07 13:15
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
楼上的你说的我知道..我是想考虑能不能用b1.c.a之类方式的引用结构体a[i].a

学习需要安静。。海盗要重新来过。。
2008-03-07 13:42
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
[bo]以下是引用 [un]sunkaidong[/un] 在 2008-3-7 13:42 的发言:[/bo]

楼上的你说的我知道..我是想考虑能不能用b1.c.a之类方式的引用结构体a.a


你首先得弄清楚b1.c是个什么类型,它是个指针。
int *pi;
我就这样定义个指针,你能通过pi引用what?

Fight  to win  or  die...
2008-03-07 14:51
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#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);
}

学习需要安静。。海盗要重新来过。。
2008-03-07 14:57
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
首先,你写的是一个不定长的数组的指针。而不是不定长指针数组。
其次,定义一种指向不定长数组的指针是很奇怪的。我不能理解你的意图。
2008-03-07 15:26
快速回复:不定长指针数组问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031631 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved