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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2006/12/30(土) 20:07:25 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

49 名前:デフォルトの名無しさん [2007/01/06(土) 11:44:22 ]
連レスすまない。
最初の疑問はComplex環境下でexp(0,3)とすればexp3iになるのかな?

50 名前:デフォルトの名無しさん [2007/01/06(土) 13:40:43 ]
>49
complex<double> A(0,3)
exp(A)
でおk。

51 名前:デフォルトの名無しさん [2007/01/06(土) 14:27:28 ]
こんにちは。
フラグ処理のコードを書いています。
wire_ack_acquirememt_bus[object_numb][wire_wsr_num]
はwire_wsr_num行の中で一つだけアサートすることになっています。
ack_sender = flag_pick(wire_ack_acquirememt_bus[object_numb][wire_wsr_num], 1, SEND_ON_BUS);
で送信者がアサートさせているフラグを拾い、列番号object_numbをピックアップします。
後半コードでその列から若い列、古い列へフラグを埋めていきます(flag_fill(fill_data, fill_target, fill_width, fill_start_bit))。
VC++8でトレースして追ってみているのですが、挙動がおかしく、その問題点を探しているのですが、私には見つけることが出来ませんでした。
flag_pick()、flag_fill()も公開する必要があると思いますが、まずは下記のコードで分かることを教えていただけないでしょうか。
ff_event_check()はソースのアサートとネゲートイベントで1を返し続けます。

52 名前:デフォルトの名無しさん [2007/01/06(土) 14:28:37 ]
>>51
/* ACKNOWLEDGE for ACQUIREMENT*/
i = 0;
sender_no_ack_acq_bus[wire_wsr_num] = 0;
for (wire_wsr_num=0; wire_wsr_num<WSRF_SIZE; wire_wsr_num++)
{
prev_sender_no_ack_acq_bus[wire_wsr_num] = sender_no_ack_acq_bus[wire_wsr_num];
for (object_numb=0; object_numb<SPACE_SIZE; object_numb++)
{
ack_sender = flag_pick(wire_ack_acquirememt_bus[object_numb][wire_wsr_num], 1, SEND_ON_BUS);
if (ack_sender == ASSERT)
{
sender_no_ack_acq_bus[wire_wsr_num] = object_numb;
i = i | ASSERT;
}
}

if (object_numb == SPACE_SIZE && i == NEGATE)
{
wire_reset = NEGATE;
sender_no_ack_acq_bus[wire_wsr_num] = prev_sender_no_ack_acq_bus[wire_wsr_num];
}
else
wire_reset = ASSERT;

53 名前:デフォルトの名無しさん [2007/01/06(土) 14:29:29 ]
>>51続き
wire_temp_ack_acq_bus = flag_pick(wire_ack_acquirememt_bus[sender_no_ack_acq_bus[wire_wsr_num]][wire_wsr_num], 1, SEND_ON_BUS);
wire_event_temp_ack_acq_bus = ff_event_check(&ff_event_temp_ack_acq_bus, 0, &ff_event_holder_temp_ack_acq_bus, 0, wire_temp_ack_acq_bus, 0);
wire_event_temp_ack_bus_assert = wire_event_temp_ack_acq_bus & wire_temp_ack_acq_bus & 1;
wire_event_temp_ack_bus_negate = wire_event_temp_ack_acq_bus & ~wire_temp_ack_acq_bus & 1;

for (object_numb=sender_no_ack_acq_bus[wire_wsr_num]; object_numb>0; object_numb--)
{
wire_ack_acquirememt_bus[object_numb -1][wire_wsr_num] = flag_fill(wire_temp_ack_acq_bus & ~wire_event_temp_ack_bus_negate & wire_reset & 1, wire_ack_acquirememt_bus[object_numb][wire_wsr_num -1], 1, 0);
}

for (object_numb=sender_no_ack_acq_bus[wire_wsr_num]; object_numb<SPACE_SIZE-1; object_numb++)
{
wire_ack_acquirememt_bus[object_numb +1][wire_wsr_num] = flag_fill(wire_temp_ack_acq_bus & ~wire_event_temp_ack_bus_negate & wire_reset & 1, wire_ack_acquirememt_bus[object_numb][wire_wsr_num +1], 1, 0);
}
}

