嘿伙计我需要一些帮助。我试图将一个SCar结构存储到SOwner结构中的Scar数组中,对于每个不同的SOwner,虽然我收到了这个错误:
从'struct SCar *'
类型指定类型'Scar'时不兼容的类型
以下是一些代码:
typedef struct {
char name[40];
SCar cars [100];
} SOwner;
typedef struct {
char color[40];
char brand[12];
} SCar;
SOwner *ownerPTR;
SCar *carPtr
void function(){
for(i=0; i<10 ; i++){
(ownerPtr)->cars[i] = (carPtr+i); // Problem here <<<--
}
有没有简单的方法可以解决这个问题?感谢
答案 0 :(得分:3)
您必须取消引用右侧的指针才能生成SCar
类型的值。
像这样:
ownerPtr->cars[i] = carPtr[i];
或
ownerPtr->cars[i] = *(carPtr + i);
但后者只是编写前者的一种更复杂的方式,所以只需使用索引。
答案 1 :(得分:0)
你必须定义一个指针数组
typedef struct {
char name[40];
SCar * cars [100];
} SOwner;