将结构复制到结构数组

时间:2014-11-10 15:34:27

标签: c arrays struct store

嘿伙计我需要一些帮助。我试图将一个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 <<<--
}

有没有简单的方法可以解决这个问题?感谢

2 个答案:

答案 0 :(得分:3)

您必须取消引用右侧的指针才能生成SCar类型的值。

像这样:

ownerPtr->cars[i] = carPtr[i];

ownerPtr->cars[i] = *(carPtr + i);

但后者只是编写前者的一种更复杂的方式,所以只需使用索引。

答案 1 :(得分:0)

你必须定义一个指针数组

typedef struct {
    char name[40];
    SCar * cars [100];
} SOwner;