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


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

タダで使えるBorland C++ Part3



1 名前:デフォルトの名無しさん [03/05/31 23:13]
一応Part3を立てておく。スレ需要がなければ下がるのみ。

機能無制限で使える本格的な無料コンパイラBC++についてのスレ。
ダウンロードはこちらから。

www.borland.co.jp/cppbuilder/freecompiler/

進行は遅いですがまったりやりましょう

前スレ
part1 > pc3.2ch.net/test/read.cgi/tech/1002377328/
part2 > pc2.2ch.net/test/read.cgi/tech/1030493157/

関連スレ
C++相談室 part10
pc3.2ch.net/test/read.cgi/tech/1029315669/
C Builder相談室 Part3
pc3.2ch.net/test/read.cgi/tech/1016065855/
Generic Programming with C++ Template
pc3.2ch.net/test/read.cgi/tech/1008593126/



431 名前:デフォルトの名無しさん mailto:sage [04/01/09 00:25]
とりあえずconio.hをインクルードしてgetch()使えば何かキーを叩くまで窓が閉じない。
コマンドラインから叩くのがいいんだけど。osがxpならpowertoysでどこでもコマンドラインに逝けるので楽。

#include<iostream>
#include<conio.h>

using namespace std;

main()
{
 cout <<"hello world";
 getch();//これ入れとくとキー入力待ちになる。
}


432 名前:421 mailto:sage [04/01/09 03:31]
もしここが質問する場所でないのなら警告してください。
テキスト読んで早速、1から150までの和を求めるコードで・・
main( )
{
int x, y;
y = 0;

for ( x = 1; x <= 150; x++ )
{
y += x;
}

printf("1+2+3+4+......+150 = %d\n", y );
}

となりますが、「+=」の捕らえ方で躓きました(情けないです)。
この場合、x=x+yの意味なのはわかりますが、それをforで繰り返す
ところで???

このコードでは、for1回目で得られたy+=xの結果をy1と考え、
for2回目で得られたy+=xの結果をy2と考え、以下も同様にして

y150=y1+y2+y3+.......+y150 の計算が行われていて、つまり
x2=x1+y といった風に、左辺のxと右辺のxは全く別のものと
解釈するのでしょうか?

手元の参考書にはそれらしき記述もないし、この程度の理解は
暗黙の了解なんですか?
先行き不安です。

433 名前:421 mailto:sage [04/01/09 03:36]
欝だ・・・訂正です。

この場合、y=y+xの意味なのはわかりますが、それをforで繰り返す
ところで???

このコードでは、for1回目で得られたy+=xの結果をy1と考え、
for2回目で得られたy+=xの結果をy2と考え、以下も同様にして

y150=y1+y2+y3+.......+y150 の計算が行われていて、つまり
y2=y1+x といった風に、左辺のyと右辺のyは全く別のものと
解釈するのでしょうか?

>>425
とまぁ、こんな調子でございます。アハハ・・ハァ(;-_-)
本当に習得できるか不安。

434 名前:デフォルトの名無しさん mailto:sage [04/01/09 03:38]
ここは Borland C++ コマンドラインコンパイラのスレなので、C/C++ 言語向け初心者板にいくか、
身近のプログラマの友達に聞いた方がよいと思う。

ま、ついでですから。

あなたの疑問は結構正当かつ、よくある質問です。ですからあまり気にしないように。


1 から 3 の和をとるとして、for 文は繰り返しを指示する構文なのでこれを展開してみます。
y は 0 に初期化されているとして、

y = y + 1;
y = y + 2;
y = y + 3;

この3行の意味は理解できますか?




435 名前:デフォルトの名無しさん mailto:sage [04/01/09 03:38]
>>429
たとえば test.exe として作ってるなら、ちゃんと
test HIKISUU1 argv2 3
のように実行してみたかな?
そのプログラムが置いてあったページの説明嫁

