[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 05/30 20:56 / Filesize : 25 KB / Number-of Response : 113
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.91【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 15:33:57.11 ID:IT3mOY35]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。
【初心者歓迎】C/C++室 Ver.90【環境依存OK】
toro.2ch.net/test/read.cgi/tech/1395675954/

【アップローダー】(質問が長い時はココ使うと便利)
codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)

hogeは禁止します、使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
なお、hogeはNGワードに追加しておくことが強く推奨されています。

2 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 15:36:26.38 ID:IT3mOY35]
----テンプレここまで-----

↓いつものホゲボット出現に注意してね

3 名前:デフォルトの名無しさん mailto:sage [2014/05/19(月) 22:12:23.53 ID:8TpwFkzG]
>>1乙乙

4 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 00:49:19.55 ID:7hPk5/6F]
>>1乙乙乙

5 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 01:12:34.29 ID:zsbHBSNK]
毎回思うんだけど、hogeをNGワードに設定したら>>1も見えなくなるだろ?
どうしてもhoge禁止って書きたいなら>>2へ書けや!

6 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 01:33:36.62 ID:g8mAFBUR]
>>5
俺もそれ思ったけど、そもそも>>1が荒らしなワケで追及は野暮かなと思ってる

7 名前:デフォルトの名無しさん [2014/05/21(水) 11:15:20.32 ID:t9OqPpuo]
>>1
チョーセン人のチョーセン脳のチョーセンルールをテンプレにいれてるお前はチョーセン人か?
死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。死ね。

8 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 11:52:36.29 ID:fwt+X/Hj]
P p;
クラスPが定義されてます。
pのハッシュを計算するとき
int a=hash((int *)&p , p.p.size());
みたいなことはできますか?

9 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 11:59:00.32 ID:8iD7h9lx]
できない

10 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 12:01:37.73 ID:fwt+X/Hj]
なんで?



11 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 12:06:32.55 ID:8iD7h9lx]
int*からどうやってp.pのインスタンスを触る気だ

12 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 12:09:30.56 ID:fwt+X/Hj]
pをint配列にキャストしてハッシュを計算するだけなんですけど。

13 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 12:14:51.01 ID:nGNzK1pa]
p.p.size() = sizeof(P) なのか
p のハッシュって 環境依存だろうけど vtable も込みでとっちゃうのか
わっかんね

14 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 14:32:05.31 ID:pXfK4nWY]
パディングの問題もある

15 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 15:32:27.38 ID:nGNzK1pa]
p.p.size() が身勝手な数字を返すとしても
常に p.p.size() <= sizeof(P) ならば、ハッシュ値を求めることは出来る
が、求まった値が役立つ数字になるかは、用途によるだろうな

# p.p.size() > sizeof(P) は p の器の大きさを突破するので論外

16 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 17:06:30.68 ID:mq1dIck6]
クラスのオブジェクトのメモリにバイナリでアクセスして
マトモな結果が得られるという思想がクレイジー。
あと任意のバイナリデータをintとして解釈して妥当な値域に収まる保証が無いんじゃないの?

17 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 20:19:35.24 ID:AzCE/Sik]
>>6
ほんとうの荒らしは>>1だからな。

18 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 20:23:17.80 ID:atu2MY7e]
>>1>>7の自演だろう
いつものキチガイQ

19 名前:デフォルトの名無しさん mailto:age [2014/05/21(水) 21:11:17.23 ID:Rtlj0b94]
new で生成したものじゃないものを delete しようとすると
必ずエラーで落ちてくれる?

20 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 21:16:22.33 ID:39Oa8/rN]
>>19
いいえ
アナタはC++に剥かないようなので
他の言語をオヌヌメします



21 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 21:23:58.26 ID:GgA/fGkQ]
>>8
そのクラスにハッシュ出力関数くっつけちゃ駄目なの?

22 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 21:29:06.74 ID:x8uzOYYW]
>>19
operater new と delete を宣言してその中でお好きなようにすれば?

23 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 22:36:56.59 ID:QrOytk9h]
delete malloc(1);

24 名前:片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 [2014/05/21(水) 23:51:35.25 ID:Bu7MBEQj]
x86-64で128ビット整数の割り算と余りを計算する方法を教えて下さい。

25 名前:19 mailto:age [2014/05/22(木) 13:36:42.98 ID:448z5NbE]
そこで聞きたいんだが
new で生成したものじゃないものを delete した時
どのような動作をするの?
関係ないものを解放しているの?

26 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 13:45:35.84 ID:1pePKowy]
> new で生成したものじゃないものを delete した時
> どのような動作をするの?
この時点でなにがしたいの?と言われるだけですが

