関数がポインターによってポイントされるプログラムを実行しようとしています。次のようになります。
これは、「void」戻り型を使用する最初のプログラムです。
#include<stdio.h>
#include<conio.h>
void CharPrint(char *ptr);
main()
{
char *str="Hello World";
void (*ptr1)(char *ptr);
ptr1=CharPrint;
if((*ptr1)(str))
printf("Done");
return 0;
}
void CharPrint(char *ptr)
{
printf("%s\n",ptr);
}
多くのエラーをスローします。彼らです:-
2 番目のプログラムは次のとおりです。
#include<stdio.h>
#include<conio.h>
int CharPrint(char *ptr);
main()
{
char *str="Hello World";
int (*ptr1)(char *ptr);
ptr1=CharPrint;
if((*ptr1)(str))
printf("Done");
return 0;
}
int CharPrint(char *ptr)
{
printf("%s\n",ptr);
return 0;
}
このプログラムは問題なく実行されます。
出力は次のとおりです。
私の問題は、最初の出力で、9行目に「 Not an allowed type in function main 」と表示されているのはなぜですか。他の行にも疑問が生じていますが、この行が私を最も悩ませています。何か助けはありますか?