C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part144
https://mevius.5ch.net/test/read.cgi/tech/1563769115/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
探検
C++相談室 part145
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/09/13(金) 17:13:24.60ID:/ygW08Jq573デフォルトの名無しさん
2019/10/23(水) 21:30:55.10ID:/s0IRa9G >>572
「Linuxシステムコールで速度でるの?」という質問と同じくらい矛盾に満ちた質問。
Win32APIも含めシステムコールはOSが提供するAPIなので、プログラマは他の手段で代替しようない。
「Linuxシステムコールで速度でるの?」という質問と同じくらい矛盾に満ちた質問。
Win32APIも含めシステムコールはOSが提供するAPIなので、プログラマは他の手段で代替しようない。
574デフォルトの名無しさん
2019/10/23(水) 21:35:56.58ID:H9cLmi0l Native APIがあるじゃろ
575デフォルトの名無しさん
2019/10/23(水) 22:12:26.70ID:B7dtMHRy Visual C++ 2015なんですが、
goto文でERRORというラベルに飛ばそうとしたら、コンパイルエラーが出ました。
ERRにしたらコンパイルできるようになったんですが、
なぜERRORのラベルはダメなんでしょうか?
goto文でERRORというラベルに飛ばそうとしたら、コンパイルエラーが出ました。
ERRにしたらコンパイルできるようになったんですが、
なぜERRORのラベルはダメなんでしょうか?
577デフォルトの名無しさん
2019/10/23(水) 22:22:30.17ID:R0F6kh0V #undef ERROR
578デフォルトの名無しさん
2019/10/23(水) 22:24:20.08ID:H9cLmi0l 単語1つのラベルなんか使うなってこった
579デフォルトの名無しさん
2019/10/23(水) 22:28:23.69ID:R0F6kh0V いやC++ではマクロが悪だ
580575
2019/10/23(水) 22:32:44.87ID:B7dtMHRy ERRORのdefineがあるんですね・・・!
ありがとうございました!
ありがとうございました!
581デフォルトの名無しさん
2019/10/24(木) 09:12:01.73ID:m57JSwXI クソみたいなマクロにsmallもある
他にもwindows.hには地雷が入念に仕込まれてる
普通の神経の人間が爆死して厭らしい人間だけが生き残るように整えられている厭らしい環境がwindows.hだよ
マトモな人間にはまず耐えられない
頭のオカシイ厭らしい人間だけが残るように設計されているのがwindows.h
このヘッダは頭がおかしい
他にもwindows.hには地雷が入念に仕込まれてる
普通の神経の人間が爆死して厭らしい人間だけが生き残るように整えられている厭らしい環境がwindows.hだよ
マトモな人間にはまず耐えられない
頭のオカシイ厭らしい人間だけが残るように設計されているのがwindows.h
このヘッダは頭がおかしい
582デフォルトの名無しさん
2019/10/24(木) 13:45:08.38ID:VURCQr2T >>581
お前の頭がおかしいだけだと思う
お前の頭がおかしいだけだと思う
583デフォルトの名無しさん
2019/10/24(木) 13:57:45.03ID:SfEmAS3k 林檎だってcheckマクロでBoostに大迷惑かけてるしお互い様
584デフォルトの名無しさん
2019/10/24(木) 17:59:23.36ID:0EVcBOG9585デフォルトの名無しさん
2019/10/24(木) 18:05:45.17ID:pgieaG2c ヘッダ「嫌ならincludeするな」
586デフォルトの名無しさん
2019/10/24(木) 19:57:40.06ID:WiWlXxwu このスレはみんなWindows嫌いなのかな
587デフォルトの名無しさん
2019/10/24(木) 20:17:56.94ID:TRYJth0S んなわけない
588デフォルトの名無しさん
2019/10/24(木) 21:28:21.53ID:hxYU3Lux たしかmaxとかもマクロ定義されてたよね
初心者のころはどハマリして殺意がわいたわ
初心者のころはどハマリして殺意がわいたわ
589デフォルトの名無しさん
2019/10/24(木) 21:49:18.24ID:omM/Gkq5 いまはIDEが色変えてくれるからすぐわかるから別にいいけどね
590デフォルトの名無しさん
2019/10/24(木) 23:20:19.58ID:M5uvwdA8 マクロがあればなんでもできる
591デフォルトの名無しさん
2019/10/24(木) 23:40:29.47ID:PIyGP0m1 最近ちょいちょい思うことだが、ある言語のここがどうであーだこうだと議論する場合
テキストエディタでコーディング作業してる連中と IDE でコーディング作業してる連中では
わりと大きな認識の違いがあることが多い
テキストエディタでコーディング作業してる連中と IDE でコーディング作業してる連中では
わりと大きな認識の違いがあることが多い
592デフォルトの名無しさん
2019/10/24(木) 23:44:34.75ID:8Fri6DgZ windows.hのマクロ回りでトラブル起こしているのは、殆んどvisual studio使用者だと思うのだが
593デフォルトの名無しさん
2019/10/25(金) 00:24:04.41ID:AZBzSxe6 認識の違いはコンパイラによるものであってコードエディタは関係ない。
594デフォルトの名無しさん
2019/10/25(金) 00:39:26.61ID:ghRRxqDU モジュールでマクロとか気にしなくて良くなる(なるといいなぁ...)
595デフォルトの名無しさん
2019/10/25(金) 07:52:28.01ID:51G3P59H コンパイラ変えてもマクロは変わらんでしょ
せいぜいエラーメッセージ変わるぐらいじゃ
せいぜいエラーメッセージ変わるぐらいじゃ
596デフォルトの名無しさん
2019/10/25(金) 09:14:30.39ID:AZBzSxe6 >>595
何言ってるのか意味がわかりにくいエラーメッセージを吐くのはコンパイラでしょ。
何言ってるのか意味がわかりにくいエラーメッセージを吐くのはコンパイラでしょ。
597デフォルトの名無しさん
2019/10/25(金) 12:19:38.16ID:51G3P59H マクロは影響範囲わからんからなんとも
vcでマクロがテンプレートに影響したらマジでわからん
clangはテンプレートのエラーメッセージわかりやすいとかみたな
vcでマクロがテンプレートに影響したらマジでわからん
clangはテンプレートのエラーメッセージわかりやすいとかみたな
598デフォルトの名無しさん
2019/10/25(金) 12:45:17.61ID:yKAgzXLG599デフォルトの名無しさん
2019/10/25(金) 17:33:51.00ID:AZBzSxe6 初心者であればあるほど親切なエラーメッセージが必要なのだけど、VCのエラーメッセージはgccに比べて不親切な印象がある。
STL関連のエラーメッセージは、わかりにくい代表格。かたやgccはprintf系の書式ミスを指摘してくれるなど初心者に優しい。
STL関連のエラーメッセージは、わかりにくい代表格。かたやgccはprintf系の書式ミスを指摘してくれるなど初心者に優しい。
600デフォルトの名無しさん
2019/10/25(金) 18:03:22.82ID:AZBzSxe6 C#が使いやすいと思っている人は、Visual Studioの入力補完に救われていることに気づいていない。
Visual Studioがなければヘッダーファイル相当のgrep検索もままならない不便な言語であると感じるだろう。
Visual Studioがなければヘッダーファイル相当のgrep検索もままならない不便な言語であると感じるだろう。
601デフォルトの名無しさん
2019/10/25(金) 18:50:41.74ID:StYWqeWG VS込みでいいじゃん
どうせC#なんて大半がWindows向けなんだしVS使える環境で開発してるでしょ
って変なこと言うと思ったらADSLか
どうせC#なんて大半がWindows向けなんだしVS使える環境で開発してるでしょ
って変なこと言うと思ったらADSLか
602デフォルトの名無しさん
2019/10/25(金) 19:00:26.80ID:r/2esNbS referencesource.microsoft.comみたいなありがたいものがあるのに
603デフォルトの名無しさん
2019/10/25(金) 19:58:41.60ID:q2iK2L4t 基本的には MSDN こそ C++ である。
604デフォルトの名無しさん
2019/10/26(土) 00:56:44.62ID:7AoWPXY8 class A{};
namespace N
{
class B{
friend class A;
int i;
};
class A{
A(){b.i = 0;}
B b;
};
};
これをコンパイルできるようにするにはどうすればいいですか?
・クラスAを名前空間Nの下に書く
・名前空間NのクラスAを別の名前にする
・最初のクラスAを別の名前にする
これ以外でできますか?
namespace N
{
class B{
friend class A;
int i;
};
class A{
A(){b.i = 0;}
B b;
};
};
これをコンパイルできるようにするにはどうすればいいですか?
・クラスAを名前空間Nの下に書く
・名前空間NのクラスAを別の名前にする
・最初のクラスAを別の名前にする
これ以外でできますか?
605デフォルトの名無しさん
2019/10/26(土) 00:59:53.57ID:SyjizfQh 全部消す
606デフォルトの名無しさん
2019/10/26(土) 01:35:09.91ID:dcsgYCXg >>604
「コンパイルできるようにする」
というだけであれば、何も修正しない元のままでもコンパイルできるはずだし、
最初の class A {} の行をコメントアウトする、消す。
Nの中のAを消す、namespace N {・・・} の部分を全部消す、
などなどいくらでも有りえる。
「コンパイルできるようにする」
というだけであれば、何も修正しない元のままでもコンパイルできるはずだし、
最初の class A {} の行をコメントアウトする、消す。
Nの中のAを消す、namespace N {・・・} の部分を全部消す、
などなどいくらでも有りえる。
607デフォルトの名無しさん
2019/10/26(土) 06:20:26.55ID:3CUGZWDU BのfriendをN::AにしたいってことであればNとBの間にclass A;とAの宣言を入れる
これ以上のエスパーは無理
これ以上のエスパーは無理
608デフォルトの名無しさん
2019/10/26(土) 08:16:08.08ID:kGqH5EJJ >>604
g++だと、現状のままでok
vs2019は、friend宣言の対象が::AになっていてC2248
::Aをコメントアウトするとok
正しいのはg++
N4713 6.4.1. Unqualified name lookup (7.4)
Note: When looking for a prior declaration of a class or function
introduced by a friend declaration, scopes outside of the innermost
enclosing namespace scope are not considered; see 10.3.1.2.
g++だと、現状のままでok
vs2019は、friend宣言の対象が::AになっていてC2248
::Aをコメントアウトするとok
正しいのはg++
N4713 6.4.1. Unqualified name lookup (7.4)
Note: When looking for a prior declaration of a class or function
introduced by a friend declaration, scopes outside of the innermost
enclosing namespace scope are not considered; see 10.3.1.2.
609デフォルトの名無しさん
2019/10/26(土) 21:50:06.24ID:JNlbd3QN 投稿テスト
N3337 3.4.1 Unqualified name lookup
Note: When looking for a prior declaration of a class or function
introduced by a friend declaration, scopes outside of the innermost
enclosing namespace scope are not considered; see 7.3.1.2.
N3337 3.4.1 Unqualified name lookup
Note: When looking for a prior declaration of a class or function
introduced by a friend declaration, scopes outside of the innermost
enclosing namespace scope are not considered; see 7.3.1.2.
610デフォルトの名無しさん
2019/10/26(土) 22:03:59.61ID:JNlbd3QN vs2019で::Aをコメントアウトするとokの意味がわからんorz
611デフォルトの名無しさん
2019/10/27(日) 08:17:56.25ID:/F19lavA 試してないが、理論上はこれでいけるはず :
namespace N
{
class A;
class B{
int i;
friend class A;
};
class A{
B b;
A(){b.i = 0;}
};
};
namespace N
{
class A;
class B{
int i;
friend class A;
};
class A{
B b;
A(){b.i = 0;}
};
};
612デフォルトの名無しさん
2019/10/27(日) 08:27:09.91ID:C3DsRDjK N::Aを前方宣言するなら、宣言を名前空間Nの中に入れるかN::Aで宣言する必要があるってのはC++の規約通りじゃないのか?
>>608が意味わからん
>>608が意味わからん
613デフォルトの名無しさん
2019/10/27(日) 09:08:16.09ID:M7FyKfzv friend宣言は、当該宣言を含むクラスが属するスコープを対象とし
なおかつ、対象スコープに識別子を導入しない
class G
{
friend class A; //::A
};
namespace H
{
class I
{
friend class A; //H::A
};
}
なおかつ、対象スコープに識別子を導入しない
class G
{
friend class A; //::A
};
namespace H
{
class I
{
friend class A; //H::A
};
}
614デフォルトの名無しさん
2019/10/27(日) 12:21:23.69ID:C3DsRDjK >>604はfriend宣言ではなく前方宣言の問題なんだが?
615デフォルトの名無しさん
2019/10/27(日) 14:03:45.40ID:M7FyKfzv いや前方宣言は関係ない
「もし」::Aがあったら、H::Aがあったら
と言っているだけのものだ
「もし」::Aがあったら、H::Aがあったら
と言っているだけのものだ
616デフォルトの名無しさん
2019/10/27(日) 14:25:39.88ID:vcUKQgsd >>614
前方参照をfriendがどう解釈するかの問題だろ
前方参照をfriendがどう解釈するかの問題だろ
617デフォルトの名無しさん
2019/10/27(日) 15:28:12.27ID:itfBjV2c618デフォルトの名無しさん
2019/10/27(日) 15:53:16.22ID:ho9vIROt619デフォルトの名無しさん
2019/10/27(日) 15:56:22.52ID:M7FyKfzv >>617
そのとおりだが?
//class A{};
namespace N
{
class B{
friend class A;
int i;
};
class A{
A(){b.i = 0;}
B b;
};
};
friend宣言が識別子を導入したり
関係ないはずのグローバルに干渉するなど
vcはfriendにクセがある
そのとおりだが?
//class A{};
namespace N
{
class B{
friend class A;
int i;
};
class A{
A(){b.i = 0;}
B b;
};
};
friend宣言が識別子を導入したり
関係ないはずのグローバルに干渉するなど
vcはfriendにクセがある
620デフォルトの名無しさん
2019/10/27(日) 16:07:13.81ID:6193c9It 規格的にはどうなるのが正しいの?
むしろ、もとの話がどうしたいのかに依る気がしないでもない
むしろ、もとの話がどうしたいのかに依る気がしないでもない
621デフォルトの名無しさん
2019/10/27(日) 16:13:20.11ID:rrcAfXPk622デフォルトの名無しさん
2019/10/27(日) 16:22:22.30ID:itfBjV2c >Visual Studioなら>>619みたいにするってことでしょ
https://festy.jp/wp-content/uploads/festy/2015/12/25/06/51/40/917/1448191295053.jpg
>>604の
>・最初のクラスAを別の名前にする
と何が違うんだそれ
https://festy.jp/wp-content/uploads/festy/2015/12/25/06/51/40/917/1448191295053.jpg
>>604の
>・最初のクラスAを別の名前にする
と何が違うんだそれ
623デフォルトの名無しさん
2019/10/27(日) 16:55:17.47ID:rrcAfXPk >>622
一緒だよ
だからそれができないならg++(とか他のちゃんと規格準拠して処理系)にしろって書いてあるだ
まあVisual Studioが規格準拠するのを待つとかMSにねじ込むか金払って対応してもらうとかでもいいけどw
一緒だよ
だからそれができないならg++(とか他のちゃんと規格準拠して処理系)にしろって書いてあるだ
まあVisual Studioが規格準拠するのを待つとかMSにねじ込むか金払って対応してもらうとかでもいいけどw
624デフォルトの名無しさん
2019/10/27(日) 20:50:09.77ID:5FCyBaq0 トンチンカンな質問かもしれませんが許して。
<Base>のコンテナを巡回しながら
Base派生の多態性を引数で実現、みたいなことがやりたいのです。
https://ideone.com/PA26HG
これのManager::update()が、このままだと当然
func(shared_ptr<Base>,shared_ptr<Base>)を呼ぼうとしてしまう訳ですが
宣言してあるfunc(A,A)とかfunc(A,B)とかfunc(B,B)とかが
呼ばれるようにするにはどうしたらいいですかね?
あるいは、ガラっとコード変わってもだいたい似たようなことを実現するとしたら
どう書きますか?
<Base>のコンテナを巡回しながら
Base派生の多態性を引数で実現、みたいなことがやりたいのです。
https://ideone.com/PA26HG
これのManager::update()が、このままだと当然
func(shared_ptr<Base>,shared_ptr<Base>)を呼ぼうとしてしまう訳ですが
宣言してあるfunc(A,A)とかfunc(A,B)とかfunc(B,B)とかが
呼ばれるようにするにはどうしたらいいですかね?
あるいは、ガラっとコード変わってもだいたい似たようなことを実現するとしたら
どう書きますか?
625デフォルトの名無しさん
2019/10/27(日) 20:52:12.38ID:oi2VB0wA シェアポの配列を作って添え字で切り替え。
626デフォルトの名無しさん
2019/10/27(日) 20:54:15.22ID:oi2VB0wA あ、すまん。誤読していた。
>>宣言してあるfunc(A,A)とかfunc(A,B)とかfunc(B,B)とか
多態やってる意味を潰しに来てないか?
>>宣言してあるfunc(A,A)とかfunc(A,B)とかfunc(B,B)とか
多態やってる意味を潰しに来てないか?
628蟻人間 ◆T6xkBnTXz7B0
2019/10/27(日) 20:59:49.33ID:cNZwDfUU もしくはfuncでは仮想化された関数しか使わないとか。
629デフォルトの名無しさん
2019/10/27(日) 21:09:28.45ID:aWGByvYb >>624
visitorパターン
visitorパターン
630642
2019/10/27(日) 21:09:54.33ID:5FCyBaq0631624
2019/10/27(日) 21:14:40.36ID:5FCyBaq0632デフォルトの名無しさん
2019/10/27(日) 21:34:36.36ID:4WtkkchW >>624
愚直に dynamic_cast で N*N 分岐からはじめたら?
愚直に dynamic_cast で N*N 分岐からはじめたら?
633デフォルトの名無しさん
2019/10/27(日) 22:12:39.30ID:5au4GxkL 2引数ならdouble dispatchとか
634デフォルトの名無しさん
2019/10/27(日) 22:14:23.71ID:SYtHJPpD 派生クラスの種類が決まっているなら
variantに置き換えたらvisit使えるから簡単
variantに置き換えたらvisit使えるから簡単
635デフォルトの名無しさん
2019/10/28(月) 05:15:43.29ID:VJWcm+Z+636デフォルトの名無しさん
2019/10/29(火) 01:15:36.46ID:Vnr+WSpj C++でCOM扱うの苦痛すぎる
何が正攻法なのかさっぱりわからん
何が正攻法なのかさっぱりわからん
638デフォルトの名無しさん
2019/10/29(火) 01:41:40.05ID:Vnr+WSpj 別にCOMは作るんじゃないんだよ。
参照するだけなんだよ。
それでもATLなんーーーーーーーーー?
参照するだけなんだよ。
それでもATLなんーーーーーーーーー?
639デフォルトの名無しさん
2019/10/29(火) 01:43:16.61ID:Vnr+WSpj そもそも文字コードどうなってるんやーーーー
コマンドプロンプトに出す時、どうするんやーー
現在のchcpの設定に従って変換線といかんのカーーーーーー
コマンドプロンプトに出す時、どうするんやーー
現在のchcpの設定に従って変換線といかんのカーーーーーー
640蟻人間 ◆T6xkBnTXz7B0
2019/10/29(火) 02:28:13.51ID:OOQqvLIR 変換なんてWideCharToMultiByte使って一つ変換関数作ってその関数を使い回せばいいやん。
641デフォルトの名無しさん
2019/10/29(火) 02:42:32.11ID:/DWax9vx WriteConsoleW
642デフォルトの名無しさん
2019/10/29(火) 04:01:15.69ID:ymnLB/52643デフォルトの名無しさん
2019/10/29(火) 04:07:41.50ID:ymnLB/52 例えばググって見つけた、こことか
http://www.t-net.ne.jp/~cyfis/win_api/sdk/WideCharToMultiByte.html
wchar_t を const wchar_t にするのはまあいいとして、
日本語はOKだけど絵文字とか化けるじゃねーか
わーけわかねなんdfっrね;jk
http://www.t-net.ne.jp/~cyfis/win_api/sdk/WideCharToMultiByte.html
wchar_t を const wchar_t にするのはまあいいとして、
日本語はOKだけど絵文字とか化けるじゃねーか
わーけわかねなんdfっrね;jk
644デフォルトの名無しさん
2019/10/29(火) 04:13:15.89ID:ymnLB/52 ん?WideCharToMultiByteってShiftJISに戻すやつじゃねーのか?
俺はUnicode文字すべてを表示したいだけだぞ
俺はUnicode文字すべてを表示したいだけだぞ
645デフォルトの名無しさん
2019/10/29(火) 04:20:56.50ID:xS90z6YC chcpくらい使えよ
646デフォルトの名無しさん
2019/10/29(火) 04:26:03.90ID:/DWax9vx windowsのコマンドプロンプトはまだ絵文字とかに対応してないよ
647デフォルトの名無しさん
2019/10/29(火) 04:29:31.79ID:YQKoC2Uo648デフォルトの名無しさん
2019/10/29(火) 04:29:44.12ID:YQKoC2Uo お、文字化けしなかったw
649デフォルトの名無しさん
2019/10/29(火) 04:30:10.10ID:YQKoC2Uo ?????
Jane経由だとだめだろうな
Jane経由だとだめだろうな
650デフォルトの名無しさん
2019/10/29(火) 04:31:42.98ID:YQKoC2Uo >>645
chcp 65001にしてもムダだったぞ
chcp 65001にしてもムダだったぞ
651デフォルトの名無しさん
2019/10/29(火) 04:54:41.95ID:pnjVF+Pb コマンドプロンプトよりJaneは早く絵文字に対応しろ
652デフォルトの名無しさん
2019/10/29(火) 05:06:04.44ID:xS90z6YC >>650
それutf8じゃねーか
それutf8じゃねーか
653デフォルトの名無しさん
2019/10/29(火) 05:14:54.35ID:YQKoC2Uo >>652
ぐぐってからいえwww
ぐぐってからいえwww
654デフォルトの名無しさん
2019/10/29(火) 05:19:50.17ID:YQKoC2Uo なんでコードページ932なのに、NSimSunにすると
日本語以外もちゃんと表示できるのかわからない
日本語以外もちゃんと表示できるのかわからない
655デフォルトの名無しさん
2019/10/29(火) 05:26:40.69ID:xS90z6YC wcharがutf8なのか?あほか?
656デフォルトの名無しさん
2019/10/29(火) 05:36:55.26ID:YQKoC2Uo Visual StudioのソースコードのデフォルトはBOM付きUTF8なんだな
657デフォルトの名無しさん
2019/10/29(火) 06:38:53.94ID:d5obkYRE658デフォルトの名無しさん
2019/10/29(火) 12:08:17.89ID:HlsBbRfa 自分の理解と違ってたので教えてください。
class hoge{
hoge(){}
hoge(const hoge& h){}
~hoge(){}
}
hoge func(){
hoge h;
return h;
}
main(){
hoge h = func();
}
この時、引数なしコンストラクタとコピーコンストラクタ、デストラクタが2回呼ばれると理解してたんだけど、実際動かすとコンストラクタとデストラクタが1回づつしか呼ばれない。
理由ってなんですか?
ちなみにgccで、c++03、c++11でも同様の結果でした。
class hoge{
hoge(){}
hoge(const hoge& h){}
~hoge(){}
}
hoge func(){
hoge h;
return h;
}
main(){
hoge h = func();
}
この時、引数なしコンストラクタとコピーコンストラクタ、デストラクタが2回呼ばれると理解してたんだけど、実際動かすとコンストラクタとデストラクタが1回づつしか呼ばれない。
理由ってなんですか?
ちなみにgccで、c++03、c++11でも同様の結果でした。
660デフォルトの名無しさん
2019/10/29(火) 12:10:21.23ID:gvGgQxyJ 最適化で消された
661デフォルトの名無しさん
2019/10/29(火) 12:14:30.49ID:HlsBbRfa662デフォルトの名無しさん
2019/10/29(火) 13:58:53.43ID:cpD/FVFn >>636
node.js
node.js
663はちみつ餃子 ◆8X2XSCHEME
2019/10/29(火) 13:59:57.20ID:0JV7MfqT664デフォルトの名無しさん
2019/10/29(火) 15:55:18.54ID:VnX4qZP9 失礼します。テストです:
ハート:❤
横向きハート:❥
ハート:❤
横向きハート:❥
666デフォルトの名無しさん
2019/10/29(火) 18:43:54.18ID:NclFvQSb667デフォルトの名無しさん
2019/10/29(火) 21:55:11.67ID:daQRKG1l typedef const struct {
int i;
int j;
} X;
X arr[2] = {
{1,3},
{2,4}
};
int main() {
X *ptr = arr;
printf("%d %d %d <- always zero", ptr->i, (ptr+1)->i, (ptr-1)->i);
return 0;
}
グローバル const struct の配列のアドレスを上に行ったら、常に0が入ってるんだけど、
これは、どのハードウェアでもこうなると仕様と決まってるの?
int i;
int j;
} X;
X arr[2] = {
{1,3},
{2,4}
};
int main() {
X *ptr = arr;
printf("%d %d %d <- always zero", ptr->i, (ptr+1)->i, (ptr-1)->i);
return 0;
}
グローバル const struct の配列のアドレスを上に行ったら、常に0が入ってるんだけど、
これは、どのハードウェアでもこうなると仕様と決まってるの?
668デフォルトの名無しさん
2019/10/29(火) 22:07:48.92ID:VnX4qZP9 >>667
決まってない。
範囲外のアクセスなので、本来は絶対にやってはいけない。
読むだけでも不法例外が起きてしまう可能性もあるが、
書くのはもっとダメ。
たまたま、コンパイラシステムが何らかの目的で使っている
グローバル変数が arr 配列の直前にい配置されていて、
それが0になっているか、padding領域がたまたまそこにある
だけだと考えられる。
決まってない。
範囲外のアクセスなので、本来は絶対にやってはいけない。
読むだけでも不法例外が起きてしまう可能性もあるが、
書くのはもっとダメ。
たまたま、コンパイラシステムが何らかの目的で使っている
グローバル変数が arr 配列の直前にい配置されていて、
それが0になっているか、padding領域がたまたまそこにある
だけだと考えられる。
669デフォルトの名無しさん
2019/10/29(火) 23:33:23.00ID:B0gwdLKJ .bssは0初期化されてる
670デフォルトの名無しさん
2019/10/30(水) 04:47:43.23ID:oMdYt0Tq オブジェクトがスタックに作られてるかヒープに作られてるかってどうやって調べるの
具体的にはboostのmulti_arrayがどっちに作られてるか知りたい
具体的にはboostのmulti_arrayがどっちに作られてるか知りたい
671デフォルトの名無しさん
2019/10/30(水) 06:54:34.02ID:2wpdugOW >>668
そりゃそうか。0で埋まってりゃコードが少し短くなって助かるんだが、まあやめとこう。
そりゃそうか。0で埋まってりゃコードが少し短くなって助かるんだが、まあやめとこう。
672デフォルトの名無しさん
2019/10/30(水) 07:31:59.85ID:yREk150+■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【STARTO ENTERTAINMENT】timelesz篠塚大輝『大きな古時計』替え歌一発ギャグ「今はもう動かない おじいさんにトドメ~♪」が波紋 [Ailuropoda melanoleuca★]
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- たまにaカップの女いるけど何を楽しめばいいの?