27 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 14:03:13.60 ID:jxaWow30]
知っても仕方が無い
公開・保障されていない範囲だから知らないうちにある日突然変わるかも知れない
どうしても知りたいならソースを追え

28 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 14:07:23.35 ID:BQfkUUHc]
デストラクタ呼んでfreeしてます

29 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 17:27:21.39 ID:GrRXoNBX]
C で クラスもどきの機構を真似ようとした

与えられるのはポインタだけで、
順次デストラクタを呼ぶ機構をどうやってやってるのか考えると禿げてくる

30 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 19:01:15.75 ID:jxaWow30]
ハゲしくテクにかる!



31 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 20:33:23.58 ID:f9nw6pOH]
>>29
そのへんはXawで鍛えられた

32 名前:25 mailto:age [2014/05/22(木) 21:01:49.17 ID:m4yPgbOU]
new で生成したものじゃないものを delete した時
強制終了しないんだろ?
ならどういう現象がおこっているのか知らないとエラー潰せないじゃん

33 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 21:23:50.27 ID:FK/no5gc]
そんなプログラムを組むことはありません
設計ミスです

34 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 21:27:22.18 ID:zYQWrZOj]
そんなものは「設計ミス」とは言わない

35 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 21:27:46.00 ID:BQfkUUHc]
ただのアホです

36 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 21:37:10.09 ID:WnJxxNfY]
アホでも質問には答えてやれよ

>>19
・規格上の動作
 未定義。
 不正終了したり、何も起きなかったり、他の変数が書き換わったり、
 実行し続けた一ヶ月後に突然a=a+10の結果がa=a+20になったり
 画面に「おちんぽじゅぽじゅぽ」と表示されても文句は言えない

・実際に起こる可能性の高い動作
 不正終了
 アサートエラー表示が出る など

37 名前:デフォルトの名無しさん mailto:sage [2014/05/23(金) 19:17:48.25 ID:iUaEOHFY]
MFCでデータベースを扱うクラスを作ってスタティックライブラリにしたいのですが、
本番用とテスト用でデータベースが違う場合、どのようにしたら一番スマートだと思いますか?
接続するデータベースは決まっていて、プロジェクト側で接続文字列を指定しなくても良いように現在各サーバー毎に『Open本番用』と『Openテスト用』で2つメソッドを作って
切り替えるたびにソース内の呼び出しをいちいち置換しています。
それまではソース単位でプロジェクトごとにソースファイルとヘッダファイルをコピーしていたのですが、
面倒ですし、なにか変更があった場合統一して置きたいってのもありライブラリにしようと思いました。
皆さんの実装方法やいい方法があればご教授ください。

38 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 15:34:47.97 ID:HkjKqa9B]
テンプレートクラスが型パラメータとして相互参照する場面に出くわして
以下のように書きたいのですが、当然コンパイルは通りません。
(クラス名などは例です)
ideone.com/k7bfmh

これを解決する方法はありますか?

39 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 18:06:43.44 ID:rvrMfwzJ]
設計を見直す

40 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 18:46:45.68 ID:sAh2CAr9]
普通に考えて循環参照になってコンパイル通らないと思うんだが



41 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 19:15:38.52 ID:HkjKqa9B]
ありがとうございます、こういう構造は定義できないと理解しました
設計からやり直すことにします

42 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 19:16:58.51 ID:xralQL+2]
struct Itemを外に出せば?

43 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 19:38:13.28 ID:HkjKqa9B]
>>42
外に出しても結局テンプレート構造体になるので
問題が変化しませんでした

というか、これって要するに
 typedef SomeFunc<type_a> type_b;
 typedef SomeFunc<type_b> type_a;
をしようとしていることになるので
「あ、これ無理じゃね」って感覚が一気に強くなりました
どうもお騒がせしました

44 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 19:42:46.21 ID:7oIc/1MI]
そこに気づくとは・・・

45 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 20:03:50.62 ID:xralQL+2]
>>43
ん? 最初の2行言ってる意味がよくわからん

template<typename T>
struct Item {
int id;
T t;
};

typedef SomeFunc<Item<type_item> > type a;
typedef SomeWrapper<Item<type_item> > type b;

になるんじゃないかと思っただけなんだが

省略部分が関係してる?

46 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 20:59:31.89 ID:HkjKqa9B]
>>45
ああ、なるほどItem<T>をSomeWrapperの型引数にするってことですか
確かにそれなら問題ないですね
何か勘違いしていました・・・