436 名前:デフォルトの名無しさん mailto:sage [04/01/09 07:43]
>>433
「y2=y1+x」を繰り返しても「y150=y1+y2+y3+.......+y150」にはならないし、そういう意味でもない。
xの値も毎回変わっていくから添え字がついて、「y2=y1+x1」。
それを繰り返すと「y151 = y150+x150 = (y149+x149)+x150 = ... = y1+x1+x2+x3+...+x150」。
y1=0で、xは1から150まで増えていくので、上の式は1から150までの足し算を表してる。

こう考えるより、「yという箱に、毎回xの値を注ぎ足していく」と考えたほうが直感的だと思う。
1回目はyの値が0でxの値が1だから0+1という計算をして、その結果yには1が入る。
2回目はyの値が1でxの値が2だから1+2という計算をして、その結果yには3が入る。
3回目はyの値が3でxの値が3だから3+3という計算をして、・・・。

左辺のyと右辺のyは同時に考えるんじゃなくて、右辺で今のyの値を使って計算した結果が新しく左辺のyに入る。

437 名前:デフォルトの名無しさん mailto:sage [04/01/09 07:47]
それにしてもみんなやさしくていいスレだな。

438 名前:デフォルトの名無しさん mailto:sage [04/01/09 17:19]
人が少ないうちは余裕があるからな

439 名前:デフォルトの名無しさん mailto:sage [04/01/09 21:48]
情報求む。
Visual Windows for BC++
ttp://phys.cool.ne.jp/physjpn/bccwin.htm
ここに何やら
「Borland C++ Compiler 5.5」日本語版には欠けているファイルがある
とかいう話が載ってるんですが詳しい人詳しいことを頂けないでしょうか?
気になってしまう。



440 名前:デフォルトの名無しさん mailto:sage [04/01/09 22:53]
>>439
その記事を書いている人に聞いてみたら?

441 名前:デフォルトの名無しさん [04/01/09 23:25]
>>439
補完ファイルを解凍して中を見ればいいじゃん
bhcommon.ver,commctrl.rh,common.ver,crsmsg.inc,d3dvec.inl,dde.rh,
dtbase.cpp,dxhelp3.cpp,dxsurfb.cpp,fileopen.dlg,findtext.dlg,font.dlg,
icmui.dlg,ilogobj.hxx,msacmdlg.dlg,msacmdlg.h,msado15.h,msapcdlg.h,
msclus.h,mscpydis.h,msdadc.h,msdaguid.h,msdaora.h,msdaosp.h,msdasc.h,
msdasql.h,msdatsrc.h,msdetect.h,msdshape.h,msfs.h,msgemit.h,mshtmcid.h,
mshtmdid.h,mshtmhst.h,mshtml.h,mshtmlc.h,msi.h,msidefs.h,msimdb.h,
msiquery.h,msjetoledb.h,msp.h,mspab.h,mspaddr.h,mspbase.h,mspcall.h,
mspcoll.h,mspenum.h,msplog.h,mspst.h,mspstrm.h,mspterm.h,mspthrd.h,
msptrmac.h,msptrmar.h,msptrmvc.h,msputils.h,msregdb.h,msremote.h,
msshared.h,mstask.h,msterr.h,mstv.h,mswsock.h,msxmldid.h,mtsevents.h,
mtsgrp.h,mtx.h,mtxadmin.h,mtxadmin_i.c,mtxattr.h,mtxdm.h,multimon.h,
nal.h,naltypes.h,nddeapi.h,nddesec.h,neterr.h,network.h,newpst.h,
nladmin.h,nspapi.h,ntddndis.h,ntdsapi.h,ntdsbcli.h,ntdsbmsg.h,ntquery.h,
ntsdexts.h,ntsecapi.h,ntverp.h,objcreator.h,objectty.h,objerror.h,
objpath.h,objsafe.h,ocidl.h,odbcinst.h,odbcss.h,oid.h,oldplib.h,
ole2ver.h,oleacc.h,olectlid.h,oledb.h,oledbdep.h,oledberr.h,oledlg.dlg,
perf.inc,prnsetup.dlg,verinfo.ver,winnt.rh,winuser.rh

