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


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

C言語なら俺に聞け(入門篇) Part 20



1 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 22:34:33 ]
C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 19
pc11.2ch.net/test/read.cgi/tech/1190342593/

教えて欲しいのではなく丸投げしたいならこちらへ
C/C++の宿題を片付けます 97代目
pc11.2ch.net/test/read.cgi/tech/1191937213/

548 名前:プリンがー mailto:aaa [2007/10/29(月) 22:16:02 ]
100個の実数データを配列a[100]に読んで、その最大値をmaxという
変数に求め、結果を出力するプログラムを書きなさい。

#include <stdio.h>
int main (void)
{
int i;
double a[100],max=0;

for(i=0;i<=100;i++){

scanf("%lf",&x[i]);

if(x[i]>max){
max=x[i];
}
}
printf("最大値は%fです。",max);
return(0) ;
}

 これであってますか?


549 名前:aho mailto:sage [2007/10/29(月) 22:17:53 ]
>>548
あってるよ〜

550 名前:プリンがー mailto:aaa [2007/10/29(月) 22:22:29 ]
>>549
ありがとうございます。


551 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 22:22:40 ]
あってねぇーよ

double a[100]で100個用意したのはいいが
for(i=0;i<=100;i++){ の行で101個目にアクセスしてるだろ。

for(i=0;i<100;i++){ が正解

552 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 22:24:32 ]
実験データは正数だけかな?
配列に入れる必要性がわからんけど後でプログラムを拡張するのかな

553 名前:aho mailto:sage [2007/10/29(月) 22:25:39 ]
>>550
ばれたか。
やるな、おぬし!

554 名前:プリンがー mailto:aaa [2007/10/29(月) 23:00:39 ]
1から1000までの数値の中で、2または3の倍数でかつ4の倍数でないものを
出力するプログラムを書きなさい。

#include <stdio.h>
int main (void)
{
int i;

for(i=1;i<=1000;i++){

if(i%2=0||i%3=0){

if(i%4!=0){
putchar('\n');
}
}
}
return(0);
}

これであってますか?

555 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:02:21 ]
memcpy(input,output,size<<1);

//array copy
for(i=0; i < (size<<1); i++)
output[i] = input[i];

すみません、この二つの違いを教えてください。
初めに下のほうで計算していたら望む結果が出てこなくて
上のとおりやったら出来ました…

同じことをやっていると思ったのですが、どう違うのでしょうか

556 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:03:12 ]
if ((i % 2 == 0 || i % 3 == 0) && (i % 4 != 0))



557 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:04:33 ]
>>554
回したら、ものすごい数の改行が出た。

558 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:07:51 ]
>>555
outputとinputの型によって差がでるんじゃないかな

559 名前:プリンがー mailto:aaa [2007/10/29(月) 23:08:15 ]
>>554
訂正

#include <stdio.h>
int main (void)
{
int i;

for(i=1;i<=1000;i++){

if((i%2==0||i%3==0)&&(i%4!=0)){
putchar('\n')
}
}
return(0);
}

これでいいでしょうか??


560 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:09:29 ]
×putchar('\n');
○printf("%d ", i);

561 名前:プリンがー mailto:aaa [2007/10/29(月) 23:12:32 ]
>>560
ありがとうございます。


562 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:13:39 ]
あってませんよ

563 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:15:45 ]
>>558
どちらもint型のポインタ(1次元配列)なのですが。

単に求めた結果が出ればいいだけなら、これでいいのですが
初めのソースが合ってると信じて、違う原因がわからないのは自分でも納得がいかないので

564 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:15:54 ]
テキストファイルに aあ と書いてそれを16進形式でテキストファイルに出力すると、
61 82 A0 0D 0A となりました。
ここからこの数を使って aあ と新たなファイルに表示させたいのですが、
a は出力できるのですが あ のやり方がわかりません。
どうしたら日本語の あ が出力できるんでしょうか。

ちなみにaは
char temp[50]
char moji[]="61";
strcpy(temp,"0x");
strcpy(temp,moji)
long int aa=strtol(temp,NULL,16);
fprintf(file,"%c",aa);
見たいな感じで出力しました。

