c语言结构体指针的一个问题

[复制链接]
查看11 | 回复2 | 2008-5-25 14:44:22 | 显示全部楼层 |阅读模式
定义了一个结构体:
struct pp {unsigned char chrom[LCHROM];

double hopevalue1,hopevalue2,parent1,parent2;

double as;

};
struct pp *oldpop,*newpop,*p1;
在下面的函数中能不能这样用oldpop.hopevalue1=0?
也就是说*oldpop是指向数组首地址的

回复

使用道具 举报

千问 | 2008-5-25 14:44:22 | 显示全部楼层
可以的,在你的基础上我补充了一点点,是我对指针应用的一点小经验,此程序经过调试,希望对你有帮助:#include #include struct pp { char s[15];floathopevalue1;};void main(){pp a[3];struct pp *oldpop,*newpop,*p1; oldpop=a;oldpop[0].hopevalue1=12;strcpy(oldpop[0].s,"helloworld");for(int i=1;i struct PP{unsigned char chrom[100]; double hopevalue1,hopevalue2,parent1,p
回复

使用道具 举报

千问 | 2008-5-25 14:44:22 | 显示全部楼层
当然可以。不过你要先让oldpop指向一个存在的结构体,以免发生内存错误。比如 struct pp a;
oldpop=&a;或者使用内存分配函数申请空间。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行