検索結果 3 件

by picchi
10年前
フォーラム: C言語何でも質問掲示板
トピック: 関数呼び出しのカッコについて
返信数: 5
閲覧数: 5452

Re: 関数呼び出しのカッコについて

呼び出していません。 関数も、変数と同じようにメモリー空間中のどこかに存在しますから、 アドレスを持っています。 今回のプログラムでは、helloという関数のアドレス(メモリー空間中のどこにあるか、という情報)を 配列に格納しようとしています。 ご回答ありがとうございます。関数のアドレスを示す場合はカッコを付けないということを理解できました。 他の回答者さんからの指摘のとおり void *buf[10]; for(i=0 ; i<30 ; i++){ buf[i] = hello; } } 10個分しか確保していない配列に対し、それを超えた領域に格納しようとしているので、 何か変なことが起き...
by picchi
10年前
フォーラム: C言語何でも質問掲示板
トピック: 関数呼び出しのカッコについて
返信数: 5
閲覧数: 5452

Re: 関数呼び出しのカッコについて

このコードは12行目で確保された領域の範囲外にアクセスする危険なコードであり、実行してはいけません。 【追記】 「C言語 ポインタ完全制覇」のページ のサンプルソースを調べた所、 stackoverflow.cがこのコードに近かったです。本は読んでいないので断定はできませんが、つまりそういうことでしょう。 仰るとおり、参照先はstackoverflow.cです。サンプルソースまで調べていただき深謝します。 詳しい方が見ると、見ただけで危険なコードってのが判るものなんですね。 hello()としない理由は、関数を呼び出さず、その関数へのポインタを使いたいからでしょう。 関数へのポインタを意味す...
by picchi
10年前
フォーラム: C言語何でも質問掲示板
トピック: 関数呼び出しのカッコについて
返信数: 5
閲覧数: 5452

関数呼び出しのカッコについて

はじめまして。関数の呼び出しはfunction()などと、たとえvoidであろうが、関数名の後にカッコをつける必要があると理解しています。 下記プログラムの12行目でhelloと呼び出しされております。 実際にプログラムを動かしてみても、理解できず、ネットで検索しても発見することが出来ませんでした。 hello()としない理由、なぜhelloなのかご教示いただきたいです。 よろしくお願いします。 #include<stdio.h> void hello(void){ fprintf(stderr, "hello!\n"); } void func(void){ void *buf[10]; s...

詳細検索ページへ移動する