565 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:22:43 ]
>>564
char tmp[10];
tmp[0] = (char)strtol("82", NULL, 16);
tmp[1] = (char)strtol("A0", NULL, 16);
tmp[2] = '\0';

printf("%s", tmp);


566 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:23:54 ]
>>555>>563
その二つはinputとoutputがchar型配列でない限り、違う結果になる


>memcpy(input,output,size<<1);
ここの第三引数は、バイト単位でのサイズを指定する

>for(i=0; i < (size<<1); i++)
>output[i] = input[i];
こっちで指定するのは、配列の要素数



567 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:25:46 ]
>>564
printf("%c%c%c",0x61,0x82,0xA0);

568 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:26:00 ]
>>563
memcpyのsize<<1はバイトで
for文のsize<<1はint型(4バイト?)分になるんじゃないかな?
試してないから間違ってるかもしれないけど

569 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:31:11 ]
>>566 >>568
なるほど。。。と違いはわかったのですが
memcpyだとinputからoutputに何がコピーされているのか混乱してきました。

sizeはint型でinput分の要素数を表しています。
0 1 2 3 4 5 6 7 の要素が入っていて

それを計算したものをoutputに出力させているのです
for文の方をmemcpyと同じように働かせるにはどうしたらよいのでしょうか

570 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:31:45 ]
>>380
入力に何を与えたら何が出力されるのか書いてくれれば考えてみる
>>524 >>526 を読んだが訳分からんかった

検索のキーとなるのは64バイトの内最初の固定 n バイトだけ?(>>524 だと n=16)
1行64バイトって改行文字を含まずに64バイト?
読み込むファイルは検索途中で書き換えられる?

571 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:36:06 ]
>>569
要素数を表してるのになんでビットシフトしてるの?

572 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:39:32 ]
フーリエ変換かなんか 2^n 要素数のアルゴリズムじゃね?

573 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:40:24 ]
>>565>>567
どちらもできましたありがとうございます。


574 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:40:48 ]
>>571
階差数列や漸加式をイメージしてもらいたいのですが
長さの半分の式を移していくという処理をやっています。

なんか頭が熱持ってきました。。。

575 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:41:57 ]
>>572
そうです、2^nの式です。。。わかるものなのですね



576 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:44:48 ]
ソースが全部貼り付けられてるわけじゃないからあくまで推測だが、
sizeが正しく使われてるか確認した方がいいと思う。



577 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:48:59 ]
>>576
for(i=0; i < length<<1 ; i++)
input[i] = output[i];

…こうやったら、望む値が出てきました。。。。なぜ。。。。。
計算させるところを勘違いしていたのか、わけがわからなくなってきました。。。。


578 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:50:41 ]
>>569
なんかよく分からんが例として

int a[10],b[10],size=10,i;
//何らかの代入処理
memcpy(b,a,size * sizeof(int));
//↑は↓と等価
for(i=0; i < size; i++)
b[i] = [i];

こんなふうにする
あと今気付いたが、memcpyの第一引数と第二引数が反対になってるよ
第二引数がコピー元で、第一引数がコピー先
代入文と同じ順序ね

579 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:55:00 ]
>>578
ありがとうございます。ちょっと頭冷やして、ソースと頂いたレスを理解します。

ほんとなんかすみません

580 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 03:23:33 ]
C言語初心者で、教えて欲しいのですが
sin^2(x)
(サインの二乗(x))
はどのようにプログラムに書けば良いのでしょうか?

581 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 03:34:41 ]
>>580
sin(x)の2乗ということですよね

#include <math.h>

sin(x)*sin(x) /* sin(x)の2畳 */

sin関数を2階呼ぶのが面倒なら
double y;
y = sin(x);
y*y

582 名前:581 mailto:sage [2007/10/30(火) 03:36:22 ]
pow関数を使うという手もありますが
2乗なら掛け算で十分

