0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct data{
char name[20];
char lastname[25];
int age;
}person;
void insert(person *p,int *num);
int main()
{
int num;
person p;
insert(&p,&num);
printf("Name: %s",p[0].nome); /* Here i would print the first struct by
my array, but: is not array or not pointer Why?? */
}
void insert(person *p, int *num)
{
int dim;
person *arr;
printf("Insert how many people do you want? "); /* How many index the
array should have */
scanf("%d",&dim);
arr = (person *) malloc(dim*sizeof(person)); /* I'm not sure for
this explicit cast. */
for(int i = 0; i < dim; i++)
{
printf("Insert name: ");
scanf("%s",arr[i].name);
printf("Insert lastname: ");
scanf("%s",arr[i].lastname);
printf("Insert age:': ");
scanf("%d",&arr[i].age);
}
*num = dim;
*p = *arr;
}
私が試してみた: `人*のインサート(int型* num個)構造体の配列を参照する方法はありますか?
そして、それは作品をだが、どのように配列の参照を渡すことができます`
このプログラムの開発は、あなたがしたいですかどのように多くの人が尋ねるべき?挿入するには、名前、姓、年齢を尋ねる必要があります。
挿入後、彼は印刷する必要がありますが、素早く、array(structs)の最初の要素(index)で試してみました。
Cは、参照を持っているか、参照渡しありません。すべての関数の引数は値によって渡され、値だけが返されます。ただし、(値で)ポインタを渡すことも、ポインタを返すこともできますが、同様の効果があります。 –