442 名前:421 mailto:sage [04/01/09 23:59]
昨日、あの後少しforについて考えました。

自分のforにたいする考え方があっているかどうか確認するために
以下のコードを打ってみました。1〜3までを足してみようと。

main( )
{
int x;
x = 0;
printf("%d\n", x += 1 );
printf("%d\n", x += 1 );
printf("%d\n", x += 1 );
}

forを使わ無い場合どうしたらよいのか考えた結果です。
なんだか観点が間違ってるような気がしていましたが、結果は良好でした。

443 名前:421 mailto:sage [04/01/10 00:06]
ああ・・また間違えた。上は1〜3を表示しようとした結果です。
明らかに着眼点がずれていますけど、1個目のprintfと2、3個目のprintf
の結果が違うということは、1回目のprintfが2回目のprintfに影響し、
それがforでも同じことが言えると確認できました。

で、>>434さんのアドバイスで
{
int x, y;
y = 0;

y = y + 1;
y = y + 2;
y = y + 3;

printf("1+2+3 = %d\n", y );
}
で良好な結果。おかげさまでようやく何かが掴めました。
結局>>436さんの解釈が妥当かつわかりやすいです。

上手く言いあらわせられないのですが、n行目の演算とn+1行目の演算は
独立ではないということですね。


444 名前:421 mailto:sage [04/01/10 00:11]
そろそろウザがられそうなので名無しにもどり、質問板へ移ります。
お世話になりました。

>>435
できました。びっくりしました。

445 名前:デフォルトの名無しさん mailto:sage [04/01/10 00:20]
おつかれ

446 名前:デフォルトの名無しさん mailto:sage [04/01/10 04:42]
広い意味での「副作用」という概念を、ヒトが身につける瞬間だぁ。
ほとんどのプログラマがくぐり抜けてきた門なんだなぁ
>>444 ガンガレ

447 名前:デフォルトの名無しさん mailto:sage [04/01/10 18:18]
Visual Windows for BC++
やばくない?BCC55を含んでるやつインストールするとTurboDebuggerが・・・・

448 名前:デフォルトの名無しさん mailto:sage [04/01/11 01:47]
tb32.exe入ってなかったよ
スクショ見て一つ気づいたのは
エディタカーソル位置の解析(関数名表示etc.)がついてること
BCC developer 1.2.18時点ではまだなかったっけ

俺はBCC developerと両方入れて両方競合せず使えてるって報告待ち

449 名前:デフォルトの名無しさん mailto:sage [04/01/11 01:50]
bcc55s.exe内部にあったのか。気づかなかったスマン
こりゃ迂闊だね



450 名前:デフォルトの名無しさん mailto:sage [04/01/11 01:55]
何も考えずにmissing.exe実行してカレントがhでうまってヴァー

451 名前:デフォルトの名無しさん mailto:sage [04/01/11 11:38]
BCC developerは開発終了したいらしいね
かわりに継続してくれる人募集してた
かなり便利だから続けてほしいなぁ

452 名前:デフォルトの名無しさん mailto:sage [04/01/11 11:42]
開発終了か。悲しいなあ
いろいろフリー入門を試したけど、余計なところに邪魔されず
C/C++プログラミングに集中できるBCC developerに一番助けられた。勉強もはかどった
まぁ、終了したからといって今不便があるわけでもなし
これからも現役でバリバリ使ってくよ

453 名前:デフォルトの名無しさん [04/01/11 12:43]
phys.cool.ne.jp/physjpn/bccwin.htm

454 名前:デフォルトの名無しさん mailto:sage [04/01/11 15:47]
>>453
これももう少しバージョンアップすれば使えるかもね
とりあえず強調表示とデフォルトフォントを・・・

455 名前:デフォルトの名無しさん mailto:sage [04/01/12 15:38]
webにサンプルとして上がってるWin32APIがらみのC++ソースを
お手軽に一発ビルドできる環境が全部フリーで整うなら、
贅沢はいわないYO