583 名前:580 mailto:sage [2007/10/30(火) 03:41:03 ]
>>581
こんなにも遅い時間にありがとうございます。
プログラミングもですが、数学もやり直してきます

584 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 03:46:08 ]
2倍角の公式の方が速い

585 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 03:51:51 ]
exp( ix ) = cos(x) + i sin(x) だから2乗して実部を比較すると

cos(2x) = cos^2(x) -sin^2(x) となる

cos^2(x)  + sin^2(x) = 1 なので

1 - 2 sin^2(x) = cos(2x)

これより、(1+ cos(2x)) / 2 が求める値である

586 名前:580 mailto:sage [2007/10/30(火) 04:01:36 ]
>>585
さらなる補足をありがとうございます。数学の教科書見て勉強してます




587 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 12:19:41 ]
>>585
>>581 より計算量増えてね?

588 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 12:48:58 ]
>>587
そもそも移項で間違ってる

589 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 12:55:03 ]
sin^2(x) == (1-cos(2x))/2だな

>>587
・関数呼び出しが一回でいい(cf.sin(x)*sin(x))
・一時的な代入がいらない(cf.y=sin(x);y=y*y;)
ってことでこの方法が一番いいかと

590 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 12:58:06 ]
計算増えるっていっても2倍と1/2と足し算だからもとのよりはいいんじゃね?

591 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 13:26:48 ]
おまえら、数値計算の勉強をやり直せ。
1 - cos(2x) なんて、 x = 0 の近辺で桁落ちして使い物にならないぞ。

double t = sin(x);
double s2x = t * t;
しか、ありえない。


592 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 13:34:29 ]
桁落ちw

593 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 15:50:05 ]
->
これはどういう意味があるのでしょうか

594 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 15:54:29 ]
やじるし

595 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 15:55:08 ]
アロー演算子
構造体のポインタからメンバにアクセスするときはドット演算子ではなくこれを使う

596 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 15:57:52 ]
struct point {
int x, y;
};
struct point p;
struct point *pp = &p;
があったとき、

(*pp).x = 1;
pp->x = 1;

が同じxに代入をしている。
構造体へのポインタを使う上での簡略化。



597 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 16:00:59 ]
>>595>>596
ありがとうございました

598 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 17:29:44 ]
使ってる教科書に載ってないのか?

599 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 19:46:39 ]
検索エンジンを作ろうとおもう。
まずEUC-JPに統一する。
旧字体は新字体、カタカナはひらがなにする。
ひらがなと、新字体以外は登録しない。
出現可能な文字に0から順に番号をつけて、N-germ (2-germ) で登録していく
あと、ハッシュを使う為に全角2文字分を圧縮して20数ビットを使う

NKF32.DLL
www.vector.co.jp/soft/win95/util/se295331.html

旧字体→新字体
www.ritsumei.ac.jp/acd/cg/lt/cl/koten/newold.htm
yasuda.homeip.net/misima/misima_seiji_test.html
www.toyama-cmt.ac.jp/~kanagawa/language/kyuuji.html
www.asahi-net.or.jp/~ax2s-kmtn/ref/old_chara.html
homepage3.nifty.com/jgrammar/ja/tools/tradkan0.htm
homepage3.nifty.com/jgrammar/ja/tools/ksimple.htm

600 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 19:56:23 ]
連載:検索エンジンを作る|gihyo.jp
gihyo.jp/dev/serial/01/make-findspot

Googleの技術は凄いと思ったがMooterっていうサイトがGoogleを上回る検索力らしい
Mooter
www.mooter.co.jp/
辞書不要の形態素解析エンジン「マリモ」とは
www.atmarkit.co.jp/news/200708/15/mooter.html
形態素解析について
www.gengokk.co.jp/thebun.htm
mecab.sourceforge.net/feature.html
Google の秘密 - PageRank 徹底解説
www.kusastro.kyoto-u.ac.jp/~baba/wais/pagerank.html
PageRankの基本概念
tnt.math.metro-u.ac.jp/labo/grad/2004/masa/graph/6.html

601 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 19:58:27 ]
>>599
ガンバレ
そしてこのスレに来るな

