teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2017/11/27 01:36

投稿

catsforepaw
catsforepaw

スコア5944

answer CHANGED
@@ -7,4 +7,7 @@
7
7
  struct sdk_station_config config;
8
8
  config.ssid = WIFI_SSID;
9
9
  config.password = WIFI_PASS;
10
- ```
10
+ ```
11
+ ---
12
+ 追記
13
+ 上記コードは`ssid`,`password`をポインタと仮定したものなので、構造体の中でchar配列として定義しているなら`strcpy`等を使用してください。

2

誤字もう一つ修正

2017/11/27 01:36

投稿

catsforepaw
catsforepaw

スコア5944

answer CHANGED
@@ -1,4 +1,4 @@
1
- 構造体の初期化において、`{}`ブロックの中での「.変数 = 値」という書式は、C++では対応していませんのでエラーになります。C++での構造体の初期化は、Cの古典的な方法である定義したのと同じ順番で値だけを並べるか、構造体変数を定義した後でメンバ変数に一つ一つ代入していくか(のコードのような具合ですね)、あるいはC++の機能として適切なコンストラクターを記述するかのいずれかになります。
1
+ 構造体の初期化において、`{}`ブロックの中での「.変数 = 値」という書式は、C++では対応していませんのでエラーになります。C++での構造体の初期化は、Cの古典的な方法である定義したのと同じ順番で値だけを並べるか、構造体変数を定義した後でメンバ変数に一つ一つ代入していくか(のコードのような具合ですね)、あるいはC++の機能として適切なコンストラクターを記述するかのいずれかになります。
2
2
 
3
3
  ご質問で問題となっている下のコードは、`*(~)`としてしまっているので、メンバ変数`ssid`と`password`への設定ではなく、そのポインタの指し示す領域に値を格納してしまっています。当然、それらのメンバ変数の初期化前なので、不正なアドレスへの書き込みになっています。
4
4
 

1

誤字脱字修正

2017/11/27 01:27

投稿

catsforepaw
catsforepaw

スコア5944

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  構造体の初期化において、`{}`ブロックの中での「.変数 = 値」という書式は、C++では対応していませんのでエラーになります。C++での構造体の初期化は、Cの古典的な方法である定義したのと同じ順番で値だけを並べるか、構造体変数を定義した後でメンバ変数に一つ一つ代入していくか(舌のコードのような具合ですね)、あるいはC++の機能として適切なコンストラクターを記述するかのいずれかになります。
2
2
 
3
- ご質問で問題となっているシタのコードは、`*(~)`してしまっているので、メンバ変数`ssid`と`password`への設定ではなく、そのポインタの指し示す領域に値を格納してしまっています。当然、それらのメンバ変数の初期化前なので、不正なアドレスへの書き込みになっています。
3
+ ご質問で問題となっているのコードは、`*(~)`してしまっているので、メンバ変数`ssid`と`password`への設定ではなく、そのポインタの指し示す領域に値を格納してしまっています。当然、それらのメンバ変数の初期化前なので、不正なアドレスへの書き込みになっています。
4
4
 
5
5
  アスタリスクは不要(というか余計)なので取ってください。
6
6
  ```C++