[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 08:32 / Filesize : 231 KB / Number-of Response : 986
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

スレを勃てるまでもないC/C++の質問はここで 10



1 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:35:36 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
pc11.2ch.net/test/read.cgi/tech/1187521676/
スレを勃てるまでもないC/C++の質問はここで 4
pc11.2ch.net/test/read.cgi/tech/1221633708/
スレを勃てるまでもないC/C++の質問はここで 5
pc11.2ch.net/test/read.cgi/tech/1230516307/
スレを勃てるまでもないC/C++の質問はここで 6
pc11.2ch.net/test/read.cgi/tech/1231564903/
スレを勃てるまでもないC/C++の質問はここで 7
pc11.2ch.net/test/read.cgi/tech/1232983248/
スレを勃てるまでもないC/C++の質問はここで 8
pc12.2ch.net/test/read.cgi/tech/1235921779/
スレを勃てるまでもないC/C++の質問はここで 9
pc12.2ch.net/test/read.cgi/tech/1240022781/

504 名前:503 mailto:sage [2009/06/01(月) 01:27:01 ]
#if foo
# if bar
#  include <momo.h>
# else
#  include <taro.h>
# endif
#endif

こうな。


505 名前:デフォルトの名無しさん [2009/06/01(月) 01:36:32 ]
Windows98のメモ帳でのプログラムの実行の仕方を教えて下さい
因みに入力したのはC言語のprintf何たらの簡単なプログラムです


506 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 01:41:44 ]
書いたコードをここに貼り付けて、右下のボタンを押せ。
ttp://codepad.org/


507 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 05:53:03 ]
>>502
俺もそう書くわ。
特に多いのが
#ifndef __BORLANDC__
 高度な処理;
#else
 低度な処理;
#endif
みたいにコンパイラで処理を分けたりとか、あとはデバッグの時かな。


508 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 06:27:58 ]
1.下の多重ループで「A」は何行何列に表示されるか.
for(j=1;j<=2;j++) {
for(k=1;k<=3;k++) {
printf("A");
}
printf("\n");
  }
2.下の多重ループで「A」は何行何列に表示されるか.
for(j=1;j<=5;j++) {
for(k=1;k<=4;k++) printf("A");
printf("\n");
  }

1は2行3列で2は4行5列ですか?


509 名前:デフォルトの名無しさん [2009/06/01(月) 07:30:16 ]
>>506
すみません
ネットに繋げてないのでメモ帳での方法を教えて下さい

510 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 10:56:47 ]
>509
別にメモ帳だろうが何だろうが、Cのプログラムには関係ないよ。
もちろん効率とかは違うだろうけど。

511 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 11:32:44 ]
>>509
エスパーすると、コンパイラの使い方がわからないんだろう
そもそも509はC言語のコンパイラを持っているのか?
例えばVC,BCC,GCCなど。

512 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 12:13:08 ]
持ってないだろうねえ。でも、
最初の一歩も自分で踏み出せない奴を
どうにか歩かせたところで無駄じゃね?



513 名前:デフォルトの名無しさん [2009/06/01(月) 13:27:29 ]
最小2乗法によるm次の多項式近似を行うプログラムを教えてください
教えて

xがー2の時yが3.02
−1の時0.98
0の時1.22
1の時2.16
2の時2.61         の時のです
出来ればソース全文書いてください




514 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 14:16:58 ]
>出来ればソース全文書いてください
>出来ればソース全文書いてください
>出来ればソース全文書いてください

515 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 14:20:25 ]
>>513
マルチすんなカス

516 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 16:18:56 ]
符号なしenumがほしいんですが、なにか代替案はありますかね?今は
typedef const unsigned long uenum_t;
uenum_t foo = 0, bar = 1, hoge = 2 ・・・;
みたいに地道に書いて我慢してるんですが
省略記法が使えなくてめんどいし、メモリももったいない気がします

517 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 17:25:11 ]
半角テキストファイルを読み込んで使用する場合
空白文字も含めて一つの変数orクラスに格納したいんですが
どうすればいいでしょうか?
というかなぜ空白で一々区切られるのでしょうか?
EOFでいいじゃないですか?

518 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 17:27:29 ]
getlineでいいんじゃない?

519 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 17:49:17 ]
getlineって一行だけじゃなかったっけ?

520 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 20:39:48 ]
whileのループをEOFで抜けだし、出力するようにしたのですが、
出力後、プロンプトが出てきません。ctrl+Zで中止しないといけない状態です。
なぜ出てこないのでしょうか?