602 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 22:36:04 ]
「関数へのポインタ」は何に使うの?必要(あると便利)な状況がよくわからない。

603 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 22:39:42 ]
qsort関数がもろに関数ポインタ使用してるじゃないか

604 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 22:39:56 ]
qsort

605 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 22:41:46 ]
ある関数を呼ぶときに、呼ばれた関数内部で使う関数を外から指定するときに使います。
このばあい、関数へのポインターを引数で渡します。

例)
コールバック関数
リストに要素をつなげるときに大小比較関数


606 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 22:44:33 ]
qsort関数もそうですね

void qsort(void *base, size_t num, size_t size,
int (*compare)(const void*, const void*))

この、int (*compare)(const void*, const void*)が関数ポインターで
この場合はソートの並びを呼び出し側で制御できるようにしている。




607 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 22:56:19 ]
うーむ、わかったようでわからない。
複数の機能(=関数の数)を内包する関数で、引数の指定によって機能を使い分ける場合ってことかな?
でもそれって単なる文字列でも振り分け可能な気がするなぁ…やっぱりわからん。

608 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 22:59:49 ]
たとえばqsortの場合、qsortの作者が想定してない型のソートもできる

単に引数で文字列を渡すだけじゃ、qsortの作者が想定している型やソート方法しか対応できない


609 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 23:03:25 ]
>>607
ためしに qsort を使ってみろ
数値のソート、文字列のソート、自前構造体のソート・・・
そしたらわかる

610 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 23:04:51 ]
ソート機能を提供するけど、その時必要となる比較の機能は自分で作ってね ってこと
一人で作業する分にはあまり使う必要無いと思う

611 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 23:35:24 ]
比較関数はプログラマ側が用意できるので、昇順や降順、どの値を比較対象とするか等を任意に作れる。
そしてどんな比較関数でも同じ手続きで利用するために、関数へのポインタを使っている。

…で合ってる?

612 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 23:37:46 ]
ポインター自体を完全に把握してないんじゃないかね?
あれ覚えるのやっかいだし

613 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 23:38:33 ]
ソート関数とかわかりずらい STLつかっとけ

614 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 23:50:45 ]
ポインタはそんなに分かりづらいとは思わなかったなぁ。
いっぺん練習で、全ての変数をポインタとmallocでコーディングしたらイヤでも理解出来るよ。

615 名前:デフォルトの名無しさん [2007/10/31(水) 00:00:58 ]
EUC-JPコードをファイルから読み込んだとき、char やstringでは何コードで記録されるんですか?
指定できますか?

616 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 00:29:42 ]
OSは何を使ってるとか、コンパイラは何とかそういう情報も書いておこうぜ



617 名前:プリンがー mailto:aaa [2007/10/31(水) 00:47:58 ]
データa1,a2---,a10及びb1,b2,----b10を読み、積和
S=a1b1+a2b2+-----a10b10を計算せよ。

#include <stdio.h>
int main (void)
{
int i,a[10],b[10];
int S;

for(i=1;i<=10;i++){
scanf("%d",&a[i]);
scanf("%d",&b[i]);

S+=a[i]b[i]
}
printf("積和は%dです。\n",S);
return(0);
}

これであってますか??

618 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 00:49:34 ]
>>617
・Sの初期化がされていない。
・a[i]*b[i];

619 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 00:49:35 ]
>>617
>S+=a[i]b[i]
とりあえずコレが間違ってる
*と;が足りない

620 名前:プリンがー mailto:aaa [2007/10/31(水) 01:07:16 ]
>>618>>619
S=0
S+=a[i]*b[i];
ですね。
ありがとです。


621 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 01:12:26 ]
>>620
セミコロン(;)忘れるなよ

622 名前:プリンがー mailto:aaa [2007/10/31(水) 01:31:53 ]
うるせーバーカ

623 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 02:04:27 ]
かなり初心者です。
unsigned char afo_1,afo_2,afo_3,...afo_n;
とafo_1からafo_nまで宣言したい時はどうしたら良いですか?