現状、実際のコードにおけるSomeWrapper::Itemにあたるクラスが
SomeWrapper内の非public要素にアクセスしまくっているため
安直に外に出すと言うことはできないのですが
(というかこの設計が一番問題な気がしてきた・・・)
教えていただいた方法を踏まえて落としどころを考えてみます
ありがとうございます

47 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 21:00:27.08 ID:trY52c2m]
>>37
接続するデータベースの名前を環境変数で持つとか、プロジェクトの設定で持つとか、設定ファイルで持つとか、
なんとでもなりそうな気がするんだが。

48 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 21:30:07.45 ID:u0AnFpgF]
>>47
知識不足で申し訳ありません。
プロジェクトの設定で持つっていうのは具体的にどうすればいいのでしょうか?
メソッドの引数をプロジェクトの設定で変えることが可能なのですか?

49 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 22:12:01.24 ID:trY52c2m]
>>40
MFCを使っているということは、VisualStudioを使っているということだよな。
ファイル名で言うと、拡張子がvcprojというファイルがあるんだが、それがプロジェクトの設定だ。
それを使って、defineシンボルを定義できる。

50 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 23:40:42.06 ID:m1aGdXHS]
>>37
>プロジェクト側で接続文字列を指定しなくても良いように

まずその腐った非常識な設計を見直す



51 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 23:57:17.36 ID:4PeYCUt9]
まずその腐った設計をぶち殺す

52 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 11:46:22.33 ID:l0k3Jdk0]
Visual Studioだと
WCHAR
wchar_t

UINT
uInt
u_int
UINT32
unsigned int
のように同じ型がたくさんありますが、どれを使うかは自分の好みですか?
いつも適当に使っているので、いろんなのが混じって混乱します。
上級者の人はどういうのを使うのでしょうか?

53 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 11:54:42.55 ID:fNjo4Ias]
stdint.hにあるのを使う

54 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 12:11:34.18 ID:ptXAqcmg]
stdint.h って VisualStudio に入ってたっけ?

55 名前:デフォルトの名無しさん [2014/05/26(月) 12:28:15.07 ID:Dg6ioEfB]
int
unsigned int
などどこにでもついてるやつでいいだろ。

56 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 13:16:36.74 ID:yHJImmyi]
>>52
仕事なら現場のルールに従う
個人なら自分でルールを決めて使う

適当に混在させるのはよくないが
入門レベルならまずそれを超えてから
size_tとはなんぞや?などと考えればいい

Cプログラマーを目指すなら最低限、
それぞれの型定義がどこ由来なのかを把握するクセをつけるべき
C言語汎用 / C++ / WindowsAPI / MFCとかどこかのライブラリ などなど

57 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 14:12:54.68 ID:JWjgxHbr]
>>52
使用するWinAPIに合わせる

58 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 14:37:34.86 ID:2JzRM12h]
WCHAR ← Win32API 由来なので避ける
wchar_t ← ほぼ標準

UINT ← Win32API 由来なので避ける
uInt ← ほとんど見ないんだけど
u_int ← ほとんど見ないんだけど
UINT32 ← Win32API 由来なので避ける
unsigned int ← ほぼ標準
uint32_t ← これじゃない?
u_int32_t ← こっちだったっけ?

59 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 14:54:04.78 ID:OBwWisyn]
int 少なくとも16bit幅でlongを超えない整数
int32_t 32bit幅の整数(C++11以降)。ただし実装しなくても良い

・_・)<規格票では以上でしたっけ?

60 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 15:04:46.92 ID:2JzRM12h]
UINT のところが WORD になってるコードも良く見る



61 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 15:25:08.06 ID:Pt2kiZ/o]
>>52
最低限、intとかdoubleとかのようにサイズが処理系依存で決まる型と
uint32_tとかのようにサイズが決まっている型の区別は付けといた方がいい
(同じことはunsignedとsignedにも言えるが)
APIとかでWCHARのような型があったりするのはそれ用のサイズであることを
仕様上指定する必要があるため(32bit幅あるべきなのに16bit幅しか無いんじゃ困る、みたいな)

だからこそchar型の符号にはよく悩まされるんだけどね……
std::stringの中身が「char」であって「unsigned char」じゃないから、
半角カナを突っ込んで比較とかするのが面倒で面倒で

62 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 16:03:33.53 ID:LnM16LwK]
どうでもいいけど、intはsignedだけどcharはsignedかunsignedかは実装依存。

63 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 16:13:04.61 ID:Pt2kiZ/o]
>>62
だから余計に面倒なのよ……

64 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 16:15:48.54 ID:fNjo4Ias]
半角カナだと何が問題なんだ