よろしくお願いします。

521 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 20:44:30 ]
ループにでも入ってるんじゃない?

522 名前:デフォルトの名無しさん [2009/06/01(月) 22:51:06 ]
for(a=0;a<3;a++){
for(b=0;b<20;b++){
     if(hensu<0){
       処理1;
}
else{
       処理2;
     }
}
}

このようなfor文で、処理1もしくは処理2を実行したら
二つのfor文を一度に抜けたいのですが、どうすれば可能でしょうか?
処理のあとにbreakひとつじゃ後のfor文しかぬけないため、また処理1か2を実行してしまうので
困ってます。
goto文?というのはなるべく使いたくないのでそれ以外で何か簡潔にできますでしょうか?



523 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:55:08 ]
俺は普通に終了フラグを作る

524 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:56:20 ]
典型的な「gotoを使うと綺麗に書ける例」だな。

どうしても使いたくないなら
 ・ループ終了を示すフラグ用の変数を用意しておき、そのフラグの値をチェックして外側のforループから抜ける
 ・全体を関数にしてしまい、returnで抜ける
とかどうか。


525 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:58:27 ]
int end = 0;
for(a=0;a<3 && !end;a++){
for(b=0;b<20 && !end;b++){
if(hensu<0){
処理1;
end = 1;
}
else{
処理2;
end = 1;
}
}
}

もしくは関数化して、returnで抜けるとか。

526 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:00:31 ]
男3人が結婚かよ

527 名前:デフォルトの名無しさん [2009/06/01(月) 23:09:54 ]
C言語の本を買ってきて、printfなるものをWindowsのメモ帳に入力したけど、どうしたら実行出来るの?

528 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:12:53 ]
C言語の本に書いてあるんじゃね?

529 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:13:08 ]
そのC言語の本に実行までのやり方が書いてないなら、
それが書いてある入門本を買いに本屋に走るんだ。

530 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:13:10 ]
そのC言語の本を1ページ目から読み返せ。
それで分からなければタイトル晒して燃やせ。

531 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:13:58 ]
また多重婚だねっ♪

532 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:19:00 ]
2重のループを無理やり1重のループに変換する



533 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:20:52 ]
aに3を入れる

534 名前:デフォルトの名無しさん [2009/06/01(月) 23:21:06 ]
>>523-524
フラグをつくる場合、>>525さんが書いて頂いたような
フラグの仕方が一番コード書く上では綺麗なのでしょうか?

関数化もよさげですね。ただあまり関数を増やしたくないのもあるので
使わずにすむならそっちのが使いたいです

535 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:22:34 ]
フラグと書いた俺はフラグが基本だ。他は好みだろ

536 名前:532 mailto:sage [2009/06/01(月) 23:25:30 ]
誰も思いついてない方法だから俺様の勝ち

int a, b;
for(x=0; x<60; x++){
  a = x/20; b = x%20;
  if(hensu < 0){
    処理1;
  }
  else{
    処理2;
  }
}

537 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:26:55 ]
>>536  −見るー> >>532

538 名前:デフォルトの名無しさん [2009/06/01(月) 23:29:37 ]
・ループ終了を示すフラグ用の変数を用意しておき、そのフラグの値をチェックして外側のforループから抜ける

あれでもこれだと、内側のループをまずbreakで抜けて、抜ける前にフラグをたてて
で、抜けたあとに外側をそのフラグでみるということかな?
でも外側のループから抜けるってどうやるんだろう

539 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:34:46 ]
例の通りなら hensuの比較bool だから a=0,b=0 時点で必ずループ終了を要求することにならないか?

540 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:35:11 ]
つうか処理1もしくは処理2は初回で確実に実行されるんじゃないのかfor文いらなくね

541 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:36:36 ]
俺もそれ思ったwアルゴリズムが変

542 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:47:28 ]
>>534
2重ループくらいなら、あんまり汚くはならんでしょ。たぶん。
実際の書き方は十人十色だろうけどね。
個人的には、forの条件式のところに書くよりは、新しくif〜breakを作る方が好き。

あと、もう1つ。
関数呼び出しにかかる時間が致命的で、少しでも減らしたいというのでもない限り
基本的に関数を増やす方向で進めた方がいいと思うよ。


>540-541
まあ、実際のコードとは違う可能性もあるし、そこは突っ込むほどのことでもないんじゃない?



543 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:56:17 ]
>538
すごく単純に書くと

for ()
{
 for ()
 {
  end_flag = 1;
  break;
 }
 if ( end_flag == 1 ) break;
}

