[解決済み] ポインタからキャストを使わずに整数を返す [-Wint-conversion] 戻り値の候補を作る
2022-01-11 11:38:16
質問内容
C言語のコードは次のとおりです。
char getkey (int minimo, int maximo, int alphalen, int index, char alpha[])
{
int cociente, residuo, cont;
int i = 0;
char cand[maximo+1];
char candidate[maximo+1];
while (index != 0)
{
cociente = index / alphalen;
residuo = index%alphalen;
cand[i] = residuo;
index = cociente;
i+=1;
}
for (cont=i-1; cont>=0; cont--)
{
int pos = cand [cont];
candidate[i] = alpha[pos];
}
return candidate;
}
コンパイルすると、警告が表示されます。
return makes integer from pointer without a cast
return candidate;
解決方法は?
ローカル変数
candidate
はcharの配列です。このとき
return candidate;
の場合、charへのポインタを返します。(これはC言語の配列とポインタの非常に密接な関係によるもので、まだ知らない人は勉強しなければなりません)。しかし、あなたは自分の関数が
getkey
は char を返しますが、char へのポインタではありません。
関数の戻り値を型と一致させる必要があります。そのためには
return
ステートメントを使用して、単一の文字が返されるようにします。もしこの関数が文字列全体を返すようにしたければ、その宣言を次のように変更します。
char *getkey()
しかし、その場合、このメソッドを使用するために
candidate
の配列になります。
警告の意味はこうです。あなたはポインターを返そうとしました。この関数は文字を返すことになっており、それは小さな整数として表現されます。コンパイルは、あなたが本当にそうしたい場合に備えて、ポインタを整数に変換しようとしますが、通常それは良いアイデアではないので、あなたに警告を発します。実際、この場合、警告は「たぶん間違えた」と教えてくれる。
関連
-
JScript/VBScriptのデバッグ
-
linux シェル学習ノート 4日目
-
FcScript V1.0 ヘルプファイル(説明書付き
-
[解決済み】警告メッセージ。In `...` : invalid factor level, NA generated 警告メッセージ:...`は無効な因子レベルです。
-
[解決済み】以下の追跡されていないワーキングツリーファイルは、マージによって上書きされますが、私は気にしません。
-
[解決済み】「Error: デフォルトのデータセット例mtcarsとggplot2における「離散的なスケールに連続的な値が供給された」。
-
[解決済み】c++のコンパイルエラーです。ISO C++はポインタと整数の比較を禁止しています。
-
[解決済み】 c++ "Incomplete type not allowed" クラス参照情報へのアクセスエラー (前方宣言による円環状依存性)
-
[解決済み】AdMobにアプリケーションを入れたら「ライブラリが見つからない」というエラーが出た
-
[解決済み] キャストせずに整数からポインタを作る代入
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Swift言語とAppleScriptの違い、AppleScriptの開発状況について教えてください。
-
コマンドによるフォルダの簡単なインクリメンタルバックアップ(win/linux)
-
[解決済み】lm.fit(x,y,offset = offset, singular.ok,...) boxcox式で0非NAケースでエラーになる。
-
[解決済み】主成分分析:colMeans(x, na.rm = TRUE)のエラー:'x'は数値でなければなりません。
-
[解決済み】 munmap_chunk(): 無効なポインタ
-
[解決済み】c++のコンパイルエラーです。ISO C++はポインタと整数の比較を禁止しています。
-
[解決済み】ポインタと整数の比較を警告する
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み】拡張メソッドは、一般的でない静的クラスで定義する必要がある
-
[解決済み] 配列からポインタへの減衰とは何ですか?