54 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 15:10:15 ]
>>49
exp(complex<double>(0, 3))

55 名前:49 [2007/01/06(土) 18:38:24 ]
>50
あほかwそんな長ったらしい書き方するかよw

>54
できた。ありがと。

56 名前:デフォルトの名無しさん [2007/01/08(月) 06:03:06 ]
【ネガティブ派遣根性チェック】

3つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。

□偽装派遣先の社員の意見にはたとえ間違っていても反対しない
□偽装派遣先から「いつまでもここで仕事してくださいね」と言われるようになりたい
□自社に仕事を持ち帰れるように言われるとムカつく
□自社で仕事なんてできるわけがない
□派遣/受託の差異を指摘する人間はムカつく
□偽装派遣先には仕事だけでなく自分のプライベートについても指示して欲しい
□自分の月額金額を知らない
□偽装派遣先社員より自分の生涯収入が低いのは当然だ
□偽装派遣先に尻尾を振り、いつまでも一緒に仕事をすることが大切だ
□今のプロジェクトが終わっても同じ偽装派遣先に常駐したい


57 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 06:46:39 ]
はい、俺負け組決定!!
きっと本当の人生は来世!!
いや、人間じゃなくて鯨あたりになって、海を悠々自適にすごすのも良いな〜
ってことは、グリーンピース応援しなきゃ。
ビフィズス菌で、胃腸で大活躍ってのも悪くないな。

あー早くポックリいかねぇかな。
親が死んだ後、雷あたりにぶち当たっておっちぬのがベストなんだけどな〜・・・



58 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 12:07:01 ]
なんで「偽装」なの?

59 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 12:29:15 ]
>>58
派遣元は「うちはプロです」と言っておきながら現実には昨日今日入社したばかりの
偽装派遣先に常駐させ、派遣先社員の指示の下で働かせる実質アルバイト派遣業だから


60 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 12:41:10 ]
>>59
あんた馬鹿でしょw

61 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 17:33:41 ]
ワロタ

62 名前:デフォルトの名無しさん mailto:age [2007/01/08(月) 19:59:00 ]
すれ立てるまでもない質問はここでスレが無いのでここで聞きますが
オープンソースのSNSって何がありますかね?
開発言語別で教えて頂けませんでしょうか?
でも、失礼なのでC++でのオープンソースSNSだけでも教えて頂ければと思います

63 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 20:01:56 ]
webprog逝ったほうがいいよ

64 名前:デフォルトの名無しさん [2007/01/08(月) 21:15:49 ]
黄色い「独習C」って本やったことある人いますか?
あの本をマスターするとどれくらいのソフトが作れるようになるんですか?


65 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 21:20:54 ]
>>64
3つくらい

66 名前:デフォルトの名無しさん [2007/01/09(火) 11:38:54 ]
MAME32をジョイスティックで動かすことをしたいのですが
keybd_eventをつかっても動きません
メモ帳で試してみたら、動きました

何か他の方法があるのでしょうか

67 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 13:05:08 ]
constとstatic constの違いを教えてください



68 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 13:23:27 ]
>>67
staticがつくかつかないかです。

69 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 13:24:44 ]
>>67
それが何を修飾しているかによって異なります。

70 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 13:25:27 ]
>>67
Cですか? それともC++ですか?

71 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 13:31:14 ]
C++です。修飾しているのはintやdoubleです。

72 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 13:41:45 ]
前者は定数で後者は静的な定数です。

73 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 16:40:21 ]
整数リテラル0が何故、8進リテラルになるのかが分かりません。教えて下さい。