544 名前:デフォルトの名無しさん [2009/06/02(火) 00:04:31 ]
書いてない
近所にそんな本置いてない
Amazon登録(会員?)してない
晒した後に燃やす意味がわからない


メモ帳ってテキストエディタだよね?C言語によるプログラムはどうやって実行するの?

545 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 00:07:04 ]
Cの入門書なら絶対に書いてある。
万が一書いてなければ、それは間違いなく悪書なので燃やしても咎められないだろう。
ついでに、同じような被害者を出さないためにも、タイトルを晒しておこう。

くらいの意味。
要約すると、「1ページ目から読み直せ」ってことだ。

546 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 00:30:19 ]
void型のWINAPI関数、ABC()があるとします。

void WINAPI ABC()

VOID WINAPI ABC()

には違いがありますか?(voidが小文字か大文字か)

547 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 00:34:47 ]
>546
どっかで、「VOID は void の別名ですよー」って定義されているかどうかによる。
結論から言うと、たぶんそうなってる。


548 名前:デフォルトの名無しさん [2009/06/02(火) 00:53:27 ]
>>542
なるほど。関数を呼ぶと時間がかかるのですか。
かなり高い頻度で呼び出すのでできればはずしたいかな。

書いてなく申し訳ないですが、おっしゃるとおり実際は
forで回している変数を処理1,2で使っているので何とか抜けないといけないのです。

見た目で行くとやっぱり関数ですねー。
一気にfor二個抜けるbreak2みたいなのがあればいいですね(笑)

549 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 00:58:34 ]
>548
>関数を呼ぶと時間がかかる

それこそ1/60秒間に1000回呼ばれ、マシンの性能の極限まで詰め込みたい……とかいうのでもない限り
普通に関数使っとけw

550 名前:デフォルトの名無しさん [2009/06/02(火) 01:00:46 ]
goto文使ってたり多重ループがあるだけで、
コードレビューが合格にならないキチガイISOマンセープロジェクト
って、この世からなくなればいいのに

551 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 01:29:22 ]
>>522

for(〜){
  for(〜){
    if(hoge) break;
  }
  if(hoge) break;
}

552 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 01:42:18 ]
そのループ処理を関数に切り出して、
抜けたいところで return してしまうのも一つの手。



553 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 01:55:55 ]
>551-552
実際の質問の直後のレスを見ようぜ

554 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 03:49:46 ]
go to文は有害だよ
どんなネストごちゃまぜなソースでもちゃんと普通に抜けだすコード書いたほうがいい
go to文はあとから見た時可読性が著しく落ちる まじで

555 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 03:53:11 ]
その部分をまるっと関数化してreturnで抜けだすのと
gotoにそこまで違いがあるのかどうかw


556 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 04:01:36 ]
for(a<3){ for(b<20){
if(){if(hensu){}else{},a=3;continue;}
}} // bループの外に処理があるなら }if(a<3){ }}


で十分じゃないの?

557 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 04:02:07 ]
>>554
フラグ変数とか多用されるよりgoto使ってくれた方が追うの楽だし、
そもそもgotoつかえば深いネストしなくて済むことも多い。

558 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 04:05:36 ]
フラグ変数を使って深いループを抜ける事は、仮想関数を
使うべき所にswitch文やif文で多重にネストした醜いプロ
グラムを連想させる

559 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 04:18:03 ]
質問。
あるクラスから派生したクラスを作るとき、その派生クラスを強制的にシングルトンにさせる方法ってありますか?
派生クラスに自前でシングルトンパターンを実装するしかないのでしょうか?

>goto
まあ俺みたいな初心者は
少しは綺麗になるかも?と思ってもgotoを使わない方向で書いた方が安全ってことだな!


560 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 06:19:47 ]
gotoが必要になる事ってほとんど無いんだけど。
ちゃんとクラス設計しているのか?
・・・と思ったが、C言語の場合はクラス設計もクソもないな。

561 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 06:26:12 ]
gotoも使いようだよ
ifとかwhileで書けるなら、gotoでなくそっちを使うべき、ってだけ

いずれにせよクラスは関係ないな

562 名前:デフォルトの名無しさん [2009/06/02(火) 07:30:53 ]
>>545
最初っから読んだが載って無いな
悪書なのは分かったが買ったからには100%使う予定

で、メモ帳はテキストエディタっていう程だからプログラムを実行出来るんだよね?ググっても良く分からんのだよorz



563 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 07:37:44 ]
>>562
じゃぁ、初心者向けの本じゃ無かったんだろ。
自分のレベルにあった本を買えるようにしような。

