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


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

はきだめC/C++下級者の質問箱 2



1 名前:デフォルトの名無しさん [2006/08/22(火) 09:21:31 ]
はきだめのスレへようこそ

ここは、C/C++に挫折し、それにもかかわらず、C/C++やらなければならない者達がたむろするスレです。
なお、質問する人は回答はあまり期待しないでください。


前スレ:はきだめC/C++下級者の質問箱
pc8.2ch.net/test/read.cgi/tech/1124256027/

620 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 00:29:52 ]
>>618-619
お陰様で解決出来ました、ありがとうございます。


621 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 20:04:43 ]
C++のコンストラクタの中で例外発生させるのは駄目と聞いたのですが
ではnewもbad_alloc投げる可能性があるのでコンストラクタでnewしてはいけないのですか?

622 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:45:32 ]
コンストラクタで例外はまあない方がいいのは確かだが、
ダメというほどではない。
デストラクタは絶対あかんがね。

623 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:08:28 ]
クラスを作る側も使う側もきちんとリソースの管理ができていれば何の問題もない。

624 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:38:50 ]
コンストラクタでの例外については、人によって意見が違うが、
俺は積極的に例外が発生するようにしてる。

じゃないと、不正なオブジェクトが生成されてしまうから

625 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:02:43 ]
仮想コンストラクタとスマートポインタ使えば解決。

626 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:07:41 ]
Phidgetsというハードを制御したいのですが

~略
int servo_simple()
{

CPhidgetServoHandle servo = 0;

//create the accelerometer object

CPhidgetServo_create(&servo);

//open the LED for device connections

CPhidget_open((CPhidgetHandle)servo, 20489);

//Step 1: Position 10.00
printf("Move to position 10.00. Press any key to Continue\n");
getchar();

CPhidgetServo_setMotorPosition (servo, 1, 100.00);

return 0;
}

//int _tmain(int argc, _TCHAR* argv[])
int main(void)
{
servo_simple();
return 0;
}

627 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:08:03 ]
この文で、
getchar();
で入力を待たずにCPhidgetServo_setMotorPosition (servo, 1, 100.00);
を実行したいのですが、getchar();を消しただけでは駄目なのでしょうか?
ド素人な質問をしていると思うのですがどうかご教示下さいませ。

628 名前:626-627 mailto:sage [2008/02/12(火) 07:42:40 ]
自己解決しました。 getchar();で入力を待たずに実行すると、ハードを認識するのが追いつかずに実行されるようでした。



629 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:09:36 ]
クラスを普通に前宣言する時
class MyClass;

って書けばいいけど、例えば

class MyClass
{
public:
class Foge
{
};
};

みたいに MyClass の中にあるクラス Foge を
前宣言したい時はどうすればいいの?

630 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:39:33 ]
>>629
class MyClass
{
public:
class Foge;
};

class MyClass::Foge
{
};

MyClass の定義無しでの宣言はできない。だからネストされたクラスを
インターフェースに使うと MyClass を前方宣言で済ませるのが難しくなる。

631 名前:デフォルトの名無しさん [2008/02/20(水) 22:12:19 ]
一つのソケットに対して送信、受信が交互ではなくて、不定期に発生するような、
プログラムを作ってるんですけども、こういうのってどうするのが良いですか?
交互に通信がある場合ならselect→recv→sendとかで簡単なんですけども
送信が繰り返される場合もあるので悩んでいます。
どなたか教えてください

632 名前:デフォルトの名無しさん [2008/02/20(水) 22:58:08 ]
今マインスイーパーを作ってるんですが
それについての質問ってここでしてもいいんですか?

633 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 23:35:38 ]
>>631
sendリクエストをsignalで受ければいいような。
もし必要ならネットワークスレへどうぞ。

>>632
マインスイーパー程度ならここでもいいと思いますが、
GUIライブラリの使い方なら該当GUIライブラリスレへどうぞ。
マインスイーパースレも参考にどうぞ。

634 名前:デフォルトの名無しさん [2008/02/20(水) 23:51:14 ]
>>633
visualC++ 6.0を使って作ってるんですが
地雷の表示と踏んだ後のリセットがうまく出来ないんです

