我有以下代碼:處於不活動狀態結構函數指針用C
#include <stdio.h>
#include <stdlib.h>
struct Book {
char title[50];
char author[50];
char subject[100];
int numPages;
int numBooks;
int (*p) (int *, int *);
};
int sum (int *a, int *b) {
return *a + *b;
}
int main() {
struct Book var;
var.numPages = 7;
var.numBooks = 9;
int allPages = (*var.p) (&var.numPages, &var.numBooks);
printf("%d\n", allPages);
return (EXIT_SUCCESS);
}
我試圖在結構使用功能的,但我的程序沒有結果,沒有任何警告,雖然我用-Wall,-Wextra。我是新手。希望大家幫忙。
您沒有設置'p'到一個有效的功能!你需要'var.p = sum'。我很驚訝你沒有訪問違規。行爲是未定義的。它沒有警告編譯的事實並沒有捕捉到這樣的事情,因爲這是一個運行時錯誤。 – lurker
'int main()'不是'main'的有效簽名。 – Olaf