624 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 02:09:22 ]
>>623
配列じゃダメなの?n=10なら
unsigned char afo[10];

配列の各要素へのアクセスは添字を指定する。
afo[0] = 'a';
afo[1] = 'b';

afo[9] = 'j';

625 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 02:09:30 ]
>>623
全部書くしかない。
配列でいいなら配列使え。

626 名前:623 mailto:sage [2007/10/31(水) 02:15:12 ]
>>624,>>625
nが決まった値では無いので、今の路線は無理ですねー。。
配列で頑張ってみます。夜遅いのにすみません。素早い対応ありがとうございます。



627 名前:627 [2007/10/31(水) 04:16:28 ]
明日提出のレポートのプログラムなのですが
どうしても実行後うまくいきません
簡単なプログラムで
入力された文字を”#”で表すというものですが
指摘お願いします

upsurusuru.hp.infoseek.co.jp/index.html
にアップしましたので怪しいむと思いますが
助けてくださいお願いします
07/10/31(Wed),04:10:07
この時刻にアップしました
拡張子を.cに変更してください
だれかおねがいします

628 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 04:30:05 ]
>>627
うちの環境だとコンパイルできないから確認してないけど、
isalphaとisdigitが逆なんでねーの?

629 名前:Pもかっこわりぃなぁ mailto:sage [2007/10/31(水) 10:42:33 ]
>>627
どうでもいいけど、ABCDEFGHIしKLMNOPQRSTUVWXYZになっている。

630 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 13:33:38 ]
printfとprintf_Pの違いを教えてください

631 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 13:43:36 ]
printfで数字を表示するときも”123”のように”を使いますか?


632 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 14:07:34 ]
数値と数字の違いが分からんのか

633 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 14:20:54 ]
>>631
5点

634 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 14:58:30 ]
キーが押されたら何かアクションを起こすってするにはどうすればいい?

例)
enterを押すと計算をするみたいに
enterキーが押されたっていう結果をどうやって取り込むか教えてください

635 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 15:09:11 ]
>>631
いいえ
”ではなく"を使いましょう

636 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 15:21:24 ]
>>634
getchar()でもしておいたら?



637 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 15:28:13 ]
>>634
環境による。つかキーボードドライバの仕様による。

638 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 16:35:44 ]
>>634
コンソールで?
ウィンドウで?

639 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 16:41:08 ]
ウインドウだってコンソールの一種だろ。


640 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 17:22:57 ]
>>639
>>639
>>639

641 名前:プリンがー mailto:aaa [2007/10/31(水) 17:45:50 ]
>>622
俺の猫かぶりすんなや!

642 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 23:16:08 ]
OSかかないと困るんだなって今日始めてしった
MS-DOSで実行した場合int型って2バイトづつのメモリじゃん?
でもXP上で実行したらint型だと4バイトづつになって超悩んでた結果、
16ビットマシンと32ビットマシンって事って始めて知ったよ・・・

643 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 23:23:53 ]
System.arraycopy(コピー元,コピー開始位置,転送先,転送開始位置,要素数)
のJAVAの関数を

memcpy(コピー先,コピー元,, n バイト分)
に置き換えたいのですが

要素数をnバイト分であらわすか、
nバイト分を要素数に変えるにはどうすればいいか教えてください

sizeof(nバイト分)ではダメでした

644 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 23:24:58 ]
>>643
sizeof(要素)*要素数

645 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 23:27:05 ]
>sizeof(nバイト分)
その発想は無かったわ

646 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 23:38:59 ]
>>644
できました!!!!!!!!!!!!!!!!!!!11
すいませんが、何をやっているのか教えていただけませんか?

>>645
バカですいません



647 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 23:50:11 ]
>>646
sizeof(要素)で1つあたりのバイト数が出る
要素数をかけ算すればn バイト分が求まる。
かけ算は小学校三年生だっけ?

648 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 23:55:23 ]
理解できました。

memcpyではあくまでバイトを扱うのであって
要素数分のバイトを3つ目に入れないとダメなわけですね。。。ありがとうございました






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

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

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