void CMine1View::DispMine()
{
CClientDC dc(this);
CBrush *oldBrush1,redBrush,*oldBrush2;
int iy,ix;
for(iy=2;iy<=Masu+1;iy++)
{
for(ix=2;ix<=Masu+1;ix++)
{
if(Mine_Position[iy][ix]==-1)
{
oldBrush1=(CBrush*)dc.SelectStockObject(WHITE_BRUSH);
dc.Rectangle(ix*Width,iy*Width,
ix*Width+Width,iy*Width+Width);
dc.SelectObject(oldBrush1);
redBrush.CreateSolidBrush(RGB(255,0,0));
oldBrush2=dc.SelectObject(&redBrush);
dc.Ellipse(ix*Width+5,iy*Width+Width+5,
ix*Width+Width-5,iy*Width+Width-5);
dc.SelectObject(oldBrush2);
redBrush.DeleteObject();
}
}
}
AfxMessageBox("地雷 踏みました!");
}

635 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 03:02:40 ]
>>631
selectが反応したときはrecvする
sendはいつでも何度でも好きなときに好きなだけ繰り返し呼んで良し
何か問題が?

636 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 03:13:07 ]
トランシーバーと同じ問題じゃないの?どうぞ

637 名前:デフォルトの名無しさん [2008/02/27(水) 01:03:33 ]
質問です。
VC使ってて、あるクラスの実体を複数のスレッド内で使ってるのですが、
これって問題あるのでしょうか?
スレッド毎に異なるデータを用意してるので、
クラスのメンバ変数への排他の問題はありませんが、
クラス内にDLLクラスをメンバに作っていて、
スレッド毎に同じDLLにアクセスしています。
こんな使い方って問題ありますか?




638 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 01:08:24 ]
DLLの提供する関数がリエントラントなら問題ないんじゃね



639 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 03:27:06 ]
クラスAがあり、クラスAを実体化した際、コンストラクタでクラスBを実体化したとします。
このとき、クラスBがクラスAのpublicな関数を呼び出すためには、
クラスBに対してクラスAの実体のポインタを渡し、そこからアクセスする以外に方法がありますか?
どのような方法があるでしょうか?


640 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 03:29:48 ]
>>639
ポインタじゃなくて参照使うとか、無理やり違う手段でっていうならグローバル変数とか、
いろいろありそうだよ。

641 名前:デフォルトの名無しさん [2008/03/03(月) 15:37:24 ]
>>639
あんま使ったこと無いけどクラスBにクラスAのメソッドをfriendで共有すれば?

642 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 17:35:21 ]
friendにしてもthisポインタ相当の何かは必要だろ。

643 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:14:59 ]
クラスCのstatic変数に突っ込んで、クラスCの静的メンバ関数から呼んでもらう。

644 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 12:27:18 ]
>>639
C#でいうdelegate?
d.hatena.ne.jp/wata_d/20060309/1141875648

645 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 21:19:25 ]
グローバル変数なんつー力技を除けば、
どうあっても this は渡す必要がある。
デリゲートだって内部的に this を渡している訳で。

friend は public メンバ呼ぶのには全く関係ないな。

646 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 23:27:30 ]
>>645
もちろん、何らかの方法でthisを渡す必要はあるだろう。
でも、>>639の場面で、class Bからclass Aのメソッドを直接呼び出すには、class Bがclass Aを知らないといけない。
delegateは、メンバ関数へのproxyとして働くことで、メソッドを定義しているclassを隠すことが出来る。
>>639の場面では、class Bはclass Aを知らなくても、class Aのメソッドを呼び出すことが出来るようになる。

647 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 23:59:25 ]
そもそも、コンストラクタ内で他のクラスにメンバ関数を呼ばせる事自体
結構危険な事だと思うけどね。

648 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 17:27:25 ]
コンストラクタで実体化しただけで、
コンストラクタで関数を呼ぶとは書いてないだろ



649 名前:デフォルトの名無しさん [2008/03/13(木) 19:06:50 ]
ja.wikipedia.org/wiki/Memset
何でstrcpy(s, NULL);は誤りなのですか?

650 名前:デフォルトの名無しさん [2008/03/13(木) 19:26:01 ]
>>649
NULLがchar*型じゃないから

651 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 19:44:01 ]
memsetは問題なく動くからまだいいけど、
普通は、s[0] = '\0';で十分だろ。せいぜいstrcpy(s, "");

652 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 23:19:50 ]
NULL を脱参照して死亡

653 名前:デフォルトの名無しさん [2008/03/24(月) 10:47:50 ]
ファイルを分割したときに変数を大域変数として定義して、
呼び出すためにはどうしたらいいでしょうか?