実際、それが一番難しいことだったりする。
中の人がみなそう思ってるとは限らないんで。

456 名前:373 mailto:sage [04/01/12 20:23]
>382
亀レスだけど、リアルタイム表示が上手くいきました
avi作成もライブラリは見つけて、幸せになれそうです。ありがとん。

457 名前:デフォルトの名無しさん mailto:sage [04/01/14 06:38]
tasm32.exe需要ある?

458 名前:デフォルトの名無しさん mailto:sage [04/01/14 18:18]
>>457
需要はあるかもしれんがUPは犯罪。
NASMを使う人が多いんじゃないかな

459 名前:デフォルトの名無しさん mailto:sage [04/01/15 16:18]
>>457
tasm32ならBuilderXのフリー版についてくるがそれじゃダメなのかい。



460 名前:デフォルトの名無しさん mailto:sage [04/01/17 13:19]
他スレで質問したのですが、答えが得られなかったので、このスレで質問させていただきます。

Windows上で DLL を作ってるのですが、
DLLを呼び出すアプリは自作のものではなく、デバッガの使い方で困ってます。
ブレイクポイントを設定したりしてDLLのデバッグをすることは可能なのでしょうか?

環境はbcc+TurboDebugger と gcc+gdb です。

461 名前:デフォルトの名無しさん mailto:sage [04/01/17 14:16]
>>460
TD では可能です。gdb でも可能でしょう。
具体的にどういう問題を抱えているのですか?

462 名前:デフォルトの名無しさん mailto:sage [04/01/17 17:01]
>>461
レスありがとうございます。

どういう手順でデバッグするのかがわかりません。
DLL を呼び出すプログラムを TD で読み込んでも、デバッグ用の情報はないので、
"Program has no symbol table" と表示されます。
DLL 自体を TD で読み込んでも、"Program not found"と表示されます。

DLL をデバッグする時の基本的な方法がわかっていないので、
教えていただけると嬉しいです。

463 名前:デフォルトの名無しさん mailto:sage [04/01/17 17:20]
bcc32 -debug とかそんなスイッチがあったと思った。それを使えば、
デバッガ用のsymbol tableがオブジェクトに埋め込まれ、
ブレークポイントでTDでのデバッグができるはず。

肝心なのはdebugオプションをつけたときは
全部のソースを再コンパイルしなきゃいけないってこと。

bccでのdllづくりはこのあたりにも解説があるね
ttp://www.kumei.ne.jp/c_lang/bcc/bcc_11.htm

464 名前:デフォルトの名無しさん mailto:sage [04/01/17 18:11]
>>463
すみません、説明不足でした。
DLL の方は、-v -y オプションもつけて、デバッグ用にビルドしています。
問題は、その後のデバッグ方法です。

DLL を呼び出すプログラムは BCC で作られてはいなく、
デバッグ情報も埋め込まれてないと思います。

このような状況でのデバッグ法を知りたいので質問しました。

465 名前:デフォルトの名無しさん mailto:sage [04/01/17 20:29]
>>416 はどうよ
ASSERT、VERIFY、TRACE、どれも役立つと思うぜ

466 名前:デフォルトの名無しさん mailto:sage [04/01/17 22:30]
>>465
便利そうですね。
これから使っていこうと思います。

467 名前:デフォルトの名無しさん mailto:sage [04/01/22 19:45]
スレッドクラスってどうやって作ってる?

468 名前:デフォルトの名無しさん mailto:sage [04/01/28 21:47]
とりあえず保守

469 名前:デフォルトの名無しさん [04/02/05 20:02]
age



470 名前:デフォルトの名無しさん mailto:sage [04/02/09 02:55]
フリーなC++統合環境でお気楽にDirectXでゲームでも作ろうかなと思ったが
案外敷居高そうだなぁ…
とりあえず >>67 >>242 >>299 ありがとう

471 名前:デフォルトの名無しさん [04/02/14 11:49]
windows2000上でコンパイルしたプログラムを実行したら
「NTVDM CPUは不正な命令を検出しました」 ってエラーが出る
同じソースをwindowsME上でコンパイルしたプログラムだと問題ないんだけどな

472 名前:デフォルトの名無しさん mailto:sage [04/02/14 12:11]
なぜここに

473 名前:デフォルトの名無しさん mailto:sage [04/02/14 12:24]
BCCでコンパイルしたプログラムだったから

474 名前:デフォルトの名無しさん mailto:sage [04/02/14 13:47]
ソース全部見せれば誰かが原因や対策をつきとめるかも知れないけど、
ただエラーが出るといわれても、いわれたほうは困るだけだな

475 名前:デフォルトの名無しさん [04/02/14 18:32]
まるまる全部だされてもそれはそれで困る

476 名前:471 mailto:sage [04/02/14 19:29]
oオプション使ってコンパイルするとエラーが出るっぽい

477 名前:デフォルトの名無しさん mailto:sage [04/02/14 19:51]
o? -O ではなくて?

command.com と cmd.exe でそれぞれプログラムを実行してはどうだ。

478 名前:デフォルトの名無しさん [04/02/15 22:05]
BC++を始めたいのですが、ダウンロードページが開けません。
もうダウンロードできないのでしょうか?


479 名前:デフォルトの名無しさん mailto:sage [04/02/15 22:13]
死んでいる。www.borland.co.jp/



480 名前:デフォルトの名無しさん mailto:sage [04/02/15 22:31]
鯖落ちしてるだけで数日待てば直るとかか?

481 名前:デフォルトの名無しさん mailto:sage [04/02/15 22:36]
漏れも今日ネトカフェ逝ってDelphi+Kylix落とそうとしてだみだった。
生き返れボーラン!

482 名前:デフォルトの名無しさん mailto:sage [04/02/16 01:18]
見られるよ。

483 名前:デフォルトの名無しさん mailto:sage [04/02/16 01:30]
生き返ったね

484 名前:デフォルトの名無しさん [04/02/17 11:39]
Perlを昔やってたときに使った「crypt関数」を使ってC言語でも
暗号化をしたいのですが、うまくいきません。
とりあえずgoogleで検索して試してみたのですがcryptが定義されないとか出てしまいます。

#include <unistd.h>
#include <stdio.h>

int main (void)
{
 char *salt = "nW";
 char *pass = "pass";

 printf("%s\n", crypt(pass, salt));

 return 0;
}

どなたかご教授お願いします。

485 名前:デフォルトの名無しさん mailto:sage [04/02/17 11:58]
crypt()の前の<unistd.h>ではエラーが出ないのだろうか・・・

486 名前:デフォルトの名無しさん [04/02/17 12:05]
>>485

調べたらそのファイルがありませんでした。

wincrypt.hというのはあったんですが、これは違うみたいなのです。

どうやればいいのでしょうか・・?

487 名前:デフォルトの名無しさん [04/02/17 12:28]
暗号なんかいっぱい公開されてるし、違う奴使いなよ、とか言ってみる。

488 名前:デフォルトの名無しさん [04/02/17 12:40]
>>487

Perlのと同じ動作をさせたいのでcryptでないとだめなのです。。
検索するとC言語で書いたコードはあるのですが、
そこでインクルードされてるファイルが自分のところには無いのです。

こういうものってどこかで配布されてたりするのでしょうか?
rpmファイルをダウンロードしてみたのですが、これは利用できるのでしょうか?


489 名前:デフォルトの名無しさん [04/02/17 13:21]
www.bayashi.net/st/pdmemo/crypt.html
によるとMD5かDESらしいから、MD5かDESどっちになってるかを調べた後、
MD5かDESのソースを拾ってきて、同じ動作をするように改造



490 名前:デフォルトの名無しさん mailto:sage [04/02/17 13:40]
たぶんMD5ではないかな?

RFCにCソース有り。
ttp://www.akanko.net/marimo/data/rfc/rfc1321-jp.txt

491 名前:デフォルトの名無しさん [04/02/17 13:48]
やっぱり自分で作るしかないのかぁ・・

ちなみにMD5ではなくDESです。


492 名前:デフォルトの名無しさん [04/02/17 13:49]
www.akanko.net/marimo/data/rfc/rfc1321-jp.txt

493 名前:デフォルトの名無しさん mailto:sage [04/02/17 14:03]
apacheの認証なんかでも
unix系の環境とwin環境でhtpasswordが違うのでそのまま転送しても使えない
という話題が度々出る。
原因はもちろん、windowsのみMD5を使っているため。

494 名前:デフォルトの名無しさん [04/02/17 14:04]
.htpasswd

495 名前:デフォルトの名無しさん mailto:sage [04/02/17 15:41]
Windowsのみってわけじゃないが

496 名前:デフォルトの名無しさん [04/02/17 17:36]

BCCで簡単なGUIアプリを作る解説があるサイト無いでしょうか?
ゲームとかではなく、単純に、入力ボックスに数値を入れて
ボタンを押すとその値に応じて計算して、結果を表示するような簡単な
GUIアプリでいいのですが。。


497 名前:デフォルトの名無しさん mailto:sage [04/02/17 17:42]
>>496
猫とか

/*
悪い事言わんから、おとなしくDel/BCBかVC#でもつかっとけ
*/

498 名前:デフォルトの名無しさん mailto:sage [04/02/17 19:58]
金があるなら問答無用でそのあたりを買っとくべきだな、本ごと。

無いなら猫とかその他いろいろやってみるのもよし。
質問する前に最低限のことを調べている程度の気合のある奴だ、とわかれば、
ちゃんと答えてくれる人もいるだろう。

499 名前:デフォルトの名無しさん mailto:sage [04/02/17 20:03]
検索キーワードをうまく選べない人なのかもな



500 名前:デフォルトの名無しさん mailto:sage [04/02/18 01:29]
>>499
ぐぐるのも2chに書き込むのも同じに考えてる人でしょ

501 名前:デフォルトの名無しさん mailto:sage [04/02/18 04:05]
おまいらが考えている以上に素人がgoogleを使うのは難しいらしいぞ

502 名前:デフォルトの名無しさん mailto:sage [04/02/18 04:37]
まず検索キーワードという発想がなかなか身につかないらしいね

えんえんとリンクたどるだけだったり

503 名前:491 mailto:age [04/02/18 10:53]
昨晩からいろいろやってみたのですがうまくいきませんでした。
unistd.hというのを一般的には使ってるらしいのですが、米国で規制が
かかってるらしく私のところには入っていませんでした。

似たようなのを探して、

ghanyan.monazilla.org/trip.html

というのを見つけたのですが、使い方がよく分かりません。

実際にcrypt関数を使うソースには、des.cとcrypt.hをincludeすればよいのでしょうか?
そもそも拡張子がcのものをincludeすることは出来るのでしょうか?
trip.hもincludeして、

printf("%s",get_2ch_trip( pw ));

としてみたのですが

エラー E2141 c:\BCC\include\des.c 320: 宣言の構文エラー

コンパイルエラーが出てしまいます。どのようにしたらよいのでしょうか?

504 名前:デフォルトの名無しさん mailto:sage [04/02/18 12:29]
Googleは慣れないエスカレーターに乗る難しさ

505 名前:デフォルトの名無しさん [04/02/18 13:52]
ちょっと行き詰っています。aからzまでを表示したあと

a
.
.
z

今度はaa ab acというように1桁増やして5桁あたりまで連続
ループさせようと思っています。

aa
ab
.
.
az
ba
.
.
bz
ca
.
.
zz
aaa
aab

このようなコードを書いてみたのですが文字列結合時に
データ型が違うためうまくいきませんでした。

www.uploda.net/anonymous/etc2/upload21487.txt

ご教授お願いします。