74 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 16:51:00 ]
スレタイがエロ過ぎると思います。どうにかしてください。

75 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 16:57:09 ]
>>73
0で始まる数値は8進リテラルと決められているからです。
従って、10進リテラルで0を表現することは(事実上)できません。

76 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 20:00:12 ]
じゃ1-1で

77 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 04:38:30 ]
>>73
0でも
00でも
0x0でも
意味は一緒だから気にすんな



78 名前:デフォルトの名無しさん [2007/01/10(水) 05:34:56 ]
0AUと0nmは同じ長さ

79 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 07:32:12 ]
>>77
意味は違います。同じように使えるだけです。

>>78
工学屋から言わせれば、精度が違う。

80 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 17:57:07 ]
int _tmain()
{
for(int n=0;n<=10;n++){
for(int i=0;i<=10;i++){
cout<<n<<" "<<i<<endl;}
cout<<n<<" "<<i<<endl;}
}

とするとiが0から11まで出力されます。10じゃないのかな?なんでだろ。

81 名前:デフォルトの名無しさん [2007/01/10(水) 18:00:31 ]
あげわすれました。よろしくお願いいたします。

82 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 18:02:24 ]
>>80
<=以下
<未満

83 名前:デフォルトの名無しさん [2007/01/10(水) 18:09:20 ]
それは大丈夫です。>80式を動かすとnについては0-10までなのですがiが0-11となってしまいます。
for構文だからi=10のときはi<=10を満たすので「cout<<n<<" "<<i<<endl;」を実行しこのときiは10となります。
その次にiを++するのでi=11となりi<=10を満たさなくなるので、i=11が出力されるはずがないと思ったのです。
なんでなんでしょうか。

84 名前:デフォルトの名無しさん [2007/01/10(水) 18:11:51 ]
n  i
0  1
0  2
・・・
0  9
0  10
0  11

・・・

10  1
・・・
10  10
10  11

となります。変だと思うのです。

85 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 18:19:16 ]
>>84
2行目の
>cout<<n<<" "<<i<<endl;} 
が余計だろう。ここのi は既に内側のforのスコープから外れてるぞ。

86 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 18:21:13 ]
>>80式を動かすとnについては0-10までなのですがiが0-11となってしまいます。
>>84の実行例はiは1-11になってるように見えるが?
>>80で書いたコードと>>84で実行してるコードは違うだろ?

87 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 18:31:57 ]
[完成]
int _tmain()
{
for(n=0;n<=10;n++){
for(i=0;i<=10;i++){
cout<<n<<" "<<i<<endl;}
//cout<<n<<" "<<endl;
}
}

[原因]
指摘をもとに2行目を削除したところ正しく出力されました。ありがとうございました。

[謝辞]
>85
ご指摘の通りでした。2行目が必要だと思っていましたが、実際には不要なものだったのですね。
>86
申し訳ないです。慌てていて>84でiが0の場合が抜けています。

みなさま迅速なご指導ありがとうございました。これで数時間悩んでいてほとほと困っていましたが
解決することが出来ました。

[結果]
n  i
0  0
・・・
0  9
0  10
・・・
10  1
・・・
10  10



88 名前:デフォルトの名無しさん [2007/01/11(木) 19:05:47 ]
Cのprintfにて文字色を変えて表示させたいのですが
\033[31m のような指定では無く
RGB指定で細かくして表示させたいのですが
そのようなことは可能でしょうか?

89 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 19:38:08 ]
世の中そういうことができる環境があるかもしれない。
或いは自分で作ればそういうことだってできるだろう。

90 名前:よろおね [2007/01/11(木) 22:27:20 ]
知人からソースを貰いました。
コンパイルしようとしたら

$ gcc main.c
main.c:6:19: stdio.h: No such file or directory
main.c:7:20: string.h: No such file or directory
main.c:8:20: stdlib.h: No such file or directory

