void clearMail(Person* data){……このように、Person構造体のポインタを引数として受け渡すようにしてあります。そして呼び出す側では、
clearMail(&data);このように、構造体を収めた変数のアドレスを渡すようにしているわけです。こうすることで、構造体のアドレスを引数に受け渡すことができます。また関数側では、受け取った構造体ポインタの値を利用するのに、
data->mail = "<<no mail>>";このような書き方をしています。「◯◯->△△」というように、「->」という演算子を使って構造体ポインタから値をとり出しています。通常のように「◯◯.△△」という形では値を取り出せないので注意しましょう。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※そのまま構造体を渡す #include <stdio.h> typedef struct { char* name; int age; char* mail; } Person; void clearMail(Person data){ data.mail = "<<no mail>>"; } void printPerson(Person data){ printf("name: %s\n",data.name); printf("age : %i\n",data.age); printf("mail: %s\n",data.mail); printf("\n"); } int main (int argc, const char * argv[]) { Person data = {"taro",30,"taro@yamada.com"}; printPerson(data); clearMail(data); printPerson(data); return 0; } ※ポインタで構造体を渡す #include <stdio.h> typedef struct { char* name; int age; char* mail; } Person; void clearMail(Person* data){ data->mail = "<<no mail>>"; } void printPerson(Person* data){ printf("name: %s\n",data->name); printf("age : %i\n",data->age); printf("mail: %s\n",data->mail); printf("\n"); } int main (int argc, const char * argv[]) { Person data = {"taro",30,"taro@yamada.com"}; printPerson(&data); clearMail(&data); printPerson(&data); return 0; }
<< 前へ |