[解決済み】C 言語のポインタと配列。[警告] 整数からキャストなしでポインタを作る代入 [クローズド]
2021-12-31 08:27:39
質問
C言語のコードは次のとおりです。
#include<stdio.h>
int *ap;
int a[5]={41,42,43,44,45};
int x;
int main()
{
ap = a[4];
x = *ap;
printf("%d",x);
return 0;
}
コンパイルしようとすると、警告が表示されます。
[Warning] assignment makes pointer from integer without a cast [enabled by default]
9行目について
ap = a[4];
と表示され、端末がクラッシュしてしまいます。9行目を変更して、位置を含まないようにすると
ap = a;
警告は出ず、動作します。
どのように解決するのですか?
この場合
a[4]
は
5th
の整数値です。
a
,
ap
は整数へのポインタなので、ポインタに整数を代入していることになり、それが警告となります。
そこで
ap
を保持するようになりました。
45
で、それを参照解除しようとすると、(
*ap
このアドレスは無効なアドレスなので、プログラムがクラッシュします。
を行う必要があります。
ap = &(a[4]);
または
ap = a + 4;
で
c
配列名はポインタに分解されるため
a
は配列の1番目の要素を指しています。
このように
a
は、次のように等価です。
&(a[0])
.
関連
-
複数のサイトをまとめてよく見たい オススメ度
-
InstallShield でホスト名から IP アドレスを取得するコード
-
[解決済み】以下の追跡されていないワーキングツリーファイルは、マージによって上書きされますが、私は気にしません。
-
[解決済み] 'push_back' の呼び出しに対応するメンバ関数がないエラー
-
[解決済み】 c++ "Incomplete type not allowed" クラス参照情報へのアクセスエラー (前方宣言による円環状依存性)
-
[解決済み】行列式で「数値/複雑な行列/ベクトルの引数が必要です」というエラーが発生?
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】スレッド "main "での例外 java.util.NoSuchElementException: 行が見つかりません [重複]。
-
[解決済み】AdMobにアプリケーションを入れたら「ライブラリが見つからない」というエラーが出た
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
期限切れのアカウントを自動的に禁止するRouterOSスクリプト
-
パスワード入力を非表示にする InstallShield スクリプト
-
[解決済み】C++ -- ' の前に一次式があることが予想される。
-
[解決済み] 式は変更可能なlvalueでなければならない
-
[解決済み】C++エラー: 予想されるunqualified-idを修正する方法
-
[解決済み】「Error: デフォルトのデータセット例mtcarsとggplot2における「離散的なスケールに連続的な値が供給された」。
-
[解決済み】rmarkdownエラー "長さ0の変数名を使おうとした"
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】C#でクエスチョンマークを2つ並べるとどんな意味になるのか?
-
[解決済み】AdMobにアプリケーションを入れたら「ライブラリが見つからない」というエラーが出た