564 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 08:04:55 ]
もっと高級なテキストエディタじゃないと実行できないんだよ。

565 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 08:14:21 ]
>>582
C言語なら、コンパイラというプログラムが必要だ。それをつかえ。
コンパイラにも色々種類があるが、C言語用のコンパイラな。

566 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 08:48:14 ]
>>564
嘘は言っていないから困る

567 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 09:54:40 ]
まあ基本は、「エディタは編集するものであって実行するものじゃない」

568 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 12:38:23 ]
>562
念のため、本のタイトルを。

569 名前:デフォルトの名無しさん [2009/06/02(火) 12:59:30 ]
わかた
コンパイラは自力で探してみる

因みに購入したC言語本は
www.amazon.co.jp/gp/aw/d.html/ref=mp_s_a_1/376-2471770-0113248?qid=1243914976&a=4797327928&sr=1-1
コンパイラについて書いて無かった気がしたけどなぁ

570 名前:デフォルトの名無しさん [2009/06/02(火) 13:00:55 ]
あ、コンパイラはC++用でもおKなの?


571 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 13:02:32 ]
/                     \
              、   ヽ\    ヽ
. /  , /    !    ∨丁ヽ い   |    /二フ”
/  ! |   ィ 「\   | ハ   l |   ,′    /
l   ! | / /j/   '.  ノ, =、!// /j/      ヽ/
l   い/ ,, =x j/ ′   〈j/       /ヽ
ト ._  \_〃         :.:.:.:.}           /二フ”
l l { 下 ̄ .:.:.:.:  -‐1   ∧          /
l l T ‐个 ._     ー'  イ l|         ニニ!
l/ /|  l l//下二千ヽ_l い          ─┘
' / .′ l,ノ\/// 小、|、\ヽ\          「〉
Ul  /  / \/ U` \ヽl i      r_|
Ul l    i      !   ト ヽ |


572 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 13:29:57 ]
>569
ちょっと軽く評判を調べてみたんだけど、「実行する方法が書いてない」「やたら間違ってる」なんて話がチラホラあった。
1から読み直せとか、さんざん疑ってしまってスマン。




573 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 13:31:19 ]
>>571 質問者はケータイみたいだし、AAでの返答はしないほうがいいんでね?

574 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 13:37:19 ]
>>570
今のC++コンパイラはたいていCも扱える

575 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 13:39:07 ]
やっぱりぼうようか

576 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 13:42:25 ]
>>573
もともと >>571 に、真面目に答える気があるとも思えん。

577 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 14:08:56 ]
これは酷い
labaq.com/archives/51093225.html

578 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 14:12:23 ]
夏休みまだだよな?

579 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 14:13:22 ]
年中夏休みですがなにか

580 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 14:25:09 ]
VB、C#、C++だと.NETフレームワークの使い方って全然違ってくる?
.NETフレームワークの用途毎の使い方が載ってる本がほしいので
「.NET Frameworkプログラミングテクニック―for Visual Basic/C#」
を買おうかと思うんだが今使ってる言語はC++なんだ・・・

581 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 14:46:50 ]
C#がいいお

582 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 14:51:25 ]
>cat test.cpp
#include <iostream>
template <typename _T>
struct base { typedef size_t size_type; };
#ifdef CANNOTCOMPILE
template <typename _E>
struct A:base< A<_E> >{
#else
struct A:base< A >{
#endif
  size_type s;
};
#ifdef CANNOTCOMPILE
  typedef A<int> type;
#else
  typedef A type;
#endif
int main(void)
{
  type a;
  a.s = 10;
  return 0;
}
>g++ test.cpp
>g++ test.cpp -DCANNOTCOMPILE
test.cpp:10: error: ‘size_type’ does not name a type
test.cpp:10: note: (perhaps ‘typename base<A<_E> >::size_type’ was intended)
test.cpp: In function ‘int main()’:
test.cpp:20: error: ‘struct type’ has no member named ‘s’

頭がこんがらがってよくわからなくなってしまったのですが、
テンプレート版でsize_typeが継承されてないのはなぜでしょうか?



583 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 15:31:35 ]
public base

584 名前:デフォルトの名無しさん [2009/06/02(火) 15:31:42 ]
マイクロソフトの最新版らしいので安心して使用してみます

べっかんこから見ているのでAAも安心です

では、おいとまさせて頂きます

585 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 15:33:26 ]
おとこは黙ってVisual J

586 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 16:33:41 ]
涙で>585が見えない


587 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 16:55:46 ]
>>569
amazonの中身が読める所だけみたが
3ページの上の方に、プログラムの実行方法は
「処理系や実行環境によって異なりますから
みなさんが利用している処理系のマニュアルなどを参照してください」
と書いてある

まぁ、完全な初心者にはそもそも「処理系」って何?ってなるから
これじゃつまづくな

588 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 18:56:19 ]
訳語の「処理」が大外れではないけど意味を採り難い語だからね

「処理乾酪」でヤバさ倍増な感

589 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 19:33:34 ]
>>580
ライブラリ自体の使い方は同じだから、そういう目的ならVB/C#向けでも構わないと思う。

590 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 21:39:01 ]
同じ名前のメンバ変数を持ってるクラスを継承しちゃったらどうなるの?

591 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 21:50:55 ]
>>590
継承の仕方による。

多重継承ならスコープ解決演算子で名前解決することになる。

多重継承でなく、単一の継承を繰り返した場合は
派生クラスのメンバ変数の名前が基底クラスの
メンバで同名なものを「全て」隠蔽する。

これ以上は、実例を挙げるのがめんどくさいので、誰かよろしく。

592 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:34:12 ]
すいません、VS2005で外部ライブラリをソースコードの中に記述して取り込む方法をど忘れしてしまいました、教えてください。



593 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:37:41 ]
絶対ど忘れじゃねーだろwwwww

594 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:40:00 ]
pragman

595 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:06:16 ]
そうだった
#pragma comment(lib,"ws2_32.lib") これでよかった、thx>>593ぶた野郎

596 名前:デフォルトの名無しさん [2009/06/03(水) 06:42:31 ]
メモリ上のポインタをファイルポインタで開くことはできますか?

597 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 06:58:06 ]
できません

598 名前:582 mailto:sage [2009/06/03(水) 16:54:38 ]
よろしくお願いします。

599 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 17:59:15 ]
すまん質問させて貰う

下のように定義した関数があり
void funcA( const char *pszA, const char *pszB, const char *pszC );

funcBで色々と処理した後に、funcB内でfuncAを呼ぶと
pszBとpszCのアドレスが変わってしまう

pszBに渡されるアドレスが本来0x1000だとすると、0x1200となる
デバッガで渡される直前の中身と、funcAで受け取った中身が違ってるのも確認済み
これの原因で考えられるのはメモリ破壊のみだろうか?
funcAとfuncBは別々のモジュールで実装されているんだが
WinMainを呼んで他に処理をする前に
すぐにfuncBを呼んでも、同様の現象が起きてる

そこの機能だけを一つに纏めて実験すると問題無く動作する
IDEはVC++2008 ExpressEdtion

正直訳が分からない。よろしくお願いします。

600 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:27:56 ]
char const * (const char *)
const なcharへのポインタ。アドレスは変わっても良い。データはconst。

char * const
charのポインタがconst。アドレスはconst。データは変わってもよい。

char const * const (const char * const)
const な char のポインタがconst。アドレス、データ共にconst

601 名前:599 mailto:sage [2009/06/03(水) 18:51:25 ]
自己解決した

構造が
main.cpp
dialog/dialog.cpp
shell/shell.cpp
resource/resource.cpp
という風にモジュール分けしてて

funcB内で別のモジュールの処理を呼ぶんだが
そのモジュール(funcB内で呼ぶ処理)自体は結合度が凄い低い

そのモジュールのヘッダに
#include "../hogehoge.h"
とアプリ全体の共通ヘッダをインクルードしたら解決した

そのモジュール自体、他の機能全く使わないのに
何でこれで解決するのかが分からないが…

スレ汚しすまない

602 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:56:43 ]
>>601
アドレスは変わっても良いってコンパイラに伝えてるんだから、当然アドレスはいつか突然変化する。
今回変わらなかったのは単なる偶然。



603 名前:599 mailto:sage [2009/06/03(水) 19:17:16 ]
例えば
void func( const char *pszHoge )
と定義して

char szHoge[] = "hogehoge";
szHogeのアドレスが0x1000として
func( szHoge );
とすると、func側のpszHogeは必ずしも0x1000ではないって事?
同じアプリのメモリ空間だから、アドレスが変わるっていうのは知らなかった

でも、今回のはアドレスも変わって、中身も変わってた

604 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:18:46 ]
すまん、記述ミスがあった
×pszHogeは必ずしも0x1000ではないって事?
○pszHogeが指すアドレスは0x1000ではないって事?






[ 続きを読む ] / [ 携帯版 ]

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

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