结构体 指针的问题,高手帮忙看看
已经定了一个结构体struct Job,
然后在另外一个struct中引用了Job定义了一个数组i[n]
struct P
{
Job* i[n];
}p[n];
然后又定义了一个 Job *q[n]
进行赋值 q=p.i
结果
编辑出错:提示cannot convert from 'struct Job *[20]' to 'struct Job *'
高手帮忙解答一下
问题点数:20、回复次数:8Top
1 楼citysoft(擦身而过)回复于 2005-08-03 18:51:24 得分 5
改成q[i]=p.i看一下
q是整个q[n]数组的首地址吧Top
2 楼llf_hust()回复于 2005-08-03 18:53:27 得分 5
编辑出错:提示cannot convert from 'struct Job *[20]' to 'struct Job *'
/* 二个变量的类型不同当然不能赋值 */
把整个的程序代码贴出来我们帮你看一下Top
3 楼megaboy(飞天御剑流之杀神一刀斩)回复于 2005-08-03 18:53:55 得分 0
q和p.i都是数组名,都是地址常量,不能这样赋值的。要这样做:
q[0] = p[0].i[0];
q[1] = p[0].i[1];
q[2] = p[0].i[2];
..............Top
4 楼robinmatrix(无花无酒)回复于 2005-08-03 19:00:49 得分 0
struct Job
{
int no;
int no_1;//initial sequence number
int pos;//position of the job in partial sequence
int pt[m];
int sum;
int sum2_m;
int parsum2_m[m-1];
int parsum1_m1[m-1];
int d_p[n];//
int d_n[n];//
struct Job* prev;
struct Job* last;
};
struct PartInsertion
{
int insertMakespan;
Job* insertSeq[n];
}partialInsert[n];
PartSeq minCMax(int jobNo,PartInsertion* PartInsert)
{
PartSeq minCmax;
int parMakespan;
int sn;
for(int i=0;i<=jobNo;i++)
{
if(PartInsert[i].insertMakespan>=parMakespan)
{
parMakespan=PartInsert[i].insertMakespan;
sn=i;
}
}
minCmax.partMakespan=parMakespan;
minCmax.partSequence=PartInsert->insertSeq;
return minCmax;
};Top
5 楼jixingzhong(瞌睡虫·星辰)回复于 2005-08-03 19:07:50 得分 5
如果不是字符串数组
(包括自定义类型数组)
都不能使用数组名来直接赋值
需要逐一的给各个元素内容写入
q[x] = p[y].i[x];
( x,y 根据实际程序确定 )Top
6 楼wzping007()回复于 2005-08-03 19:11:49 得分 0
q[i]=p[t].iTop
7 楼wzping007()回复于 2005-08-03 19:20:29 得分 5
q[i]=p[t].i[x]
Top
8 楼robinmatrix(无花无酒)回复于 2005-08-03 19:55:38 得分 0
谢谢各位Top