65 名前:デフォルトの名無しさん [2014/05/26(月) 16:17:25.94 ID:2JzRM12h]
2バイト文字の半角カナもあったような

66 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 16:25:17.66 ID:4UfKpyVP]
UTF16か

67 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 16:25:50.01 ID:Pt2kiZ/o]
>>64
VC++2013で'。'としてuint32_t型に突っ込んだらどうも処理結果がおかしいから
調べたらどう考えても負数扱いしているとしか思えない……
ソース→codepad.org/X2RKMIT5
結果→i.imgur.com/zYRq8H0.png

68 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 16:27:49.05 ID:4UfKpyVP]
UTF16でも世界中の文字の量考えると足りないから
UTF32にシフトチェンジするらしい・・・

69 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 16:29:09.81 ID:Pt2kiZ/o]
ちなみに食わせたソースコードの文字コードはShiftJIS。
UTF-16にしても結果はShiftJISと同じ。
(EUCやUTF-8だと上3つがそれぞれ「36513」「8471969」に)

70 名前:デフォルトの名無しさん [2014/05/26(月) 17:10:49.29 ID:g2+Lv9f2]
>>68
UTF16だと日本語ですら固定長ではないようだな。



71 名前:デフォルトの名無しさん [2014/05/26(月) 17:16:23.67 ID:8q0+XjUd]
int xとuint yを与えるとx値を0〜yに丸め込み、はみ出る分はループする関数を、
条件分岐を使わずに作りたいですが、作り方がよくわかりません。

y = 3の場合
x値 出力
-4  2
-3  0
-2  1
-1  2
0   0
1   1
2   2
3   0
4   1
5   2

72 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 17:40:43.69 ID:LnM16LwK]
>>71
xの値域が分かっていないと条件分岐なしは難しい。
仮に、x > -y * N なら、(x + y * N) % y でいい。

73 名前:デフォルトの名無しさん [2014/05/26(月) 17:46:01.50 ID:8q0+XjUd]
>>72
x = -2,147,483,648〜2,147,483,647
y = 0〜2,147,483,647
を想定しています。
基本的にyは固定値、xは可変値です。

少し語弊がありました。
x値を0〜yに丸め込み、はみ出る分はループした値を返す関数です。

74 名前:デフォルトの名無しさん [2014/05/26(月) 17:48:14.98 ID:8q0+XjUd]
>>73
あ、これだとy = 0の時におかしくなりますね。y = 1〜2,147,483,647です。

75 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 17:56:31.29 ID:8Gntpxgv]
>71を見る限り

return x % y;

でいいんじゃねーの?

76 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:00:44.78 ID:NEODZvbE]
>>74
y進数にするって事か

77 名前:デフォルトの名無しさん [2014/05/26(月) 18:01:47.44 ID:8q0+XjUd]
>>75
xが負数の時におかしくなってしまいます。
x = -1の場合、出力も-1になってしまいます。
x = -1の場合、出力は y - 1 (>>71 の場合、2)になってほしいのです。

78 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:04:02.34 ID:9FSRxe5k]
%だけだとxが負の時に対応できない

79 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:09:45.13 ID:LnM16LwK]
>>73
xが全域なら、条件分岐なしは難しい。
下手に小細工するより、条件分岐した方がいい。

>>75>>77
だから、>72なのよ。

80 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:16:02.85 ID:8Gntpxgv]
まぁこれを見てくれ
ttp://codepad.org/0tgqjXFM



81 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:16:10.04 ID:OBwWisyn]
いつも思うけどこの手の数値を扱う問題を軽くこなす人って尊敬する・_・

82 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:23:40.04 ID:DE2joRto]
>>80
4以外は?

俺解(もっと簡単にできるかもしれん)
printf("%d, %d\n", x%y, (int)(((long long)x-INT_MIN+(-INT_MIN)%y) % y));

83 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:24:11.39 ID:8Gntpxgv]
よく考えたら処理系依存だったわ
負の数含みで条件分岐なしってメンドクサイね

84 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:34:36.35 ID:4UfKpyVP]
いや、単に (y+x%y)%y でいいと思うぞ

85 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:52:31.12 ID:DE2joRto]
おお、これがファイナルアンサーだな

86 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:55:35.81 ID:8Gntpxgv]
これでどうだ
codepad.org/mGaqnhWY

87 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 19:06:11.70 ID:4UfKpyVP]
こんな感じか
codepad.org/JX8n5tWb

88 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 19:10:11.67 ID:8Gntpxgv]
>>87
それxが負の時「x % (int)y」の部分が処理系依存だよ
codepadだと普通にループしてくれるみたいだから気がつかない