今ファイルがmain.cpp,hoge.h,hoge.cpp,hage.h,hage.cppとある時に,
全体でのメモリアクセスを調べるためにmain.cppでint型の大域変数を定義して,
hoge.cppとhage.cpp内で値をインクリメントできるようにしたいのですが・・・

654 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:51:04 ]
どんな入門書にも書いてあるよ

655 名前:デフォルトの名無しさん [2008/03/24(月) 11:25:16 ]
main.cppで変数定義して、
hage.h,hoge.hでexturn宣言したらエラーが出るのですが、
やり方間違ってますか?

656 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:26:37 ]
>>653
クラスにすることお勧め。

657 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 13:36:42 ]
どうしてエラーをコピペしないのか。俺らをエスパーだと思ってるのか。

>>655
ソースも見ないで間違ってるかどうか判断できるわけがない。
ソース(その変数に関係するところ)とエラー(いっぱい出てたら始めの3個くらい)を張って。
改めて打つんじゃなくてコピペで。

>hage.h,hoge.hでexturn宣言したらエラーが出るのですが、
externの綴りが間違ってる。ここに書く時に間違えただけならいいんだけど。

658 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 20:57:56 ]
エスパーしてもらいたいんじゃなくて
原因である可能性の高いものを列挙してもらいたいんじゃない?

んで、それを一通り試して、自己解決しました!って言うの(笑)



659 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:29:45 ]
>>655
やりかたがまちがっている。
.h ファイルはコンパイルする必要はないよ。

660 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 03:10:31 ]
>>653
[main.cpp]
#include <stdio.h>
void hoge_inc(void);
void hage_inc(void);
int count;
int main(int argc, char *argv[]) {
    count = 0;
    hoge_inc();
    printf("count = %d\n", count);
    hage_inc();
    printf("count = %d\n", count);
    return 0;
}
[hoge.cpp]
extern int count;
void hoge_inc(void) {
    count++;
}
[hage.cpp]
extern int count;
void hage_inc(void) {
    count++;
}

661 名前:デフォルトの名無しさん [2008/03/25(火) 11:28:05 ]
スレの内容見ながら直したら解決できました。
出てたエラーは
error LNK2001: 外部シンボル ""int mov_i" (?mov_i@@3HA)" は未解決です。
でファイルの依存関係が間違っていたのが原因でした。

>>656-660
有難うございました。

>>657
申し訳ないです・・・以後気をつけます

662 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 04:03:10 ]
Windows 限定の話題で申し訳ないんですが、FARPROC 型というのが何なのかよくわからないので質問させてください。
MSDN の CallWindowProc の項目を見ると、FARPROC 型は

 typedef int (FAR WINAPI *FARPROC)();

と宣言されているらしいんですが、WINAPI は __stdcall だから良いとして、FAR というのは何なんでしょうか?
MinGW だと FAR は省略されてるので、付けても付けなくても同じな気がするんですが、
とすると FARPROC=ただの関数ポインタと考えちゃって構わないんですか?

663 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 04:04:56 ]
16bitアドレッシング時代の残骸だろ。無視して医院で内科医。

