[過去ログ] 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
1(1): 2016/11/06(日)22:58 ID:dU5z27As(1) AAS
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。
【アップローダー】(質問が長い時はココ使うと便利)
省5
922: 2017/07/12(水)18:46 ID:+I30gFZ0(3/3) AAS
失礼しますた
923: 2017/07/12(水)18:49 ID:Oma/x2r0(2/2) AAS
oh....
コンパイラも見逃してくれてたからそんなミスとは思いませんでした(´エ`;)
ありがとうございました
924: 2017/07/12(水)19:24 ID:iSKiMIM1(1) AAS
-Wallつけるか、clang使え
925: 2017/07/12(水)21:38 ID:Q4X+sAyq(1) AAS
>>912-914
なんか色々勘違いしてるしどうでもいいから続きはチラウラで頼むわ
926: 2017/07/12(水)23:05 ID:2e79StFo(1) AAS
最近のチラシは両面印刷で困る
927(1): 2017/07/13(木)00:31 ID:/oMuxl/G(1/2) AAS
>>907
>pp[1]= *(pp + 1) は確保していない領域を指すのでこの表現は使ってはいけない
Cの規格をよく読み直したらそうでもなかった
928: 2017/07/13(木)01:06 ID:+2MHjXyv(1) AAS
>>912-914は基礎的なところで間違った理解をしていると
そのうえに乗っかるすべてのものについて間違った理解をすることしかできなくなるという見本のようだ
929(1): ◆QZaw55cn4c 2017/07/13(木)06:27 ID:NDMOLt7F(1) AAS
>>927
>>880
int **pp = &p;
でpp[1] は書いちゃだめだろう?
930(1): 2017/07/13(木)07:12 ID:/oMuxl/G(2/2) AAS
>929
その書いちゃダメを規定する6.5.6p8には「that is evaluated」という条件がある
evaluateはメモリアクセスの有無と関係無く基本的に全て行われるはずだが
6.5.3.2p3の例外既定により該当しないばかりか「&*」が省かれるとある
931: ◆QZaw55cn4c 2017/07/13(木)08:39 ID:045lcfaT(1) AAS
>>930
シンタックスではなくセマンティクスというわけですか‥ありがとう
932(2): 2017/07/13(木)18:16 ID:PDgj9Ebq(1/2) AAS
#include<stdio.h>
#include<string.h>
#define NUM 10
int main(void) {
int length;
char name[NUM * 2 + 1];
char family_name[NUM + 1];
省14
933: 2017/07/13(木)18:29 ID:lX8cJUTX(1/4) AAS
笑われてんじゃね?
934: 2017/07/13(木)18:30 ID:lX8cJUTX(2/4) AAS
マヂレスすると、nameが不定
935: 2017/07/13(木)18:34 ID:a0isPZOF(1/2) AAS
>>932
char name[NUM * 2 + 1] = {0};
936: 2017/07/13(木)18:37 ID:PDgj9Ebq(2/2) AAS
ありがとうございました
937(1): 2017/07/13(木)19:34 ID:b1PvI/zl(1) AAS
どうでもいいけど、
char name[NUM * 2 + 1] = "";
普通こうじゃね?
char name[NUM * 2 + 1] = {'??0'};
これでも良い
コンパイル結果はたぶん全部同じだけど
938: 2017/07/13(木)20:27 ID:bV5zFMan(1) AAS
>>932
俺のところで試してみたらフフフノフフフになった
939: 2017/07/13(木)20:43 ID:lX8cJUTX(3/4) AAS
Visual Studio のデバッグビルドだと、不定メモリをCCで埋める
だからこれに対応する'フ'が表示される
なぜ途中が'ノ'になるかはわからん
strcatではCCの後の0を探してその後に文字列をコピーするから、0の位置によっては例外が発生したり動作がおかしくなったりするかも
940(1): 2017/07/13(木)21:06 ID:a0isPZOF(2/2) AAS
>>937
= {'\0'};のタイプミスだよね?
941: 2017/07/13(木)21:23 ID:lX8cJUTX(4/4) AAS
>>940
タイプミスじゃなくて文字化けした
スマホから見ると、? が◆の中に書かれた文字になってる
942(1): 2017/07/13(木)23:03 ID:xdHlDIka(1) AAS
プログラム終了にexit 0とreturn 0がどう違いますか?
943: はちみつ餃子 ◆8X2XSCHEME 2017/07/13(木)23:59 ID:anRp6w5D(1) AAS
>>942
違わない。
main 内の return は exit と同じ。
944: 2017/07/14(金)19:19 ID:TW7O0pB9(1/2) AAS
というタワゴトで他人を陥れるのであった
945(1): 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)19:26 ID:RoIBY40S(1/8) AAS
exitは死のトラクターが働かない
946: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)19:32 ID:RoIBY40S(2/8) AAS
異常終了以外でexitを使うヤツは素人
947(3): 2017/07/14(金)20:20 ID:8ghhANnS(1) AAS
えっ
mainのreturnでint値返すのはexitをその返り値で呼ぶのと全く等価でしょ?
少なくとも現行のC,C++規格では等価と書いてあるけど現実の実装ではそうなってないってこと?
948: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)20:52 ID:RoIBY40S(3/8) AAS
#include <iostream>
#include <cstdlib>
struct A {
~A() {
std::cout << "OK" << std::endl;
}
};
省4
949: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)20:55 ID:RoIBY40S(4/8) AAS
>>947
どこに書いてあったか? 苦情入れるぞ。
950: 2017/07/14(金)21:04 ID:TW7O0pB9(2/2) AAS
今日の>>945は健常者
後始末される例外ケースについて触れていたら完璧だった
951: 2017/07/14(金)21:06 ID:VdC9hBdZ(1) AAS
atexit で後始末回収機構走らないの?
952: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)21:39 ID:RoIBY40S(5/8) AAS
>>947
どこに書いてあった?
953: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)21:46 ID:RoIBY40S(6/8) AAS
atexitはマニュアルに書いてある通りだから、ここでいちいち説明する必要はない。
954: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)21:53 ID:RoIBY40S(7/8) AAS
マニュアルこそが聖書。マニュアルを読まない奴等はノンプレイヤー。
955: 2017/07/14(金)22:54 ID:RlDfzlps(1) AAS
つまりexit()はバカ発見器ってこと?
956: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)23:01 ID:RoIBY40S(8/8) AAS
C++でexit使うぐらいなら、代わりにC++例外を使った方がいいよ。デバッグしやすいし。
957: 2017/07/15(土)05:41 ID:81gh4ly6(1) AAS
>>947
exit() 関数に入ってしまってはデストラクタが働かないのに,それでも return 文と一緒といいはるの?
それ規格がまちがってるから,そのうち修正がはいるはず
958(1): 2017/07/15(土)13:25 ID:d+yGYUAe(1/6) AAS
ポインタの作法に慣れないです
読めるけどかけないです
959: 2017/07/15(土)16:38 ID:sZ4h7fLQ(1) AAS
ポインタは2段までしか使わないなあ
関数ポインタはstd::functionに入れる癖がついたし
960: 2017/07/15(土)17:20 ID:d+yGYUAe(2/6) AAS
#include<stdio.h>
int unko(int x);
int aho(int *y);
int main(void) {
int a[5] = { 1,2,3,4,5 };
unko(a);
aho(&a);
省13
961: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)17:27 ID:xLcEZRbh(1) AAS
aがint a[5]であるとき、aはint配列の先頭アドレスだ。unkoの引数をポインターにしろ。
962: 2017/07/15(土)17:56 ID:d+yGYUAe(3/6) AAS
はい
963(1): 2017/07/15(土)20:48 ID:iuayY/9E(1) AAS
そもそもこのソースコンパイルエラーになるんじゃね?
964: 2017/07/15(土)21:29 ID:d+yGYUAe(4/6) AAS
>>963
VSだとコンパイラ通るんですが他のだと通りませんか?
あと関数unkoをいろいろ弄ってたんですが
#include<stdio.h>
void unko(int x);
void aho(int *y);
int main(void) {
省19
965: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:31 ID:18nkvKxh(1/7) AAS
型がめちゃくちゃだあああ!!!
型が形無し!
966: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:36 ID:18nkvKxh(2/7) AAS
できることとやってもいいことは違うんだよ。
967: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:39 ID:18nkvKxh(3/7) AAS
コンパイル時に出て来る度重なる警告を無視したらダメだよ。
968: 2017/07/15(土)21:44 ID:d+yGYUAe(5/6) AAS
すみません
969: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:46 ID:18nkvKxh(4/7) AAS
お使いの32ビット環境ではintとint*が同じサイズだから、キャストされれば代入できる。sizeof(int) == sizeof(int*)。
しかし、64ビット環境では動かなくなるかもしれない。ポインター型を無視した良くない書き方だ。
970: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:54 ID:18nkvKxh(5/7) AAS
おそらく、君の環境では、
sizeof(int) == 4,
sizeof(int*) == 4
のはずだ。
64bit環境では、多分
sizeof(int) == 4,
sizeof(int*) == 8
省1
971: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:57 ID:18nkvKxh(6/7) AAS
int*のサイズがintのサイズより大きいと、ポインター(アドレス)の値が正しく代入できない。これが64bitで失敗する理由だ。
972: 2017/07/15(土)22:08 ID:qXQ9KlTo(1) AAS
こまけーことをゴチャゴチャと
Cなんて大なり小なり環境依存な場面しか使わん
貴様はintに32767以下しか入れんのか?
973: 2017/07/15(土)22:10 ID:d+yGYUAe(6/6) AAS
確かめてみたら確かに自分の環境では両方4バイトでした
64bitのプログラムにしたらダメになるんですね・・・
勉強になります。ありがとうございます。
974(1): 2017/07/15(土)22:23 ID:vkKq60sj(1/2) AAS
2レスで失礼します
VC++9Eでruby-opencvのビルドを試みているのですが構文エラーが多発してビルドできません
>C:\dev\ruby-opencv>nmake
>〜
>cl -I. -I. -IC:/dev/ruby-1.8.7-p374/win32/bin/lib/ruby/1.8/i386-mswin32_90 -IC:/dev/ruby-opencv-master/ext/opencv -MD -O2b2xty- /EHsc -IC:/dev/ruby-opencv-master/ext/opencv/ext/opencv
/EHsc -DHAVE_OPENCV2_CORE_CORE_C_H -DHAVE_OPENCV2_CORE_CORE_HPP -DHAVE_OPENCV2_IMGPROC_IMGPROC_C_H -DHAVE_OPENCV2_IMGPROC_IMGPROC_HPP -DHAVE_OPENCV2_VIDEO_TRACKING_HPP
-DHAVE_OPENCV2_FEATURES2D_FEATURES2D_HPP -DHAVE_OPENCV2_FLANN_FLANN_HPP -DHAVE_OPENCV2_CALIB3D_CALIB3D_HPP -DHAVE_OPENCV2_OBJDETECT_OBJDETECT_HPP
省13
975: 2017/07/15(土)22:24 ID:vkKq60sj(2/2) AAS
何らかのファイルが足りないとかならまだ判るのですがこのファイルはVCに付属の物ですし構文エラーなどと言われても理解できません
algorithm.cppは一番最初のファイルで全く進まない状態です
ちなみにRubyとOpenCVのビルドは一応通っています(本当に問題ないかは未確認)
C/C++は不慣れでVSの使用経験もあまりないため原因の見当も付かず手詰まり状態です。もし何か判る方がいたら教えてもらえると助かります
976(1): 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)22:27 ID:18nkvKxh(7/7) AAS
readというマクロが悪さをしているようだ。#include順を変えるか#undefしろ。
977: 2017/07/15(土)22:35 ID:Z+b63Gri(1) AAS
>>958
使わずに済むのなら無理して使う必要は無いだろ?
正しく動けばそれでいい
978(1): 974 2017/07/16(日)12:18 ID:wcmK4agw(1) AAS
>>976
すみません。その場所の特定ってどのようにすればいいのでしょうか
比較的規模の大きいライブラリですし、インクルードしているファイルだけでもかなりの数になりそうです
ファイルの検索とテキストエディタだけでは追えそうにありません
追跡を支援してくれるツールとかないんでしょうかね・・・
979: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/16(日)12:28 ID:flrpsNzv(1) AAS
>>978
IDEのフォルダ内検索か、
grepツール
980: 2017/07/16(日)15:16 ID:1O/pViqJ(1) AAS
マクロ展開したソース吐くオプションあったよな
VCなら外部リンク:d.hatena.ne.jp
1.ソリューションエクスプローラ上で展開後の結果を見たいcppファイルを右クリック⇒
プロパティ⇒プリプロセッサ⇒前処理済みファイルの生成⇒行番号つきか行番号なしを選択
2.再びソリューションエクスプローラ上で展開後の結果を見たいcppファイルを右クリック⇒コンパイル
これで、cpp が置かれているのと同じファイル階層に、cppと同じ名前だけど拡張子が.iになってる
ファイルができてるからそれがそうだよ
省1
981(1): 2017/07/16(日)17:55 ID:i1aK64sE(1/2) AAS
class Kitty {
public:
char *str;
Kitty() { str = "Kitty on your lap\n"; }
Kitty(const Kitty &obj) { str = "Di Gi Gharat\n"; }
} g_obj ;
int main() {
省6
982(1): 2017/07/16(日)18:11 ID:0XlWr73/(1/2) AAS
「int i; のセミコロンの前に変数g_objがあるんですがどういう意味ですか」
と訊いているに等しい
983: 2017/07/16(日)18:13 ID:0XlWr73/(2/2) AAS
訂正
誤 変数 g_obj
正 変数 i
984(1): 2017/07/16(日)18:25 ID:dVrh8pbL(1) AAS
g_objはKittyのインスタンスだが
あまりこういう書き方はしないかもね
985(1): 2017/07/16(日)18:31 ID:ZbG5GhXO(1) AAS
>>981
Kitty と言うクラス定義とその型を持つ g_obj と言うグローバル変数を同時に定義している
要するに
class Kitty {
...
};
Kitty g_obj;
省1
986(1): 2017/07/16(日)18:48 ID:i1aK64sE(2/2) AAS
>>982 >>984
レスありがとうございます
>>985
わかりやすい解説ありがとうございました
987(1): 2017/07/16(日)22:25 ID:Z5uaiz2p(1) AAS
>>986
それはさておき
>str = "Kitty on your lap\n"
このウンコード、何かおかしいとは思わないのかね
988: 2017/07/17(月)00:15 ID:+UBTk6HR(1) AAS
>>987
ウンコードは食べるとニガいからな
989: 2017/07/18(火)05:08 ID:gGqeofJB(1) AAS
ほ
990: 2017/07/18(火)07:08 ID:vzMDiUgd(1) AAS
次スレ立てたにゅ
【初心者歓迎】C/C++室 Ver.101【環境依存OK】
2chスレ:tech
991: 2017/07/18(火)19:37 ID:bPzCLpNs(1) AAS
おつ
992: 2017/07/18(火)22:55 ID:KX2fhuwb(1) AAS
ひょっとして2ちゃんのこのスレ
他のC/C++相談所よりハイレベル!?
993: 2017/07/19(水)07:02 ID:Jp1Fyagp(1) AAS
うめてんてー
994: 2017/07/19(水)07:03 ID:Cx7F+3jm(1) AAS
梅
995: 2017/07/19(水)10:27 ID:MRnyPI+k(1) AAS
他のC/C++相談所ってどこ?
996: はちみつ餃子 ◆8X2XSCHEME 2017/07/19(水)16:13 ID:AV+hYp2C(1/3) AAS
SNS の C++ コミュニティとかじゃね?
997(1): 2017/07/19(水)17:00 ID:Si/VL0fD(1) AAS
それトリ割れしてるよ
#o%K%H:+O
998: はちみつ餃子 ◆8X2XSCHEME 2017/07/19(水)17:08 ID:AV+hYp2C(2/3) AAS
>>997
知ってるけど成りすましは一度しか出てきてないのでまあいいかなって。
999(1): 2017/07/19(水)17:33 ID:bGQD/KSW(1) AAS
このスレにはQさんがいるからな
Qさんがいれば安心だ
1000(2): はちみつ餃子 ◆8X2XSCHEME 2017/07/19(水)17:43 ID:AV+hYp2C(3/3) AAS
>>1000 を取れたら長門は俺の嫁
1001(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 254日 18時間 45分 34秒
1002(1): 1002 ID:Thread(2/2) AAS
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
省7
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s