89 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 19:18:02.64 ID:4UfKpyVP]
>>86 それ「(long long)x」の long long がない環境だと動かないじゃないのか?

90 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 00:13:39.24 ID:i4hxiTa4]
>>88
>xが負の時「x % (int)y」の部分が処理系依存

処理系依存とは具体的に
どのような結果の違いが発生しうる?



91 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 00:44:25.21 ID:jH6wT1ov]
>>71の望み通りに場合と負になる場合

92 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 01:05:28.21 ID:hIi+Wv6J]
>>90
すまん、負数の剰余が処理系依存なのはC89までだったらしい

>>89
long longはC99で規格に入ってるから

>86を境界値で試したら…orz
ttp://codepad.org/LXv7f5EE

93 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 04:25:39.53 ID:gYlifBZG]
良いところ取りだとこうなりますかね
codepad.org/2zaDCj6L

94 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 06:45:03.12 ID:zuChiLjA]
>>92
つーか、C99以前は処理系依存だろ。

95 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 06:50:13.55 ID:zuChiLjA]
条件分岐を避けるために、高コストなlong longの割り算か……

96 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 06:58:43.49 ID:CUHkYygv]
パズルのお題なら別に構わないけど、実用としては見た瞬間に意図が伝わらない
コードは書くべきじゃない。

97 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 08:02:25.09 ID:IggqKLQQ]
>>84じゃだめなの?

しかしこのc99の新規格(商を常に0方向に丸める)は俺は好かん。
整数論的には正数yでの剰余は常に0〜x-1とした方がはるかに使いやすい。
現状のCPUの仕様に合わせたんだろうけど、それ作った奴に説教してやりたい。

98 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 08:39:38.04 ID:zuChiLjA]
だからそれはxの値域に制限があるんだってば。

99 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 08:49:17.46 ID:IggqKLQQ]
ごめんまちがえた。y-1までの範囲のこと

100 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 12:37:40.64 ID:exNyWoak]
2の補数は仮定していいだろ
((unsigned int)x - (unsigned int)INT_MIN - ((unsigned int)INT_MIN % y)) % y



101 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 13:36:23.34 ID:gYlifBZG]
>>100
クロック数かなり食いそうな提案だな

102 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 17:50:36.77 ID:W5J/W8/q]
dllを静的リンクってできるの?

103 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 18:12:49.07 ID:tpLo0YfL]
そういうリンカーを作ればできる。
でも見たことは無い。

104 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 18:16:26.13 ID:Q08YOzUU]
PEからOBJを取り出して再リンクかめんどくさそう

105 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 18:26:28.83 ID:2wmi7VyA]
大リーグの打席に立ってホームランを打つのと比べれば
ほんのちょっと実現可能性が高いかな

106 名前:デフォルトの名無しさん [2014/05/27(火) 18:30:17.31 ID:hUdGWYaj]
原理としてはできるだろがやるのがほぼいない。
DLLをそのままつかえ。

107 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 18:45:16.15 ID:tpLo0YfL]
そういうリンカーは手間かければ必ず作れる、大リーグの打席に立つ事とは比べることはできない。

108 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 19:28:26.62 ID:xPg1oxv6]
typedefでポインタ型を定義した際のポインタ表記について教えて下さい。
以下のソースではint**型の変数と、int*をtypedefしたPINTのポインタ変数
を使用してるのですが、これらは同じ意味になっておりますでしょうか?

ttp://codepad.org/BXO76fMg

実行結果はエラーも無く同じ結果となっていますが、特に領域確保の
この部分、

*(n + i) = (int*)malloc(sizeof(int) * ncount);
*(pn + i) = (int*)malloc(sizeof(int) * ncount);

と各要素へアクセスするこの部分、

*(*(n + i) + j) = i * 10 + j;
*(*(pn + i) + j) = i * 100 + j;

について、int**とtypedefしたPINT*の表記が同じであることが非常に疑問で
ございます。
ちょっと頭が禿げそう、つかもう禿げてるんで是非ともよろしくお願いします。

109 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 20:02:45.46 ID:cal2qzHP]
>>108
ゴミのようなソースを出すな
質問したい事項が明確になる最小限のコードを出せ

110 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 20:27:09.10 ID:gGML8YGy]
>>108
なぜ同じだとおかしいと思うの?
nもpnもintへのポインタのポインタでしょ



111 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 20:48:03.93 ID:xPg1oxv6]
>>110
はい、まったくその通りで何もおかしいところはありませんですた。
ありがとうございますた。

112 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 07:11:01.56 ID:BOTVCIcq]
>>71
こんなのでよければ
ttp://codepad.org/wNN6We3f






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<25KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef