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


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

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



1 名前:デフォルトの名無しさん [2008/02/20(水) 12:33:41 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.48【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1202141921/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

154 名前:133 [2008/02/22(金) 02:00:16 ]
関数の引数にクラスを使いたいのですが、クラスの宣言と代入を同時にするにはどうやればいいですか
intのようにコンストラクタではできませんでした

test y = f( x );
のようにです fはクラスを返します intではないです

155 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 02:11:42 ]
>>154
testというのがクラスなら、testにconst test&型の引数を1つ取るコピーコンストラクタを作るんだ。

156 名前:デフォルトの名無しさん [2008/02/22(金) 02:14:25 ]
サンクス

157 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 07:02:49 ]
>>154
何度も言うが、それは代入じゃない。
初期化だ。
初期化の場合、= を使っていても
test y = f(x); は test y(f(x)); と同義。

158 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 07:24:55 ]
まったくのプログラム初心者です。
はじめににインストールする言語?をどれにするかがわかりません。
どういう意味かというと

ボーランド、とかマイクロソフトのvisual studioとかどれにすればいいのかです。
有料とか無料とかいろいろありますね。
できたら将来有料ソフトを販売可能なものがいいです。

今考えているのはマイクロソフトのVC++を考えているのですが、
C++とVC++は違うとか
どっかで聞いたりもしたので
初心者にはちんぷんかんぷんでわかりません。

よろしくお願いします

159 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 07:30:50 ]
C++ は言語名。
VC++ は C++ を使って開発を行うためのツールの名前。

160 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 08:05:40 ]
>>159
ありがとうございます。

161 名前:デフォルトの名無しさん [2008/02/22(金) 11:08:37 ]
VC++ はMSがWindows用ソフトを開発するために拡張した言語ともいえる
VC++のコードはほかのものでは動かせないものが多い

162 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 11:42:07 ]
www.xlsoft.com/jp/products/jet/index.html
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが



163 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 11:45:45 ]
ここはC/C++スレですが

164 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 11:57:29 ]
システム構築売るならまだしもソフト売るのにJavaはないだろ。
VCにしとけ。

165 名前:デフォルトの名無しさん [2008/02/22(金) 11:59:00 ]
perl2exeみたいなやつでは? 実行環境を圧縮してexeに詰め込む
利点としてはランタイムとかの導入がいらないだけで

166 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 12:21:11 ]
スレ違い。ここでやれ
gcjって使ってる人います?
ttp://pc11.2ch.net/test/read.cgi/tech/1046627795/l50

167 名前:デフォルトの名無しさん [2008/02/22(金) 12:31:13 ]
この直し方教えてください!

IEBrowser->Document.charset="shift_jis";

error C2039: 'charset' : '_com_ptr_t<class _com_IIID<struct IDispatch,&struct __s_GUID _GUID_****> >' のメンバではありません。

168 名前:167 [2008/02/22(金) 12:35:30 ]
文字コードの変換をしたいのですが・・・
この様に定義してあります

SHDocVw::IWebBrowser2Ptr IEBrowser;
IEBrowser.CreateInstance( __uuidof( SHDocVw::InternetExplorer ) );

169 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 12:51:05 ]
>>167
こうでは?
IEBrowser->Document->charset= L"shift_jis";

170 名前:167 [2008/02/22(金) 12:55:40 ]
>>169

error C2039: 'charset' : 'IDispatch' のメンバではありません。

になりました・・・

171 名前:167 [2008/02/22(金) 13:05:44 ]
文字コードの変更方法わかったら教えてもらいたいですけど
そこだけVBAスクリプトを呼び出す事にします

172 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 13:08:27 ]
>>170
じゃあこれはどう?
SHDocVw::IHTMLDocument2Ptr document = IEBrowser->Document;
docment->charset = L"shift_jis";




173 名前:167 [2008/02/22(金) 13:13:13 ]
だめでした

174 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 13:23:38 ]
QueryInterface

175 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 13:33:26 ]
適当に書いたらやっぱダメだったか、すまん。
#import <mshtml.tlb>した上で、MSHTML::IHTMLDocument2Ptrだ。

176 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 13:34:40 ]
>>174
ナントカPtr(の実態_com_ptr_t<>)のコンストラクタや代入演算子の中でQueryIntefaceが行われている。

177 名前:デフォルトの名無しさん [2008/02/22(金) 14:08:38 ]
πの値は、自分で3.1415926535...とかって書くしかないでしょうか。
numeric_limits<int>::max()とか、そういう書き方はないですか?


178 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 14:13:43 ]
#ifndef M_PI
# define M_PI 3.1415926535
#endif

179 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 14:30:07 ]
math.hをインクルードしたらM_PIとしてdefineされてる。
計算して出したいなら4*atan(1.0);

180 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 14:32:27 ]
標準ではないのが玉に瑕。

181 名前:デフォルトの名無しさん [2008/02/22(金) 15:02:49 ]
>>178-180
ありがとうございます。
#include <cmath>
としてたのですが、M_PIでコンパイル通りました。


182 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 15:58:04 ]
C初心者です。
実数→整数変換ですが、

double dval;
char buf[80];
int ival;

dval = -19.99; /* -19.99〜19.99 */
dval = dval * 100.0;

sprintf(buf,"%.0f",dval);
ival = atoi(buf);

printf( "%f %d %d\n",dval,ival,(int)dval);
/* printf( "%f %d %d\n",dval,ival,(int)ceil(dval)); */


ivalを求める場合、上記の方法が一番精度が良いのですが
これ以外に方法はありますでしょうか?
ceil() や floor() 使っても誤差が出てしまいます。




183 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 16:05:51 ]
>sprintf(buf,"%.0f",dval);
それ四捨五入してるだけだぞ
そんなんでいいなら ival = floor(dval * 100 + 0.5) とでもやればいい

元々 -19.99 という値自体が誤差を持ってるから、これを無くすことは出来ない
printf("%.20f\n", -19.99); とかやってみればわかる

本当に誤差が嫌なら、浮動小数点を使わない、という方法しかない

184 名前:182 mailto:sage [2008/02/22(金) 16:12:26 ]
>>183

早速のRESありがとう御座います。

>そんなんでいいなら ival = floor(dval * 100 + 0.5) とでもやればいい

了解です。これで行きたいと思います。
 どうもありがとう御座いました。

185 名前:デフォルトの名無しさん [2008/02/22(金) 16:53:31 ]
char []型の要素を破棄して動的確保できませんか? 消せなくてもいいので別のアドレスに確保できませんか?

f(char *ch){
delete ch;
ch=new char[10];
strcpy(ch,"ssssssss");
}

main(){
char *ce=new char[2];
f(ce); cout<<ce<<endl;

char ch[]="test";
f(ch); cout<<ch<<endl;
}

186 名前:デフォルトの名無しさん [2008/02/22(金) 16:55:19 ]
もしくは、char *型とchar []型を判別して、書き換えられないなら始めにエラーにするのでもいいです

187 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 16:59:46 ]
>>185
ごめんfで何がしたいのか分からない。

まぁ俺の第六感で回答すると、ポインタのポインタ使えばいいんじゃね

188 名前:デフォルトの名無しさん [2008/02/22(金) 17:05:10 ]
char a[10];
をコード内で書き換えてたとえば100個まで使えるようにしたいんです
はじめのaは破棄できなくてもいいので、a[50]とかにアクセスできるようになりませんか

189 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 17:07:46 ]
Stringクラスの使い方でも覚えるとか

190 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 17:08:43 ]
>>188
設計が間違ってるよ
>>185 みたいにすると激しく管理が難しい事になる

191 名前:デフォルトの名無しさん [2008/02/22(金) 17:12:10 ]
ポインタで文字列のアドレスが渡されたら、それが[]なのか*なのか渡された側にはわかりません
どうしたらいいですか

192 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 17:14:17 ]
配列サイズも渡す



193 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 17:17:53 ]
閃いたw

初めから1000個くらい確保しとけばいいじゃん

194 名前:デフォルトの名無しさん [2008/02/22(金) 17:21:28 ]
無理か

main(){
char ch[]="test";

char *ce=new char[20];
strcpy(ce,"ssss");

ch=ce;  //ここでエラー

cout<<ch<<endl;
}

195 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 17:22:10 ]
あほすぎ

196 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 17:29:05 ]
>>191
呼び出し側で呼び出す関数を変える

>>194
なにがしたいの?

197 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 18:10:41 ]
>>194
こうすれば?

main(){
char chx[]="test";
char *ch = chx;

char *ce=new char[20];
strcpy(ce,"ssss");

ch=ce;  //エラーなし

cout<<ch<<endl;
}

198 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 18:36:59 ]
>>185
恐らく、引数でもらった文字列を元に新な文字列を返そうと考えてるんだろうけど、
そうしたいのなら、

char* func(const char* str)
{
 char* s = new char[ほにゃらら];
 ほげほげ

 return s;
}
とした方が良い。

そもそも
char ch[] = "test";
の ch は配列の先頭のアドレスを返す「定数」なんだから、newで確保した領域を割り当てられるわけないよ。


199 名前:デフォルトの名無しさん [2008/02/22(金) 19:05:33 ]
レスありがとうございます
同じような質問なんですが、*chが確保されていてもいなくても、deleteするにはどうすればいいですか?
確保していないと実行時にエラーになります

200 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:08:14 ]
言ってる事がよく分からんが、こういうこと?

if( ch )delete ch;

201 名前:デフォルトの名無しさん [2008/02/22(金) 19:15:06 ]
まともに動くのはaだけなんです どれでも動くようになりますか?

f(char *ch){ delete ch; ch=new char[10]; strcpy(ch,"ssssssss"); }

main(){
char *a=new char[1]; f(a); cout<<a<<endl;
char *b=NULL; f(b); cout<<b<<endl;
// char *c; f(c); cout<<c<<endl;
}

202 名前:デフォルトの名無しさん [2008/02/22(金) 19:16:31 ]
>>200  ifを組み込んでも動作しませんでした



203 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:16:40 ]
void f(char*& ch)

204 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:17:29 ]
つーか、大人しく std::string 使え

205 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:18:15 ]
>>201
fの中でchに代入してもmainの方はaもbもcも変わらないよ?

f(int x){
x = 2;
}
main() {
int a = 1;
f(a);
cout << a << endl; // 2ではなく1と表示される
}

↑これ解ってる?

206 名前:デフォルトの名無しさん [2008/02/22(金) 19:19:04 ]
>>203 それを組み込んだらbも動作しました! でもcが実行時にエラー出ます >>200も同時にやってもだめです

207 名前:デフォルトの名無しさん [2008/02/22(金) 19:20:20 ]
>>205 char* や配列は参照渡しだとききました

208 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:20:23 ]
初期化してねえのに delete できるわけねえだろ

209 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:20:49 ]
>>207
ポインタは値渡し。

210 名前:デフォルトの名無しさん [2008/02/22(金) 19:21:59 ]
>>209 わかりました >>208 初期化していないことを調べる方法ないですか

211 名前:デフォルトの名無しさん [2008/02/22(金) 19:23:11 ]
aは配列と見なされて参照渡しになってるんですね

212 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:25:03 ]
用語の部分で思考停止してるな。
何が起こってるのか考えた事無いだろう。



213 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:25:43 ]
>>210
初期化されてるポインタと、
初期化してないけど偶然たまたま同じ値が入ってるポインタを、
見分ける方法が物理的にあると思うか?

214 名前:デフォルトの名無しさん [2008/02/22(金) 19:26:39 ]
deleteした瞬間に落ちます tryも無理です

f(char*& ch){
try{ delete ch; }
catch(...){cerr << "例外を受け取りました。" << endl;}
ch=new char[10]; strcpy(ch,"ssssssss"); }

main(){
char *a=new char[1]; f(a); cout<<a<<endl;
char *b=NULL; f(b); cout<<b<<endl;
char *c; f(c); cout<<c<<endl;
}

215 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:31:57 ]
>>214
いい方法を教えてあげよう
関数 f の前にこれを書くんだ

/* この関数に初期化してないポインタを渡してはいけません */

216 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:43:25 ]
基礎からやり直せよ

217 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:45:15 ]
>>214
だーかーらーnewで確保したメモリを指してるポインタと、未初期化のポインタを見分け
る方法なんて存在しないんだってば。
ポインタ使うときは初期化しろって何で言われてるのか考えたことあるか?


218 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:49:31 ]
#define HOGE int

void f(HOGE x) { cout << '(' << x << ')' << endl; x = 42; }

int main() {
 HOGE a = 10; f(a); cout << '(' << a << ')' << endl;
 HOGE b = 0; f(b); cout << '(' << b << ')' << endl;
 HOGE c; f(c); cout << '(' << c << ')' << endl;
}

これの挙動は分かるか?


#define HOGE char*

void f(HOGE x) { cout << '(' << x << ')' << endl; x = "f"; }

int main() {
 HOGE a = "a"; f(a); cout << '(' << a << ')' << endl;
 HOGE b = NULL; f(b); cout << '(' << b << ')' << endl;
 HOGE c; f(c); cout << '(' << c << ')' << endl;
}

んで、これの挙動は分かるか?

219 名前:デフォルトの名無しさん [2008/02/22(金) 20:17:15 ]
質問ですが、stringの参照で値を受け取るとき
memcpy(str, ch,10000);
のようにできますか?

220 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 20:37:35 ]
お願いだから str.assign(10000, ch); としてください。
頼みますから。

221 名前:デフォルトの名無しさん [2008/02/22(金) 20:45:34 ]
>>220
strがchar*の予感

222 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 21:09:01 ]
凄く無駄なレス消費してんなw



223 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 21:15:15 ]
昔ならともかく惜しむもんではないが無駄感は否めないなwww

224 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 21:43:42 ]
プログラムを1から始めようと思うのですが、まずは本でも買って読むべきですか?
それともネットで調べるべきですか?

225 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 21:45:59 ]
何をやりたいか目標を立てることから始めるべき。

226 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:16:13 ]
文字列sに含まれる先頭のcの添字を表示させる関数を作れ
cが無い場合は、-1を表示

という問題で詰まってます
文字列の中のcを認識させるにはどうすればよいのでしょうか


227 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:22:42 ]
strchr

228 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:24:16 ]
マルチで申し訳ないですが
グローバルな共用体の変数に、関数からメンバーに代入したらセグメントエラーを吐いたのですが、これは許されないのでしょうか?


229 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:29:20 ]
マルチしないでください^^;

230 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:46:54 ]
火星人で申し訳ないのですが
グローバルな共用体の変数に、関数からメンバーに代入してもセグメントエラーを吐かないのですが、
嫁は許してくれるでしょうか?

231 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:48:12 ]
こんがらがっちゃったんで、聞きたいんですが・・・
今こんなテンプレートクラスがあったとして
template<typename T>
class Array{
  T *array;
  size_t length;
public:
  Array(size_t n = 0){...}
  ~Array(){...}
  T& operator [](size_t n){...}
}
これを
typedef Array<myclass> MyArray;  //myclassは適当なクラスということで
Array<MyArray> MyArray2(2);
と使う時、MyArray2は与えた引数で初期化できますが
MyArrayの方にコンストラクタの引数を与える場合はどうすればいいですか?
ちなみにこれは、配列クラスなんでできれば、MyArray2が持つそれぞれのArray<myclass>に
別々の初期化パラメータを与えたいんですが・・・。

232 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:49:58 ]
>>255
何ができるかを伝えてあげるべき。
ようこそプログラムの世界へ。



233 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:50:25 ]
>>225だったorz


234 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:51:22 ]
>>227
それは関数そのものではないでしょうか
わざわざ教えたいただいたのですが、伝達不足でした、すみません
int strch_idx(const char* s, char c);
という関数の雛形が与えられて、この中身を作るのに、cを認識する必要があると判断したのですが、間違っているでしょうか

235 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:54:41 ]
>>231
今のC++では無理だね。だからSTLコンテナではreserveしてpush_backしたり、
組込の配列からコピー初期化したりする。

236 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:56:20 ]
>>234
cを認識の意味がわかりません
s内からcを検索したいってこと?

237 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:17:22 ]
>>235もしやと思ったらやっぱりですか・・・
この場合大人しくループまわして作ることになるんでしょうね。
ありがとうございました。


238 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:34:21 ]
>>236
例えば、sという文字列にcincoと入力すると、1を
sという文字列にiicicoと入力すると3を
sという文字列にnorioと入力すると-1をreturnで返却する

こういう関数を作ろうと思うと、sという文字列の中身について、
s[0]に格納されているのはcかどうか、s[1]に格納されてるのはcかどうか、s[2]に格納されているのは…
と、ひたすら繰り返して行く必要があると考えました
そのためには、s[n]について、cなのかどうか判定する必要があるのではないかと
この判定というのが、認識と同じ意味のつもりで使いました

239 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:40:52 ]
strchrのソース読めよ。
検索すればいくらでも出るだろ

240 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:45:33 ]
>>238
if (s[0] == 'c') return 1;
if (s[1] == 'c') return 2;
if (s[2] == 'c') return 3;
...and so on.

241 名前:デフォルトの名無しさん [2008/02/22(金) 23:50:48 ]
>>234
学校の宿題は自分でやれよ。屑

242 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:02:06 ]
>>238
それ以外に方法はstrchrを使用するぐらいしか思いつかない
(strchrもおそらくは、中で同じようなことしてると思うけど)

なにが疑問なのかよくわからないので、とりえあず2通りソースを貼り付けときます
@
int i;
for(i=0; s[i] != '\0' && s[i] != c; i++);
return s[i] != '\0' ? i : -1;

A
char *p;
return (p=strchr(s, c)) != NULL ? (int)(p-s) : -1;

返ってくるのは配列の添え字ですのであしからず



243 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:06:01 ]
>>239  >>240
どうも、理解できました

>>242
ご丁寧にどうもありがとうございました

244 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 03:34:24 ]
全くコードの書き方が分からないので質問させて下さい。
C++ VS2005

略)
printf("Got: %02x%02x%02x%02x%02x\n", buf[0], buf[1], buf[2], buf[3], buf[4]);


buf[0]には01
buf[1]には06
buf[2]には17
buf[3]にはf3
buf[4]には34
が入る。

を文字列"0106171f34"に置き換えたい。

1.このbuf[]の中(16進数)を文字列に変換したい。

2.文字列に変換した後に、buf[0]〜buf[5]を繋げたい。

sprintとかを使えば良いみたいなのですが、どのようにやってよいか分からずに困っています。
どうかよろしくお願いします。

245 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 03:35:36 ]
>>244
課題を丸投げしたいなら宿題スレにいけ

246 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 03:37:49 ]
>>244
いや一応答えると
sprintじゃなくてsprintfだな
sprintfで連結もできます

247 名前:244 mailto:sage [2008/02/23(土) 03:51:48 ]
>>245-246
ありがとう。もうちょい試して無理だったら、宿題ではないんだけど、宿題スレで質問してみたいと思います。

248 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 03:54:12 ]
sprintf のヘルプ見るだけで解決だろ

249 名前:244 mailto:sage [2008/02/23(土) 08:58:16 ]
>>248
なんとか解決しました。時間かかった>< やってみれば、なんと簡単なコードって感じですけど。

ヘルプのみかたってイマイチわからないんですけど、ヘルプの見方の解説サイトとかってありませんでしょうか?

250 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:49:02 ]
>>249
manコマンドのことなら、man manでOK。

251 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:05:35 ]
Cをずっとやってたのですが、
VC++6.0でデバッグしてると、関数に入るだけでESPが100バイトくらい進みます
C++だとモジュール毎にスタックをこんなに食うものなのでしょうか?
デバッグ情報か何かで食ってるのですか?

252 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:06:37 ]
ローカル変数たくさん使ってるんじゃないの



253 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:06:52 ]
>>251
ローカル変数が100バイトほどあるんじゃなくて?

254 名前:251 mailto:sage [2008/02/23(土) 11:07:16 ]
いやひとつもないのだが・・・
家のPCでためしたけど、
関数にステップインするときはESPは4バイトしか進まないが、
そこから1step進めて、{から関数内の1行目に入るときに、
80バイトも食う
char a[100];と宣言を入れると、これが180バイトになるから、やり方は間違ってないはず
この80バイトが何なのかわからん






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

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

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