次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part131
http://mevius.2ch.net/test/read.cgi/tech/1501295308/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.101【環境依存OK】
http://mevius.2ch.net/test/read.cgi/tech/1500329247/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part132
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ (ワッチョイ faeb-wbjw)
2017/10/10(火) 00:11:34.01ID:nc/5PI4P0493デフォルトの名無しさん (ワッチョイ 2e80-frTj)
2017/11/08(水) 06:30:19.02ID:pFtekju40 セキュリティソフトを動かしていたら、多くのアプリは、正常に動かない
多くのアプリの説明書に、そう書いてある
多くのアプリの説明書に、そう書いてある
494デフォルトの名無しさん (ワッチョイ 45c3-Q/5A)
2017/11/08(水) 07:29:57.54ID:/yzKqtBG0 >>487 cin.get(); とgetchar() もやってみたけど同じでした
>>488 ウィルスバスターはインストールされているでしょうか?
エラーを出すのがウィルスバスターなので、ウィルスバスターの入っている環境じゃないと出ないようです
>>489 vector使ってみたけど同じでした。今までvectorってあまり使ったことなかったけど、これからはvectorを使うことにしよう
int main()
{
vector< vector<int> > ppa;
ppa.resize(5000);
for (int i = 0; i < 5000; i++ )
ppa[i].resize(20);
cout << "hit any key!" << endl;
char ch = (char)_getch();
return 0;
}
>>490 実際のプログラムでは伸び縮みします
>>491 そうですね、ウィルスバスター側の問題かもしれない。トレンドマイクロに問い合わせしてみようかな?
>>492 ウィルスバスターを終了した状態ではエラーは出ないことは確認しています
ただ、visual studioとウィルスバスターのどちら側に問題があるかは分からないけれども
>>493 そうですね、でもウィルスバスターを止めるわけにもいかないので
とりあえず、プログラムを最後まで実行させなければ問題ないので、IDEから強制終了することで対応しようと思います。
プログラム単体で実行したときはエラーは出ないので
>>488 ウィルスバスターはインストールされているでしょうか?
エラーを出すのがウィルスバスターなので、ウィルスバスターの入っている環境じゃないと出ないようです
>>489 vector使ってみたけど同じでした。今までvectorってあまり使ったことなかったけど、これからはvectorを使うことにしよう
int main()
{
vector< vector<int> > ppa;
ppa.resize(5000);
for (int i = 0; i < 5000; i++ )
ppa[i].resize(20);
cout << "hit any key!" << endl;
char ch = (char)_getch();
return 0;
}
>>490 実際のプログラムでは伸び縮みします
>>491 そうですね、ウィルスバスター側の問題かもしれない。トレンドマイクロに問い合わせしてみようかな?
>>492 ウィルスバスターを終了した状態ではエラーは出ないことは確認しています
ただ、visual studioとウィルスバスターのどちら側に問題があるかは分からないけれども
>>493 そうですね、でもウィルスバスターを止めるわけにもいかないので
とりあえず、プログラムを最後まで実行させなければ問題ないので、IDEから強制終了することで対応しようと思います。
プログラム単体で実行したときはエラーは出ないので
495デフォルトの名無しさん (ワッチョイ 2e80-frTj)
2017/11/08(水) 08:02:44.81ID:pFtekju40 多くのアプリの説明書に、
「セキュリティソフトを動かしていたら、正常に動きません」
って書いてあるけど、何でだろ?
「セキュリティソフトを動かしていたら、正常に動きません」
って書いてあるけど、何でだろ?
496デフォルトの名無しさん (スププ Sd62-GEAd)
2017/11/08(水) 08:10:49.38ID:MA4CFapNd 多くのアプリがウィルスみたいなものだから
497デフォルトの名無しさん (ワッチョイ c28a-Lt6+)
2017/11/08(水) 09:33:37.02ID:tfdQ3Vx70 セキュリティソフトは潜在バグを顕在化する事が往々にしてある
498デフォルトの名無しさん (ワッチョイ e58a-snrl)
2017/11/08(水) 10:25:00.80ID:s/8N4dfn0 事情は知らんが開発中はウィルスバスター止めるとか>>467の方法で問題あるのか?
IDEから強制終了とかクソ面倒くさいことやってられんだろ
IDEから強制終了とかクソ面倒くさいことやってられんだろ
499デフォルトの名無しさん (ワッチョイ 4104-mbga)
2017/11/08(水) 10:27:07.11ID:pfXJjTar0 OSの設定に干渉するようなモノはウイルス判定されることがあり得るでしょ。
それが善意かどうかなんて判定のしようがない。
それが善意かどうかなんて判定のしようがない。
500デフォルトの名無しさん (ワッチョイ e58a-snrl)
2017/11/08(水) 10:29:43.39ID:s/8N4dfn0 もしかしてウイルスを作ってるのか?
501デフォルトの名無しさん (ワッチョイ 4980-VYVV)
2017/11/08(水) 12:29:57.54ID:/2nLdTDi0502はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 066f-lboT)
2017/11/08(水) 13:26:26.66ID:xvDlz0If0 ウイルスと判定したわけじゃなくて、判定するために干渉した結果としてそうなる場合がある。
コンソールアプリを起動しようとした場合に、一旦サンドボックス的なものの中で起動させてチェックして
直後にあらためて普通に起動するというのを見たことがある。
今回の場合、そのコンソールアプリを起動している VS の状況と噛み合わなくなっているのだと思う。
チェックのために何かしら介入しなきゃならないのはしょうがないのだが、
泥臭い、クソみてぇなことの塊なので、まじめに検証するのアホらしいぞ。
コンソールアプリを起動しようとした場合に、一旦サンドボックス的なものの中で起動させてチェックして
直後にあらためて普通に起動するというのを見たことがある。
今回の場合、そのコンソールアプリを起動している VS の状況と噛み合わなくなっているのだと思う。
チェックのために何かしら介入しなきゃならないのはしょうがないのだが、
泥臭い、クソみてぇなことの塊なので、まじめに検証するのアホらしいぞ。
503488 (ワッチョイ 469f-lboT)
2017/11/08(水) 15:52:55.19ID:8BP79/0I0504デフォルトの名無しさん (スプッッ Sd62-3K0w)
2017/11/08(水) 16:01:14.63ID:VRSOCYqCd いまどきクライアントにはウィルス対策ソフトなんて入れないのが主流だと思ってたけど、
そうでもないのかな
そうでもないのかな
505デフォルトの名無しさん (ワッチョイ 1e7f-3ZLQ)
2017/11/08(水) 16:44:23.86ID:XvbXwAqY0 上の現象見ただけでも信用ならんと分かりそうなものだがなあ。
506デフォルトの名無しさん (ワッチョイ 4104-mbga)
2017/11/08(水) 18:24:45.85ID:pfXJjTar0 Win10ならディフェンダーはいってるけど、前のOSとかなら入れるのか?
507デフォルトの名無しさん (ドコグロ MM75-r/51)
2017/11/08(水) 19:40:45.83ID:GPQLPiKHM >>506
XPの時からディフェンダーだわ
XPの時からディフェンダーだわ
508デフォルトの名無しさん (ワッチョイ 794f-mNd+)
2017/11/08(水) 23:47:31.77ID:NuL34q9d0 ノートンのプロセスが勝手にこっちのdllを読み込んあとおかしな状態でアンロードしてアクセス違反おこしてノートンのプロセスがクラッシュするってのはあった。
アンチデバッキングなのかユーザーモードデバッガではアタッチできないからカーネルデバッガやるしかなくて原因見つけるのに結構苦労した。
アンチデバッキングなのかユーザーモードデバッガではアタッチできないからカーネルデバッガやるしかなくて原因見つけるのに結構苦労した。
509デフォルトの名無しさん (ワッチョイ 5f80-UJrp)
2017/11/09(木) 00:57:17.32ID:ej8qpLZc0 Virtual Studioは素人が購入することは考えにくい専門的なソフトだからウイルスバスターのターゲット外なんだよ。
つまりさっさとどっちか捨てろってこった
つまりさっさとどっちか捨てろってこった
510デフォルトの名無しさん (ワッチョイ 5f78-XysI)
2017/11/09(木) 02:17:02.22ID:7vxmA4jM0 Visual Studioでアプリ作っててビルドしたてホヤホヤのプログラムをアヴィラ先生がウィルス認定しやがったのは過去に何度かあったわ
511デフォルトの名無しさん (ワッチョイ ffe8-kEiX)
2017/11/09(木) 07:51:39.95ID:AsVSSCPV0512デフォルトの名無しさん (ワッチョイ dfc3-ySnM)
2017/11/09(木) 08:51:49.76ID:4HUgyouS0513デフォルトの名無しさん (ワッチョイ df8a-i75N)
2017/11/09(木) 11:01:44.29ID:Obd3aNBj0 ウィルスバスターはエラー検出ツールじゃないし無視でいいよ
リソース関連のエラー検出したいならそれなりの検出ツール使うとか静的解析ツール使うとか
リソース関連のエラー検出したいならそれなりの検出ツール使うとか静的解析ツール使うとか
514デフォルトの名無しさん (ワッチョイ 7f34-UxQ8)
2017/11/09(木) 12:14:59.98ID:rcuqnank0 ウィルスバスターミナルとかトーシローかよw
プログラムの仕組み知り尽くしていればまずウィルスなんかに引っ掛からないだろw
プログラムの仕組み知り尽くしていればまずウィルスなんかに引っ掛からないだろw
515デフォルトの名無しさん (ワッチョイ ffeb-ySnM)
2017/11/09(木) 12:33:16.70ID:YfcqoN+X0 教えてくれよ
516デフォルトの名無しさん (スプッッ Sd1f-fei+)
2017/11/09(木) 18:45:17.95ID:+zZRkuiLd 入力したコマンドを別関数に渡して結合してリターンして表示するってコードを作りたい
mainの中のusrとpassは実体もあるから受け渡し含めて問題ないと思うのだけど、
mainのcRetとgetcommandのcommandってどう定義するべきなのだろうか?
動くのは動くのだけど二つとも実体どこー?ってなってます
#include <stdio.h>
#include <stdlib.h>
GetCommand( const char* usr, const char* pass ){
char* command;
/** コマンド作成 **/
sprintf( command, "-u %s:%s", usr, pass );
return command;
}
int main( int argc, char* argv[] ){
char* cRet;
char usr[256] = {};
char pass[256] = {};
/** アカウント名の入力 **/
printf("usr Input : ");
scanf("%s", usr );
/** パスワードの入力 **/
printf("pass Input : ");
scanf("%s", pass );
cRet = GetCommand( usr, pass );
printf( "%s\n", cRet );
return 0;
}
mainの中のusrとpassは実体もあるから受け渡し含めて問題ないと思うのだけど、
mainのcRetとgetcommandのcommandってどう定義するべきなのだろうか?
動くのは動くのだけど二つとも実体どこー?ってなってます
#include <stdio.h>
#include <stdlib.h>
GetCommand( const char* usr, const char* pass ){
char* command;
/** コマンド作成 **/
sprintf( command, "-u %s:%s", usr, pass );
return command;
}
int main( int argc, char* argv[] ){
char* cRet;
char usr[256] = {};
char pass[256] = {};
/** アカウント名の入力 **/
printf("usr Input : ");
scanf("%s", usr );
/** パスワードの入力 **/
printf("pass Input : ");
scanf("%s", pass );
cRet = GetCommand( usr, pass );
printf( "%s\n", cRet );
return 0;
}
517片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd9f-dwJZ)
2017/11/09(木) 18:49:41.22ID:lJJATczwd GetCommand関数のcommand変数をstaticなバッファーにするか、おとなしくstd::stringを使うか、GetCommandにバッファーへのポインターに渡すか。
518デフォルトの名無しさん (スプッッ Sd1f-fei+)
2017/11/09(木) 18:53:06.50ID:+zZRkuiLd >>517
このままのリターン形式だとstaticなバッファー作成しか方法ないってことですよね
このままのリターン形式だとstaticなバッファー作成しか方法ないってことですよね
519片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd9f-dwJZ)
2017/11/09(木) 18:56:36.56ID:lJJATczwd >>518
いや、malloc や、newもあり得る。だれが解放するかは問題だが。
いや、malloc や、newもあり得る。だれが解放するかは問題だが。
520片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd9f-dwJZ)
2017/11/09(木) 19:22:58.90ID:lJJATczwd グローバル変数のバッファーを使うこともできる。
521デフォルトの名無しさん (スプッッ Sd1f-fei+)
2017/11/09(木) 20:43:21.98ID:+zZRkuiLd 考えてみるとバグの温床になりかねんね
単純に格納先の変数を用意して引数に渡すべきだとなった
単純に格納先の変数を用意して引数に渡すべきだとなった
522デフォルトの名無しさん (ドコグロ MM7f-kkiU)
2017/11/09(木) 21:06:06.24ID:HS5Oh82mM523デフォルトの名無しさん (スプッッ Sd1f-fei+)
2017/11/09(木) 21:22:58.42ID:+zZRkuiLd524はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff6f-TPjW)
2017/11/09(木) 22:21:05.91ID:LSUga0nM0 コマンドラインオプションで受渡した方がやりやすいような気もしないでもない。
525デフォルトの名無しさん (ワッチョイ dfcb-2I0o)
2017/11/10(金) 05:13:52.89ID:7MRV7tWB0 こういう内容でstring使わないとか
超のつくマゾプレーだな
超のつくマゾプレーだな
526デフォルトの名無しさん (ワッチョイ 5f78-XysI)
2017/11/10(金) 06:24:08.16ID:wxME+cIA0 ってかCの質問やんけ
527デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/10(金) 06:45:56.53ID:AkYkb8w90 sprintfは領域確保しないでしょ。こういうのがCは危ない。
528デフォルトの名無しさん (ワッチョイ dfc3-ySnM)
2017/11/10(金) 07:58:16.79ID:P63PhvFd0529デフォルトの名無しさん (ワッチョイ 7f9d-vLjR)
2017/11/11(土) 06:46:03.41ID:PUzdOh0e0 >516
1.間違い1
char* command; /** コマンド作成 **/
sprintf( command, "-u %s:%s", usr, pass );
ここが間違いで、sprintfを使う時には、かならず
char commad[256];
のように適当に多めにエリアを確保すること、256バイト確保しておけばメモリーをはみ出すことはまずない。
上の例ではcommandには何が入っているか不定だから、例えば0が入っていたら、メモリーの0番地に
usr,passを書き込んでしまう。だから普通はsprintを行った後で暴走する。
2.間違い2
char commad[256];
このように変更するとGetCommandは正常に動作するが、このcommandはスタックに確保されたメモリー
なのでGetCommandを終了すると、解放されて不定になる。したがってreturn command;はしては
いけない。
3.正しいやりかた
メモリエリアを確保して、それをGetCommnadに渡すのもありだが、引数が増えるので内部で確保してリターン
したいのであれば、memory確保する関数を用意してそこに書き込む。確保したエリアは使い終わったら
自動的に開放できる仕組みにしておく。
char *command = getarea(256);
1.間違い1
char* command; /** コマンド作成 **/
sprintf( command, "-u %s:%s", usr, pass );
ここが間違いで、sprintfを使う時には、かならず
char commad[256];
のように適当に多めにエリアを確保すること、256バイト確保しておけばメモリーをはみ出すことはまずない。
上の例ではcommandには何が入っているか不定だから、例えば0が入っていたら、メモリーの0番地に
usr,passを書き込んでしまう。だから普通はsprintを行った後で暴走する。
2.間違い2
char commad[256];
このように変更するとGetCommandは正常に動作するが、このcommandはスタックに確保されたメモリー
なのでGetCommandを終了すると、解放されて不定になる。したがってreturn command;はしては
いけない。
3.正しいやりかた
メモリエリアを確保して、それをGetCommnadに渡すのもありだが、引数が増えるので内部で確保してリターン
したいのであれば、memory確保する関数を用意してそこに書き込む。確保したエリアは使い終わったら
自動的に開放できる仕組みにしておく。
char *command = getarea(256);
530デフォルトの名無しさん (ワッチョイ df8a-Kfl6)
2017/11/11(土) 06:58:56.29ID:qx0Cuc+s0 256バイト確保しておけばメモリーをはみ出すことはまずない。とかw
文字列連結してるだけなんだから全部std::stringでやればいいだけだよ
文字列連結してるだけなんだから全部std::stringでやればいいだけだよ
531デフォルトの名無しさん (ワッチョイ 7f34-UxQ8)
2017/11/11(土) 07:10:37.49ID:5AYGw8xA0532デフォルトの名無しさん (ワッチョイ 7f9d-vLjR)
2017/11/11(土) 08:19:33.64ID:PUzdOh0e0 >文字列連結してるだけなんだから全部std::stringでやればいいだけだよ
さてもしかりに
char commad[256000]; このくらい十分に確保できたらstringとどっちがあんぜんだろうか?
先ずはstringを使った方がいいと主張する理由を説明できないとな。
「やればいいだけだよ」って誰かがいってたから、という受け売りの信仰ではだめだな。
さてもしかりに
char commad[256000]; このくらい十分に確保できたらstringとどっちがあんぜんだろうか?
先ずはstringを使った方がいいと主張する理由を説明できないとな。
「やればいいだけだよ」って誰かがいってたから、という受け売りの信仰ではだめだな。
533デフォルトの名無しさん (ワッチョイ ffe8-kEiX)
2017/11/11(土) 08:23:18.59ID:qQheN6bd0534デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 08:40:17.35ID:FtIHrpnF0 >>533
外部からの長さ無制限の文字列を受け付けるプログラムというのもセキュリティー上問題がある
バッファオーバーフローで即exploitされることは無いが時間をかければクラッシュを引き起こせる
というわけで長さ制限はどこかの時点で必須なのでassertionをOFFにしたsprintf_s()さいこー
外部からの長さ無制限の文字列を受け付けるプログラムというのもセキュリティー上問題がある
バッファオーバーフローで即exploitされることは無いが時間をかければクラッシュを引き起こせる
というわけで長さ制限はどこかの時点で必須なのでassertionをOFFにしたsprintf_s()さいこー
535デフォルトの名無しさん (ワッチョイ df8a-i75N)
2017/11/11(土) 08:42:08.74ID:qx0Cuc+s0536デフォルトの名無しさん (スップ Sd1f-WrWp)
2017/11/11(土) 08:46:05.02ID:JauW0Lbxd スタックオーバーフロー起こしそう
537デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/11(土) 08:58:22.67ID:VdKe4lXM0 >>532
スタックが無駄。
スタックが無駄。
538デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 08:59:35.86ID:FtIHrpnF0 ていうかstd::stringにお任せしておけばデータサイズの管理が不要とか池沼の考え
何文字でも受け付けるとかいうのはテストしようが無いからまともな仕様ではない
よってまともな設計は不可能
何文字でも受け付けるとかいうのはテストしようが無いからまともな仕様ではない
よってまともな設計は不可能
539デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/11(土) 09:01:47.94ID:VdKe4lXM0 常識的な範囲で受け入れてくれればよい。
それを行うことで何をしたいのかが見えないなぁ。
それを行うことで何をしたいのかが見えないなぁ。
540デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 09:03:17.54ID:FtIHrpnF0 手前の常識がクライアントの常識と思い込むのは池沼のry
541デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 09:06:15.75ID:FtIHrpnF0 つか>>537もかなり問題発言
スタックは関数を抜けたら開放されるのだから、
スタック領域を使い果たさないように設計された関数ならスタックをいくら使うかは関数の勝手
ここでも「スタックの消費は少ないほうが良い」という手前の常識が
スタックは関数を抜けたら開放されるのだから、
スタック領域を使い果たさないように設計された関数ならスタックをいくら使うかは関数の勝手
ここでも「スタックの消費は少ないほうが良い」という手前の常識が
542デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/11(土) 09:06:43.21ID:VdKe4lXM0 じゃあ、君はメモリが確保できないことをどう説明するんだい?
スタック大量に確保したら余計引っかかるぞ。
スタック大量に確保したら余計引っかかるぞ。
543デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/11(土) 09:10:47.99ID:VdKe4lXM0 本質は同じ。瞬間メモリ使用量の問題だからな。
少ない方がイイに決まって無いかい?
少ない方がイイに決まって無いかい?
544デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 09:17:19.24ID:FtIHrpnF0 >>542
スレッド生成時にそのスレッドが使えるスタックは一般に割り当てが完了するから、
割り当てられた領域をオーバーしなければどう使っても良い
もちろんフルに使ってもヒープの圧迫にはならない
スタックが伸びれば伸びただけヒープ用メモリ領域を圧迫するとか
ごく一部の超ロースペックな組み込み環境(スタックがただ1本だけ=スレッドが1個だけ)限定の話じゃないの;
プログラムのメモリの使い方について一体どんな理解をしているのか;;
スレッド生成時にそのスレッドが使えるスタックは一般に割り当てが完了するから、
割り当てられた領域をオーバーしなければどう使っても良い
もちろんフルに使ってもヒープの圧迫にはならない
スタックが伸びれば伸びただけヒープ用メモリ領域を圧迫するとか
ごく一部の超ロースペックな組み込み環境(スタックがただ1本だけ=スレッドが1個だけ)限定の話じゃないの;
プログラムのメモリの使い方について一体どんな理解をしているのか;;
545デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/11(土) 09:22:37.81ID:VdKe4lXM0 >>544
じゃあnewしても問題なく確保できるじゃないか。
クライアントが不足の文字数ブッコンで落ちるよりはいいと思うけどね。
あと、ほかがヒープ食っててスタック確保できないケースはないの?
なんでもヒープにキックする人嫌い。
じゃあnewしても問題なく確保できるじゃないか。
クライアントが不足の文字数ブッコンで落ちるよりはいいと思うけどね。
あと、ほかがヒープ食っててスタック確保できないケースはないの?
なんでもヒープにキックする人嫌い。
546デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 09:23:01.72ID:FtIHrpnF0 >>543
std::string経由でヒープ上にchar commad[256000];を確保する方が
スタック上にchar commad[256000];を確保するより常に優れた設計であるという根拠は?
std::string経由でヒープ上にchar commad[256000];を確保する方が
スタック上にchar commad[256000];を確保するより常に優れた設計であるという根拠は?
547デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/11(土) 09:25:34.33ID:VdKe4lXM0548デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 09:26:29.15ID:FtIHrpnF0549デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/11(土) 09:27:27.12ID:VdKe4lXM0550デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/11(土) 09:29:57.09ID:VdKe4lXM0 c++には例外もアルヨ。
551デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/11(土) 09:40:15.26ID:VdKe4lXM0 化石か!
552デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 09:42:44.46ID:FtIHrpnF0553デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 09:44:02.22ID:FtIHrpnF0554デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/11(土) 09:46:24.25ID:VdKe4lXM0555デフォルトの名無しさん (ワッチョイ 5f7f-zl2n)
2017/11/11(土) 09:47:59.39ID:atpFEB620 スタックに充分な領域を確保したから大丈夫って頭おかしい設計だわ
556デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 09:49:50.67ID:FtIHrpnF0557デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/11(土) 09:54:01.12ID:VdKe4lXM0 はいはい。もういいわ。
エラー処理真面目にやるんだったら、そういう方向で考えるけど。
ここではそんなに求められてない。一般感覚が無いとそれ何回もやるのか?
不適当で有名な5chでなにを演説してるのやら。
エラー処理真面目にやるんだったら、そういう方向で考えるけど。
ここではそんなに求められてない。一般感覚が無いとそれ何回もやるのか?
不適当で有名な5chでなにを演説してるのやら。
558デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 09:58:28.19ID:FtIHrpnF0 >>555
やみくもにスタック消費量最小を目指すのは、
自分の関数がどれぐらいスタック使うのかおよびスタック領域にどれぐらい余裕があるのか
見積もる手間を惜しんで手抜きしているだけな可能性が微レ存、
ていうか「スタックに充分な領域を確保した」というのが真なら(机上検証、レビュー、テストで担保できたなら
「大丈夫」という結論で何の問題も無いんじゃ…
やみくもにスタック消費量最小を目指すのは、
自分の関数がどれぐらいスタック使うのかおよびスタック領域にどれぐらい余裕があるのか
見積もる手間を惜しんで手抜きしているだけな可能性が微レ存、
ていうか「スタックに充分な領域を確保した」というのが真なら(机上検証、レビュー、テストで担保できたなら
「大丈夫」という結論で何の問題も無いんじゃ…
559デフォルトの名無しさん (ワッチョイ ffa5-ySnM)
2017/11/11(土) 10:07:34.21ID:WEOLmGSE0560デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/11(土) 10:17:10.01ID:FtIHrpnF0 >>559
スタック領域を使い切るのが美徳とは言っていないわけでありまして、
なおかつページングの発生頻度は、メモリ消費箇所がスタックかヒープかの違いよりは
領域へのアクセス頻度の問題ではなかろうかと、
スタック領域を使い切るのが美徳とは言っていないわけでありまして、
なおかつページングの発生頻度は、メモリ消費箇所がスタックかヒープかの違いよりは
領域へのアクセス頻度の問題ではなかろうかと、
561デフォルトの名無しさん (ワッチョイ ffa5-ySnM)
2017/11/11(土) 10:35:02.95ID:WEOLmGSE0 パフォーマンスの話じゃなくて、これが一般には正しくないって言ってるの。
>スレッド生成時にそのスレッドが使えるスタックは一般に割り当てが完了するから、
>割り当てられた領域をオーバーしなければどう使っても良い
>もちろんフルに使ってもヒープの圧迫にはならない
>スレッド生成時にそのスレッドが使えるスタックは一般に割り当てが完了するから、
>割り当てられた領域をオーバーしなければどう使っても良い
>もちろんフルに使ってもヒープの圧迫にはならない
562デフォルトの名無しさん (ワッチョイ 5f78-XysI)
2017/11/11(土) 10:53:30.83ID:opm7+oFX0 んでchar commad[256000];をどうやってリターンするんだ?
563デフォルトの名無しさん (ワンミングク MMdf-ZLBY)
2017/11/11(土) 11:07:32.64ID:WYLE0xS1M 普通ならstd::string使う
char使いたい人は使えばいい
おしまい
char使いたい人は使えばいい
おしまい
564デフォルトの名無しさん (ワッチョイ 5feb-ySnM)
2017/11/11(土) 11:11:42.29ID:d7ebwqzc0 256000という数字にセンスを感じるなあ
565デフォルトの名無しさん (ワッチョイ 7f8a-mtQO)
2017/11/11(土) 11:50:48.17ID:yWjpohs20 > char commad[256000];
しかも0が非ascii
しかも0が非ascii
566デフォルトの名無しさん (ワッチョイ 5f9f-zl2n)
2017/11/11(土) 13:26:05.59ID:cTWJmMx00 >>529
いや、commandを何バイト確保しておこうが snprintf() の方を使った方が良い。
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/sprintf.3.html
gcc で asprintf() 使ってもいいなら command は char * でも行ける(その代わり後でfree())。
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/asprintf.3.html
いや、commandを何バイト確保しておこうが snprintf() の方を使った方が良い。
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/sprintf.3.html
gcc で asprintf() 使ってもいいなら command は char * でも行ける(その代わり後でfree())。
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/asprintf.3.html
567デフォルトの名無しさん (ワッチョイ ff7f-wlOk)
2017/11/11(土) 14:07:40.16ID:x64hpPPQ0 scanf("%s"にツッコミなし!
568デフォルトの名無しさん (ワッチョイ 5f9f-zl2n)
2017/11/11(土) 14:52:43.33ID:cTWJmMx00 >>567
あまりに低レベルで目に入らんかったw
あまりに低レベルで目に入らんかったw
569デフォルトの名無しさん (ワッチョイ 7f9d-vLjR)
2017/11/11(土) 17:48:20.77ID:PUzdOh0e0 >んでchar commad[256000];をどうやってリターンするんだ?
だからそれはstringでも同じだな。stringを使えばいいという発想では駄目ということだ。
メモリを確保する必要がある。
しかも、サブルーチンを抜けた後で、何処かでそれを解放する機構が必要だ。サブルーチンを抜けた
後だと自動で解放しない限りは解放する方法はない。つまり肝心なのは自動でメモリ解放機能が
ついていることだ。それがついてないstringクラスなんてこの場合は全く使い道がないってことだ。
だからstringって馬鹿の一つ覚えを言うやつは間違いってことだね。
だからそれはstringでも同じだな。stringを使えばいいという発想では駄目ということだ。
メモリを確保する必要がある。
しかも、サブルーチンを抜けた後で、何処かでそれを解放する機構が必要だ。サブルーチンを抜けた
後だと自動で解放しない限りは解放する方法はない。つまり肝心なのは自動でメモリ解放機能が
ついていることだ。それがついてないstringクラスなんてこの場合は全く使い道がないってことだ。
だからstringって馬鹿の一つ覚えを言うやつは間違いってことだね。
570デフォルトの名無しさん (ワッチョイ df8a-i75N)
2017/11/11(土) 18:01:59.33ID:qx0Cuc+s0 頭おかしい
571デフォルトの名無しさん (ワッチョイ 7fe7-TPjW)
2017/11/11(土) 18:12:16.05ID:NuT5AKLg0 なんかおかしな雰囲気を出してるね
572デフォルトの名無しさん (ワッチョイ 7f33-cd7v)
2017/11/11(土) 18:18:07.19ID:ybMjRTfR0 >>569 std::string はデストラクタで自動でメモリ解放するよ。
573デフォルトの名無しさん (オッペケ Sr33-aNqo)
2017/11/11(土) 18:20:22.00ID:tT1WP+x8r auto f() {
struct { char a[256]; } r{};
return r;
}
int main (){ auto[array] = f(); }
ちょっとスタックが厳しそうだ
struct { char a[256]; } r{};
return r;
}
int main (){ auto[array] = f(); }
ちょっとスタックが厳しそうだ
574デフォルトの名無しさん (ワッチョイ 5f80-UJrp)
2017/11/11(土) 18:43:22.06ID:35XI65Ti0 >>569
本当のバカはその一つすらまともに知りませんでした
本当のバカはその一つすらまともに知りませんでした
575デフォルトの名無しさん (ワッチョイ 5fb3-kEiX)
2017/11/11(土) 19:32:54.25ID:a9mrqTdG0 今どきstd::stringを批判してcharの配列の優位性を説くとか
576デフォルトの名無しさん (ワッチョイ dfcc-TYjb)
2017/11/11(土) 19:56:58.42ID:Hv/PaJUT0 string_viewとか持ち出して言うならともかく
577デフォルトの名無しさん (ワッチョイ 5f80-UJrp)
2017/11/11(土) 20:40:48.77ID:35XI65Ti0578デフォルトの名無しさん (ブーイモ MM83-/Rkm)
2017/11/11(土) 21:23:35.64ID:u9h6IsulM テンプレートって基本ヘッダファイルに書くと思うけど、コンパイル単位ごとに全部コードのコピーが作成されるの?
579デフォルトの名無しさん (ワッチョイ dfcc-TYjb)
2017/11/11(土) 21:25:00.09ID:Hv/PaJUT0 >>577
string_viewって何か知らないのか?
string_viewって何か知らないのか?
580デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
2017/11/11(土) 21:41:30.08ID:4HyMUlDc0 そこでmoveですよ。
581デフォルトの名無しさん (ワッチョイ 7f33-cd7v)
2017/11/11(土) 21:45:04.19ID:ybMjRTfR0582デフォルトの名無しさん (ワッチョイ 5f80-UJrp)
2017/11/11(土) 22:32:22.44ID:35XI65Ti0 >>579
今回の件にstring_view使ってみなよ
今回の件にstring_view使ってみなよ
583デフォルトの名無しさん (ワッチョイ 5f80-UJrp)
2017/11/11(土) 22:37:09.49ID:35XI65Ti0 もしかして
string_viewとか(無理やり)持ち出して(バッファーを解放しないと)言うならともかく
という意味か?
そうだったらそこまでエスパーにはなれんかったわ
string_viewとか(無理やり)持ち出して(バッファーを解放しないと)言うならともかく
という意味か?
そうだったらそこまでエスパーにはなれんかったわ
584デフォルトの名無しさん (ワッチョイ ffb3-TPjW)
2017/11/11(土) 22:42:02.84ID:aJZfBE3c0 みじゅくもの
585デフォルトの名無しさん (ワッチョイ dfcc-TYjb)
2017/11/12(日) 05:09:14.57ID:yBBP+7vl0 >>583
何か勘違いしているか?
俺は生配列を使いたがるガイキチたちを擁護したいわけじゃないし
もちろん意見が一致していない
C++スレなのにC++のライブラリを食わず嫌いしてるフシのあるやつに
ちょっと話題を振ってみただけだ
何か勘違いしているか?
俺は生配列を使いたがるガイキチたちを擁護したいわけじゃないし
もちろん意見が一致していない
C++スレなのにC++のライブラリを食わず嫌いしてるフシのあるやつに
ちょっと話題を振ってみただけだ
586デフォルトの名無しさん (ワッチョイ 5f80-UJrp)
2017/11/12(日) 05:12:35.53ID:srpvXSqe0 エスパー通訳頼む
587デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/12(日) 05:23:52.17ID:nuCi4dlE0 ストリングビューはストレージを保持しないぞ。
外部からやってきたやつに操作を与えるだけ。
パペットっていうかなんていうか。
外部からやってきたやつに操作を与えるだけ。
パペットっていうかなんていうか。
588デフォルトの名無しさん (ワッチョイ 5f80-UJrp)
2017/11/12(日) 05:33:48.19ID:srpvXSqe0 >>587
誰もそんな事は聞いてないんだけど
誰もそんな事は聞いてないんだけど
589デフォルトの名無しさん (ワッチョイ 5f04-uywO)
2017/11/12(日) 07:18:14.98ID:nuCi4dlE0 そっか、当たり前すぎたな。
590デフォルトの名無しさん (ワッチョイ 5feb-ySnM)
2017/11/12(日) 07:30:16.55ID:/72Ra87B0 頭でっかちなアスペ池沼多過ぎか
591デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/12(日) 08:13:37.80ID:SrvHRpLe0 std::stringは有用だがstd::XXXstream系は糞杉
→必然的にsptintf_s()とstd::stringを併用するスタイルになる
いずれワカル
→必然的にsptintf_s()とstd::stringを併用するスタイルになる
いずれワカル
592デフォルトの名無しさん (ワッチョイ 7fbd-OWtR)
2017/11/12(日) 08:22:45.23ID:SrvHRpLe0 および有用だからといってプログラムの動作根拠を成す
数量的関係の把握をサボるというのは話が違う
std::stringにメモリが許す限りいくらでも長い文字列を格納できるから大丈夫とか、
スマポを使っとけばいつか(10万年後かもしれないが)確実に開放してくれるから大丈夫という見込みだけで
テストもせずに青天井なデータ処理を許すプログラムをリリースするのは
素人プログラミングに後退である
ていうか現在の潤沢なメモリ搭載環境では問題の発覚が遅れる分なお悪い
数量的関係の把握をサボるというのは話が違う
std::stringにメモリが許す限りいくらでも長い文字列を格納できるから大丈夫とか、
スマポを使っとけばいつか(10万年後かもしれないが)確実に開放してくれるから大丈夫という見込みだけで
テストもせずに青天井なデータ処理を許すプログラムをリリースするのは
素人プログラミングに後退である
ていうか現在の潤沢なメモリ搭載環境では問題の発覚が遅れる分なお悪い
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” [ぐれ★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★3 [Hitzeschleier★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★3 [七波羅探題★]
- 【今年の漢字】吉村維新代表「成」 万博成功、連立で政策成す [蚤の市★]
- 【MLB】ダルビッシュの息子・ショウエイが大学チームに所属決定 「野球IQを持っている」と監督 183センチ、86キロの恵まれた体形 [冬月記者★]
- 【悲報】産経新聞「インバウンド増やした元凶は安倍晋三」 [616817505]
- ネトウヨ「中国の例の証拠動画、日本側の応答が海自の無線規則とは違うので捏造です」海自の動画でネトウヨの嘘だとバレる [165981677]
- 日本人、世界で最もブランドに興味なし🇯🇵 [462275543]
- 【悲報】ネトウヨ「釧路湿原を守れえぇぇ!!」メガソーラー屋さん「1坪500円でその土地買い取ります☺」 [616817505]
- 【悲報】たぬかなが渡邊渚を壮絶バッシング 「グラビア出したあたりから臭いな~と思ってたが激臭になってたわ。中居は悪くない」 [455031798]
- お昼のまったり🍵😶‍🌫🤏すこすこハウス🏡