664 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 04:09:15 ]
>>663
ありがとうございます。なんかMS-DOS時代はFARとかNEARとか使ってたらしいのでそういうことなんですかね。
Windows だとこういうマクロとか typedef がやたらと多くて変な所でやたら苦労させられます(;´Д`)

665 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 11:29:57 ]
どこかに#define FARと定義されているから、
プリプロセスが終われば消えてなくなる。

666 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:20:32 ]
いい時代になったもんだ。

667 名前:デフォルトの名無しさん [2008/04/01(火) 23:30:29 ]
コンストラクタを定義しようと思っているのですが
ClassA();
ClassA(int nSize);
と定義して、実体を書く時に

ClassA::ClassA(){
this->ClassA(1);
}

と言う具合に書きたいんですが
error C2273: '関数形式のキャスト' : '->' 演算子の右側で使用できません。
となって出来ません。
何とか、良い方法はありませんでしょうか?
ClassA(int nSize=1);
もあるとは思うのですが、指定した場合、もう少し細かくコードを書きたいのです。


668 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 23:35:07 ]
ほかのコンストラクタを呼ぶことは今のところ不可能だから、
privateな初期化関数を作ってそれを呼ぶのが常套手段。



669 名前:デフォルトの名無しさん [2008/04/08(火) 18:49:12 ]
nanosleepの使用例はどこかにありませんか?

670 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:20:53 ]
>>669
ありますが、何か。

671 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:24:11 ]
nanosleepの使用例なんて腐るほどあるわよ。ネットは広大ね。

って少佐が言ってた

672 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:28:06 ]
あんなの、man引けば使い方なんて一発だろうに。

673 名前:デフォルトの名無しさん [2008/04/09(水) 04:07:45 ]
うちのman nanosleepには使用例は載っていないな〜〜

674 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 06:39:06 ]
手取り足取り教えて貰わないと書けないんですか?

675 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 07:04:28 ]
www.google.co.jp/codesearch

676 名前:デフォルトの名無しさん [2008/04/09(水) 08:05:20 ]
Visual C++でnanosleepに当たるものを教えてください

677 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 08:59:32 ]
Sleep()
指定する時間単位と精度の違いに注意。

678 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 13:21:59 ]
質問。
ttp://www.be-interactive.org/index.php?itemid=57
にあるアクションスクリプトをC++で書き直してみたいんだけど、
辞書データのクラス化と初期化をどうやったらいいのか
分からなくて困ってます。
typedef struct { int x,y; } POINT;
class Stroke { vector<POINT> points; };
class DictItem { vector<Stroke> strokes; };
class Dictionary { vector<DictItem> items; };
と定義してはみたものの、どうデータを流し込んで
やればいいんでしょうか?
もしくはもっと効率的なクラス定義の方法があれば
教えてください。



679 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:09:12 ]
std::map使えばいいんじゃね

680 名前:デフォルトの名無しさん [2008/04/10(木) 17:44:25 ]
ダイナミックライブラリとスタティックライブラリの使い分けについて教えてください

681 名前:デフォルトの名無しさん [2008/04/10(木) 21:40:05 ]
>>680
C/C++の質問ではありませんのでスレ違いです。

682 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 02:44:04 ]
ポインタで複数の配列の連続的に扱うことはできますか?

int *p
int A[3] , B[3], C[3];
(p+0) = A;
(p+3) = B;
(p+6) = C;



683 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 02:47:57 ]
できません

684 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 13:52:33 ]
そういうコンテナ/イテレータを書くのも勉強になりそうではあるな

685 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 02:20:38 ]
>>682
unionで配列の位置を一纏めに固定すれば可能

686 名前:回答者も下級なのか、このスレは mailto:sage [2008/04/17(木) 08:15:36 ]
>>685
ほほぉ、unionでですか。具体例をどうぞ。

687 名前:デフォルトの名無しさん [2008/04/18(金) 00:02:31 ]
VisualC++2008でfopen_sやfopenしてもファイルを読み込んでくれません。
パスはあってるし、DOS窓で実行ファイルと読み込みたいファイルのあるディレクトリに移動してから実行してもダメでした。

fopen_s(&fp, "a.txt","r")
fp=fopen("a.txt","r")
という書き方で間違ってないと思うのですが…

原因としてはどんなことが考えられるんでしょうか?


688 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 00:31:47 ]
もしかして:
a.txt.txt



689 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 22:58:27 ]
もしかして:
VisualC++2008 【Express Edition】

690 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:02:10 ]
>>682

int p[9];
int* A=p+0, *B=p+3, *C=p+6;
A[0]=(以下略

じゃだめなん?

691 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:25:14 ]
>>689
そうです

692 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 02:54:00 ]
>>686
union {
struct {
int A[3],B[3],C[3];
};
int D[9];
} Array;

int *p = &( Array.A[0] );

こんな風に

693 名前:デフォルトの名無しさん [2008/04/22(火) 11:59:19 ]
intじゃなかったら使えないな

694 名前:デフォルトの名無しさん [2008/04/22(火) 17:51:28 ]
10進数を2進数に変換する方法教えてください

695 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 17:57:29 ]
2で割って少数以下切捨て、その時の余りをならべる。を繰り返す。

696 名前:デフォルトの名無しさん [2008/04/22(火) 18:16:54 ]
以下を実行して
a:0x8049e80 0x8049e80 0x8049e80
A:0x8049e80 0x8049e80 0x8049e80
11 12 13
4 5 6
0 0 0
のようになることを期待していますが11 12 13が1 2 3のままです。どのようにしたらよいか教えていただけると幸いです。
struct data{
double x[3],p[3],q,rm;
};
class Func{
public:
void func1(struct data []);
};
class SubFunc{
public:
void subfunc1(struct data []);
};
続く

697 名前:デフォルトの名無しさん [2008/04/22(火) 18:17:29 ]
続きです
int main(void)
{
static data P[3];
Func FC;
FC.func1(P);
for(int i=0;i<3;i++){
cout << P[i].x[0] <<" "<< P[i].x[1] <<" "<< P[i].x[2] << endl;
}
return 0;
}
void Func::func1(struct data A[]){
SubFunc SFC;
SFC.subfunc1(A);
A[0].x[0]=1.0;
A[0].x[1]=2.0;
A[0].x[2]=3.0;
cout <<"A:"<< &A[0].x[0] <<" "<< &A[0].x[0] <<" "<< &A[0].x[0] << endl;
}
void SubFunc::subfunc1(struct data a[]){
a[0].x[0]=11.0;
a[0].x[1]=12.0;
a[0].x[2]=13.0;
cout <<"a:"<< &a[0].x[0] <<" "<< &a[0].x[0] <<" "<< &a[0].x[0] << endl;
a[1].x[0]=4.0;
a[1].x[1]=5.0;
a[1].x[2]=6.0;
}


698 名前:デフォルトの名無しさん [2008/04/22(火) 18:27:36 ]
char a[] = "100";

って書くと これどういう意味になるの?



699 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 18:29:01 ]
>>698
a[0]='1' a[1]='0' a[2]='0' a[3]='\0'

700 名前:デフォルトの名無しさん [2008/04/22(火) 18:34:43 ]
>>699
さんきゅ!

701 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 18:36:19 ]
>>696
SFC.subfunc1(A); 
A[0].x[0]=1.0; 
A[0].x[1]=2.0; 
A[0].x[2]=3.0; 

SFC.subfunc1()呼んで11 12 13入れても、その後上書きしてるじゃん



702 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 18:55:07 ]
>>701
おっしゃるとおりです。ありがとうございました。

703 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 01:03:54 ]
コンパイラとリンカのバージョンってどうやって調べるか分かりますか?
ちなみに、使っている環境(って言うのかな?)はCPad for Borland C++Compilerってやつです
あんまり難しい専門用語は分からないんで、初級者でもわかるように教えてくれるとうれしいです

704 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 01:07:11 ]
無料版の BCC のバージョンは 5.5 しか存在しない。

705 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 01:34:27 ]
>>704
それはリンカのこと?それともコンパイラのことですか?
超下級者だから全然わからん

706 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 01:35:44 ]
ちっとも保守される様子がないbccなんかそろそろやめて
mingwやvcのexpress editionにすればいいのに。

707 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 01:39:43 ]
-v

708 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 02:19:31 ]
>>704
修正版の5.5.1がある。



709 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 10:33:03 ]
>>694-695
整数は割っても少数にならないし、小数は扱いにくいから
↓のを繰り返す。

x % 2 //2進数の一桁目がこれででる。
x /= 2 //一桁目を取り出したらずらす。



710 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 10:47:35 ]
x & 1
x =>> 1

711 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 15:42:59 ]
1, 2, 4, 8, 16, 32, ... とビット数の数だけ論理和とればいいだけじゃん

712 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 15:57:14 ]

ごめん。
>>709はマイナスのとき使えな・・くもないか。


713 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:56:29 ]
まず10進数の定義からだな。


714 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 23:44:04 ]
定義厨もここまできたか

715 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 09:16:09 ]
パックドBCDかもしれんし、ASCZかもしれん。

716 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 17:33:03 ]
#include <stdio.h>
struct histgram{
int x;
int y[100];
};
void one(struct histgram *hist);
void two(struct histgram *hist);
int main (void){
struct histgram hist[1] ;
int z;
hist->x = 0;
for(z=0;z<100;z++){
hist->y[z]=0;
}
printf("before***%d***%d***%d***",hist->x,hist->y[0],hist->y[50]);
one(hist);
printf("before***%s***%s***%s***",hist->x,hist->y[0],hist->y[50]);
for(z=0;z<9999999999;z++);
return 0;
}
void one(struct histgram *hist)
{
two(hist);
}
void two(struct histgram *hist)
{
int z;
hist->x = 1;
for(z=0;z<100;z++){
hist->y[z]=1;}}
これで実行するとメモリのエラーが出るんですが、どうすれば解決するでしょうか

717 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 17:50:14 ]
>>716
2つめのprintfは、%sじゃなくて%dを使うべし。

718 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:50:09 ]
×for(z=0;z<9999999999;z++);
○getchar();



719 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 06:03:23 ]
それ以前に hist->x は hist[0].x じゃないのか?

720 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 06:44:04 ]
どっちでもいいんじゃね?






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

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

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