私は配列personとquantity_persons_countをmain()に戻そうとしていますが、動作させることはできません。私はintと人にvoidを変更しようとしましたが、obv doesntの仕事。関数から構造体とintを渡してメインに戻すにはどうしたらいいですか? C
struct person{..}
int main(){
int o;
int quantity_persons_count = 0;
struct person persons[100];
while(1){
printf("1.Add a new person");
scanf("%i",&o);
switch(o)
{
case 1: AddPerson(persons,quantity_persons_count);
break;
}
void AddPerson(struct person *persons, int quantity_persons_count){
if(quantity_persons_count == 100){
printf("ERROR.\n");
}
else{
printf("name\n");
scanf("%s",persons[quantity_persons_count+1].name);
quantity_persons_count++;
printf("done\n");
}
}
知りません'scanf("%s "、&persons [quantity_persons_count + 1] .name);の宣言は、間違った型のデータを渡すことによって*未定義の動作*を呼び出すようです。 'persons_persons_count + 1] .name'が' char'の配列であれば、 '&'は取り除かなければなりません。 – MikeCAT
戻す配列は何ですか?この関数を 'main()'からどのように呼び出すのですか?どのようにテストしますか? [最小限の、完全で検証可能な例](http://stackoverflow.com/help/mcve)の投稿を検討してください。 – MikeCAT
あなたが知りたいことは、[パラメータは値によって渡されます](http://stackoverflow.com/documentation/c/1006/function-parameters/10900/parameters-are-passed-by-value#t=20160820014330354564) 。 – MikeCAT