となりました。
「stdio.h, string.h stdlib.h も寄越せ ゴルラ!」と言って一週間。
未だに貰えません。
どうしたらいいでしょう?


91 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 23:03:48 ]
明らかにあなたのビルド環境が異常です

92 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 23:07:36 ]
>>90
stdio.h, string.h stdlib.hは知人から貰うようなものじゃない。
コンパイラをダウンロード・インストールすれば付いてくるもの。
環境さえまともに整えられないのか?

93 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 23:14:02 ]
知人も在る場所知らない希瓦斯

94 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 23:16:11 ]
ワロス.なんでgccがあってstdio.hがねーんだよ(w
ホラヨ(w
つ ftp.gnu.org/gnu/glibc/glibc-2.5.tar.gz

95 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 23:18:11 ]
どうせ
#include "stdio.h"
とか書いちゃってるオチだろ。

96 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 23:20:47 ]
>>95
その場合も、見付からなければ<stdio.h>と書いたのと同じ方法でヘッダを探すことになっており、
gccもそれに則っているから問題ない。

97 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 11:35:58 ]
↓このあと、>95 の「釣れた」宣言



98 名前:偽95 mailto:sage [2007/01/12(金) 15:21:42 ]
Fish On!!
かかったかかったーー!!
ん?あっれぇ〜
根掛かりだ〜

99 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 16:08:14 ]
わらたw

100 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 16:58:50 ]
>>98=99
かわいそす

101 名前:デフォルトの名無しさん [2007/01/13(土) 14:28:22 ]
Microsoft Visual C++ 2005
で.cppのファイル開いてもビルトがでない。
どーやってコンパイルすればいいの!!

102 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 16:07:57 ]
                ‖
           ___  ‖
       /    `ヽ‖
      ,:'      、ゑ
     ,'    ;  i  八、
     |,! 、 ,! |  ,' ,〃ヽ!;、
      |!| l川 l リへ'==二二ト、
     リ川 !| i′  ゙、    ', ',
     lルl ||,レ′   ヽ   ,ノ ,〉
       |川'、  ,,.,.r'"    ,,ン゙
        `T"  ! ,/ '.ノ,/|
         /   ,!´ !゙ヾ{ |
          /   ,'   i ゙ ! ,l゙
      ,r‐'ヽ-、!   ',  l|
      {    `ヽ   !  「゙フ
      ,>┬―/   ;  i,`{
     / /リ川'        ', ゙、
    / ,/            ゙、 ゙、
   ノ  /           ', `、
   \_/   ;          ゙、ヽ、
    l__   !        ___〕 ,、l
       ̄`‐┬―r┬‐r'´ `'‐'′
           |  .! |  |
           |  | .|  |

103 名前:偽95 mailto:sage [2007/01/13(土) 16:09:17 ]
新規作成→新しいプロジェクト→特にソリューションディレクトリが必要なければチェック消す
→プロジェクト名(好きな名前で結構)[OKを押せば勝手に指定した場所の所にプロジェクトフォルダが出来る]
→OKを押して次を押す→windowsアプリケーションじゃないならプリコンパイル済みヘッダーのチェックを消す
→コンソールアプリケーションチェック、空のプロジェクトチェック、そんで完了押す
→左のソースファイルフォルダ右クリック新しい項目追加
→C++ファイルを選んで名前を付けて追加(C言語なら拡張子を.cにする)
→ソース書いてコンパイルしてビルドしてデバッグなしで開始(デバッグするならデバッグで)

104 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 21:06:16 ]
C++で文字列の先頭から、途中までの文字列が一致するか否かを判定する関数は
ありますか?
EX:
比較文字列  2ch

比較対象文字列(一致)
2ch close

比較対象文字列(不一致)
3ch open
こんな感じで判定できるような関数なのですが・・・・・?

Windows2000
VS2005 SDK

105 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 22:03:36 ]
string

106 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 22:52:02 ]
不可解なエラーに悩まされています。
原因はどの辺りにあるかわかりますか?

