前提・実現したいこと
『新・明解C言語 ポインタ完全攻略』において、文字列を指すポインタの交換プログラム(p118,List4-20)を試しています。
以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
(1)'初期化中': 'const char *' から 'const char **' に変換できません。 (2)型 "const char *" の値を使用して型 "const char **" のエンティティを初期化することはできません (3)'=': 'const char **' から 'const char *' に変換できません。 (4)型 "const char **" の値を型 "const char *" のエンティティに割り当てることはできません
該当のソースコード
C++
1#include "pch.h" 2#include <stdio.h> 3 4void swap(const char **x,const char **y) 5{ 6 const char **temp = *x; //エラー(1)(2) 7 *x = *y; 8 *y = temp; //エラー(3)(4) 9} 10 11int main() 12{ 13 const char *s1 = "ABC"; 14 const char *s2 = "DEF"; 15 16 swap(&s1, &s2); 17 18 return 0; 19}
試したこと
元のソースコードのままでは実行できないため、constを付けて実行。
ダブルポインタについてネットで色々調べましたが、上記のような場合について見つからなかったため質問しました。
補足情報(FW/ツールのバージョンなど)
使用環境:Visual Studio 2017
Microsoft Visual C++ 2017
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/13 01:50 編集
2021/06/13 04:47
2021/06/13 05:24