我由具有以下功能的程序:如何在C++中刪除「非void函數結束」錯誤?
int f(long long int arr[], long long int x, long long int y)
{
long long int i = x, j = y;
if(lookup[i][j] == 0)
{
if(i == j)
lookup[i][j] = arr[i];
else
lookup[i][j] = min(f(arr, i, j-1), arr[j]);
}
else
return (lookup[i][j]);
}
min()
也是一個定義的函數。
當我編譯的代碼,它拋出一個錯誤:
control reaches end of non-void function [-Werror=return-type]
我怎麼可能消除這種錯誤?
回報通過'的查找'值return'聲明regardress一些值[i] [j]'。 – MikeCAT
目前,如果你的代碼進入'if'塊,沒有什麼會被'返回'。解決這個問題,錯誤將消失。 –
這個錯誤應該很清楚:你可以在不碰到int的'return'的情況下到達函數的末尾(你的'true'的子句沒有返回一個值,因此是錯誤)。 – crashmstr