506 名前:デフォルトの名無しさん mailto:sage [04/02/18 13:56]
>>504
 ('A`)ノ  <何が言いたいのか理解できません。
┳━┳


507 名前:デフォルトの名無しさん mailto:sage [04/02/18 13:59]
>>505
ポインタに対する理解が全くない
取りあえず、配列の正しい使い方を覚えましょう

508 名前:デフォルトの名無しさん mailto:sage [04/02/18 14:00]
使ってる人には難しくないってことだ

509 名前:デフォルトの名無しさん mailto:sage [04/02/18 14:10]
>>506
田舎のおばあちゃんが、都会で働いている息子の家に孫の顔を見るため
はるばるやってきたが、駅のエスカレータに乗れなくてまごまごしている図



510 名前:デフォルトの名無しさん [04/02/18 14:12]
>>503
#include "des.c"する。

以下の関数をコメントアウト
strchr
_DllMainCRTStartup

__declspec(dllexport)があるなら削る。

printf("%s",get_2ch_trip("pw"));が動くようになる。


511 名前:デフォルトの名無しさん mailto:sage [04/02/18 14:16]
>>503
ソースを全部見てないんでよくわからんが、
そのソースは、ぎこはにゃ〜んで使うdllのソースじゃ?
dllとしてメイクするか、適当に書き直して使うかせにゃ。


512 名前:デフォルトの名無しさん mailto:sage [04/02/18 14:17]
あいや、かぶった。↑無視してちょ

513 名前:デフォルトの名無しさん mailto:sage [04/02/18 15:47]
>>505
ポインタは、文字列「ではない」。ただのアドレス変数だ。アドレスって知ってる?
まず配列を学ぶこと。それからポインタを学ぼう。

教えた経験が無いから、こんなサンプルで良いのかわからないけど…
#include <stdio.h>
int main(int argc, char *argv[]){
char buf[16], *p;
p = &(buf[0]);
*p++ = 'a'; *p++ = 'b'; *p++ = 'c'; *p++ = 0;
printf("%s\n", buf);
}


514 名前:505 [04/02/18 17:13]
レスありがとうございます。
ポインタについてはCASL2をやってたことがあるのでなんとなく理解できました。
それで、新たにコードを書いてみたのですが、思ったとおりの動作をしませんでした。
printfで変数を書き出してちょこちょこ確認してみたのですが、
どうやら1桁目が終わって、

continue

を入れて2度目のループを開始させると配列chrが参照できなくなっていました。
1度目のループのとき、chr[0]とすると、「a」と出るのですが
2度目のループだとnullが出てしまいます。

そーす
www.uploda.net/anonymous/etc2/upload21489.txt


515 名前:505 mailto:sage [04/02/18 17:21]
自分としては、1桁目が終了したらcontinueでwhileまで戻し、
2桁目を開始させ、s1[0]に'a'を書き込んだら、再起処理をし、
次に書き込むときはポインタを1つ後ろにずらして
aa
ab
ac
とさせようとしたのですが、エラーはでないのですが期待した動作をしませんでした。


516 名前:デフォルトの名無しさん mailto:sage [04/02/18 17:21]
>>514
パッと見だけど、s1用のメモリはどこに確保してるんだ?

517 名前:デフォルトの名無しさん mailto:sage [04/02/18 17:45]
5桁分のchar配列用意して
各桁をインクリメントしていくfor文をネストするんじゃだめなの?
(桁数に対する汎用性がないけど)

518 名前:507 mailto:sage [04/02/18 17:45]
>>514
>ポインタについてはCASL2をやってたことがあるのでなんとなく理解できました。
なんとなく理解できたって、
全く理解出来てないから、そんな訳の分からないソースになるんだって

519 名前:505 mailto:sage [04/02/18 17:50]
>>516
メモリの確保は最初に決めないとだめなんでしょうか?
宣言だけしておいて、あとから確保ということはできないのでしょうか?

ご指摘の通り、メモリをとりあえず10だけ確保して、
strcatからstrcpyに変えてみたところ

a
.
.
z
aa
.
.
az

まではうまくいきました。まだ動作がおかしいのでもう少し直してみます。




520 名前:デフォルトの名無しさん mailto:sage [04/02/18 18:02]
そろそろ入門書10回通読指令出していいですか?

521 名前:デフォルトの名無しさん mailto:sage [04/02/18 18:10]
>>519
>宣言だけしておいて、あとから確保ということはできないのでしょうか
何処で確保してるつもりだったんだ?

522 名前:デフォルトの名無しさん mailto:sage [04/02/18 18:16]
> char *s1 = "";
ここで、s1には "" を格納するためのアドレスが入っていて
そのアドレスの先には '\0' を入れるための 1byte 分のメモリしか
確保されていない。

523 名前:505 mailto:sage [04/02/18 18:25]
再帰処理してやっと何桁でも対応できるようになりました。
どうもありがとうございました。

>>522
つまり*s1="a"とした場合、s1[0]のアドレスにa、s1[1]に\0が
入り、2byte分しか確保されないということでしょうか?
変数s1は桁数なので、桁数が上がるほど確保しなければならいのですが、
こういう場合も、やはり最初に確保しておくしかないのでしょうか?
とりあえず今はs1[10]としてあるんですが、9桁を超えた場合、
メモリが足りなくなって誤動作してしまうので、確保しなおしたいのですが。

524 名前:デフォルトの名無しさん mailto:sage [04/02/18 18:27]
某家電(量販)店が無償で配布されているオープンソースソフトウェアを自社開発と称して
自店商品の機能向上を謳って抱合せ販売していた模様。
また、この店ではオープンソースソフト単独でも販売し利益を得ていたようです。
開発元には、クレーム等の連絡先として開発者のメールアドレスを勝手に表記されていた為、
問い合わせメールが殺到し開発者のWebページが閉鎖に追い込まれています。(2004/2/16現在)
【店の身勝手で阿呆な言い分】
「これで有名になったんだから良かったと思ったほうがいい」
「ユーザーサポートの費用払ってやってもいい。
 その代わりソフトの権利はウチの会社でもらう。月1000円」
「所詮タダで配ってるソフトだから誰の著作権も何もない、
 ウチでつくってるといえばウチのもんだよ。」
詳しくは下記スレにて熟知せよ。
news4.2ch.net/test/read.cgi/news/1077067632/


525 名前:デフォルトの名無しさん mailto:sage [04/02/18 18:28]
>>523
malloc()とfree()を使うなり、アルゴリズムを見直すなり…

526 名前:デフォルトの名無しさん mailto:sage [04/02/18 18:34]
>>525

new() と delete()を(以下略

527 名前:505 mailto:sage [04/02/18 19:13]
なるほど、動的にメモリを確保できるんですか。
Perlとかだとメモリの確保とか気にしないで出来たのでとっつきにくいですね。
C++だとnew()とdelete()がよいらしいのでこれを使ってみます。
どうもありがとうございました。

528 名前:デフォルトの名無しさん [04/02/18 20:10]
レス遅くなってすいません
>>510さん
そのやり方でやったら確かに動いたは動いたのですが、
トリップとして出てきてしまいます。
perlのcrypt関数と同じ動作をさせたいのですが・・
スレ違いのような気がしてきたのでC++相談室に移動します。
申し訳ございません。

529 名前:デフォルトの名無しさん mailto:sage [04/02/18 23:30]
>527
c++ならstlつかえばresize()も簡単。だけどあんたの場合それ以前の問題外な状況だったわけさ




530 名前:デフォルトの名無しさん mailto:sage [04/02/19 00:17]
メモリ上でどんなことが起きているかをまったく理解しなくても
超(?)高級言語なら問題なく使いこなせるわけか…
なんとなく怖い気もする

531 名前:デフォルトの名無しさん mailto:sage [04/02/19 00:49]
>>530
それはプログラミング言語の1つの理想なわけで






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

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

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