C言語初心者で、プログラム勉強中です。
わからないことがありますので教えてください。
いろいろ試しているのですができないのです。
下記のようにNULLを引数で渡したい時は送り側は
どのようにしたらよろしいのでしょうか?。
できれば解説付きで教えてください。
typedef struct susumu {
int test1;
int test2;
int test3;
} SUSUMU;
void test1(SUSUMU test);
int main()
{
SUSUMU test;
test.test1 = 1;
test.test2 = 2;
test.test3 = 3;
test1(NULL);
return 0;
}
void test1(SUSUMU test1)
{
if(&test1 = NULL){
printf("%d",12345);
}
}
ポインタを使うことになる。
ポインタの説明は簡単にはできないので省く。
こんな感じ
void test1(SUSUMU * test);
int main()
{
SUSUMU test;
test.test1 = 54321;
test1(&test);
test1(NULL);
return 0;
}
void test1(SUSUMU * test1)
{
if(test1 == NULL){
printf("%d",12345);
} else {
printf("%d",test1->test1);
}
}
補足
void test1(SUSUMU test);
の場合と異なり
test1内で引数の値変更すると
送り側の変数の値が変わってしまう。
test1が値を変えないんだったら
void test1(const SUSUMU * test);
とすべき。
マルチポスト
http://www.play21.jp/board/formz.cgi?action=res&resno=10700&page=&id=dixq&rln=10709
報告ありがとう。
4箇所以上にマルチポストしてたのか。
悪人だな。
>呼び側を変えてNULLを渡したいのです。
>そんなことできますか?。
void test1(SUSUMU test1)
{
if(&test1 = NULL){
printf("%d",12345);
}
}
のままで
呼び側のみの変更で
ということなら
できません。
マルチポストも確かに悪いけど、指摘するほうもすごいね。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi
ちょっと他の掲示板を見ただけで、ここと同じ名前がザクザク出てくるw
こういう人たちって24時間365日いろんな掲示板を見張ってるんだね。
他にすることないんだろうか?なんか哀れだな。
> こういう人たちって24時間365日いろんな掲示板を見張ってるんだね。
いいえ。
あちこちの掲示板を巡回してる人が(僕もその一人だけども)数人いて、
各人が一日一度眺めるだけでも十分可能です。
哀れでもなんでもありません。
情報収集のために掲示板を巡回し、気がついたら指摘するだけ。
マルチポスト*も*
指摘するほう*も*
マルチポストを指摘することを悪いようにしようとしているみたいだけど。
ほかの掲示板で回答があったり、質問を補足したり、解決しても
放置する人が耐えないので
マルチポストを指摘することは
逆に良いことだと俺は思っている。
TT414さんのは悪口が書いてあるわけじゃなくてリンクが書いてあるだけだし。
俺は嫌みいうけど。
見てない可能性があるからついつい辛口にして
放置させないように誘き出させたくなってしまうんだ。
不快でごめんね。
>こういう人たちって24時間365日いろんな掲示板を見張ってるんだね。
>他にすることないんだろうか?なんか哀れだな。
こんな結論しか出せないあなたが哀れでなりません…
ツイート | ![]() |