たとえば、グローバルで定義したint a、int bがあるとして、
プログラム中でa++したときに、なぜかbも一緒に++されてしまう。
aをaaaに変更してみたりその他の関係のない変数の変数名を変更してみたり、
int a=0;と定義するとエラーが出なくなることもある。
しばらくコーディングを進めると今度は違う変数同士が干渉し始める。

どの辺りに起因して同じ領域に違う変数が割り当てられてしまうのか、見当もつきません。

WinXP
gcc(cygwin)

107 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 23:27:22 ]
>>106
gccなんてクソコンパイラ使ってるからだよ。m9(^Д^) プギャー



108 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 23:36:02 ]
>>106
m9(^Д^) プギャー

109 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 23:37:55 ]
>>106
よくわからんで作ってることが原因だな

110 名前:106 mailto:sage [2007/01/13(土) 23:48:16 ]
>>109
わかりました。基本から出直してきます。
ご返答ありがとうございました。

111 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 00:00:46 ]
&b(a);
とか?

112 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 13:25:42 ]
doubleの要素型で、要素数が5の配列の全要素に0.0を代入して表示するプログラムが分かりません。教えて下さい。C++です。

113 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 14:06:06 ]
#include <iostream>

int main()
{
  double d[5] = {0.0};
  for(int i = 0; i < 5; i++)
    std::cout << i << " : " << d[i] << std::endl;
  return 0;
}

114 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 15:00:16 ]
>>113
ありがとうございます!けど実行すると、0が表示されてしまいます....


115 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 15:06:08 ]
確認のために0を表示するように書かれているからだ。

116 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 15:06:50 ]
0というより、0になった配列の各要素と言うべきだな。

117 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 16:12:23 ]
0 じゃなくて 0.0 を表示したいのではないかと esp



118 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 16:15:03 ]
ほれ

#include <stdio.h>

int main()
{
double d[5] = {0.0};
for(int i = 0; i < 5; i++){
printf("%.1lf\n", d);
}
return 0;
}


119 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 16:52:50 ]
>>117
そうです。

>>118
すいません。それはC++の場合はどうすればいいんでしょうか?

120 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 16:57:39 ]
#include <cstdio> 

int main() 

double d[5] = {0.0}; 
for(int i = 0; i < 5; i++){ 
printf("%.1lf\n", d); 

return 0; 




121 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 16:58:12 ]
>>120
ありがとうございます。

122 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 17:08:17 ]
d[i]

123 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 17:44:48 ]
Cプラプラで0.0から1.0まで0.001おきに、その値と、その値の2乗を表示するプログラムって、どう作ればいいんですか?

124 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 17:48:56 ]
>>123
まずはC++のコンパイラを入手し、お前が使ってるPCにインストールする。

125 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 20:08:02 ]
C++なら_asmが使えるからアセンブリで書いてやろうと思ったけどやめた

126 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 22:47:07 ]
int data[10]={0};//dataの中身を全部0で初期化
これをクラスで記述する方法ってあるんでしょうか
struct a{
int data[10];
a():??{}
};

127 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 23:44:50 ]
a() : data() {}でできない?
できないならおとなしく、コンストラクタのブロックの中でstd::fillでもするしかないな。



128 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 00:37:06 ]
>>127
出来ました!こんな書き方があったとは
ありがとう

129 名前:デフォルトの名無しさん [2007/01/15(月) 04:20:32 ]
画像のピクセルサイズを取得したいのですが
どうすれば取得できますか?

130 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 09:05:21 ]
画像ファイルの構造を知る

131 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 15:38:57 ]
男ならwaveだろうがbmpだろうが黙ってバイナリfstream

132 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 18:29:29 ]
>>129
BITMAPINFOを足がかりに

133 名前:Cはできた(過去形)人 [2007/01/15(月) 18:29:34 ]
BorandC++を使ってるんですが・・・        <iostream>ファイルをオープンできません      とでてコンパイルできません・・・          いったいどうすれば・・・

134 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 18:34:02 ]
>>133
お前じゃどうしようもないから諦めろ

135 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 18:46:29 ]
>>133
普通にググったら見落としに気づくかもよ。

136 名前:デフォルトの名無しさん [2007/01/15(月) 18:54:30 ]
分割コンパイルしたオブジェクトファイルをmain.oも含めて静的ライブラリに
まとめた場合、一般にそのライブラリのみで実行ファイルをビルドすることは
できるのでしょうか?
GCCだとできたのですがVCやBCCだとどうなんでしょう?
libfoo.aがmain.o, hoge.oで構成されている場合、GCCの例だと
gcc -o exefile libfoo.a
でexefileという実行形式を作成できました。

137 名前:デフォルトの名無しさん [2007/01/15(月) 18:57:51 ]
256*256の二次元配列を作りたいのですが、実行するとStack overflowとでてしまいます。
どうにか回避する方法はないでしょうか?



138 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 19:06:23 ]
>>137
ヒープに割り当てる


139 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 19:10:57 ]
mainを含んだ静的ライブラリってのは、
Win32のスクリーンセーバライブラリがそんな感じだな。

140 名前:137 [2007/01/15(月) 19:36:29 ]
>>138
すみません。
ヒープに割り当てる方法を教えてください。

141 名前:136 [2007/01/15(月) 19:39:26 ]
今vc8で試してみたのですができませんでした。
具体的には
cl /EHsc /c main.cpp lib.cpp
lib /out:library.lib main.obj lib.obj
cl /Feout library.lib
out.objが開けないとエラーがでてしまいます。

142 名前:デフォルトの名無しさん [2007/01/15(月) 19:46:55 ]
>>140
ヒープに割り当てるというのはmalloc(Cの場合)やnew(C++)などで
動的にメモリを確保することです。
あとは調べればわかるかと思います。

143 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 21:39:29 ]
>>141
できたぞ。
cl /EHsc /Zl /c test.cpp
lib /out:hoge.lib test.obj
link /machine:x86 /entry:mainCRTStartup /out:HOGE.EXE msvcrt.lib hoge.lib
/entryの代わりに/subsystem:consoleでもうまくいった。
またcl経由でリンカを呼び出してもできる。
cl /MD hoge.lib /link msvcrt.lib /machine:x86 /subsystem:console
いずれにしてもLNK4001(オブジェクトファイルがない)という警告が出る。

144 名前:デフォルトの名無しさん [2007/01/16(火) 15:11:25 ]
home.hiroshima-u.ac.jp/~m052291/sdk/index.cgi?event=view&num=246
どこでなにやってるか全然ワカランので、中盤以降に説明つけてください!
あともう少し素人が作ったっぽくなりませんか?

145 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 16:04:06 ]
>>144
それだけ素人丸出しなら充分だと思うが。

146 名前:デフォルトの名無しさん [2007/01/16(火) 22:33:51 ]
Windows上で動くプログラムには仮想メモリが割り当てられてて
プログラムからは仮想メモリしか見えないんだよね?
じゃあメモリエディタってどうやってんの?

147 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 22:50:39 ]
適切な権限さえあればよそのプロセスのメモリだって読み書きできる(真っ先に思い浮かぶのはデバッグ用途)。
大抵は権限の設定なんてやっていないから、同じユーザのプロセスならだいたい読み書きできると思っていい。



148 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 00:14:54 ]
Windowsカーネルは全部の仮想メモリを知ってるから、
API叩いて教えてもらうんだよ。

149 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 11:27:50 ]
実際に物理的なメモリを書き換えているとは限らない
ひょっとするとあなたの書き換えた場所はディスク上の一部かも知れない








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

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

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