トップページ⇒tech
1001コメント229KB

C言語なら俺に聞け! Part 59

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。

コンパイラを探しているなら >>2-13 を。
C machineはCに非ず

上記を逸した場合の結果は激しく未定義だYO!

C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/

前スレ C言語なら俺に聞け! Part 〈58〉
http://pc2.2ch.net/test/read.cgi/tech/1054906871/
0002デフォルトの名無しさんNGNG
【コンパイラ】
gcc
http://gcc.gnu.org/

【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/

【ライセンスや機能などに問題あり】
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
0003デフォルトの名無しさんNGNG
>>2
【ライセンスや機能などに問題あり】
って、それぞれ、何処に、どんな問題があるの?
0004デフォルトの名無しさんNGNG
スレ立てお疲れぇぃ
0005デフォルトの名無しさんNGNG
>>1
乙
0006デフォルトの名無しさんNGNG
>>1
乙99
0007デフォルトの名無しさんNGNG
gcc -O2 >>1.c
0008デフォルトの名無しさんNGNG
>>7
今考えたの?
それとも前からあるネタ?
0009デフォルトの名無しさんNGNG
>>3
それぞれ調べてくれ
そしたら、次のスレからテンプレに書き込める
0010デフォルトの名無しさんNGNG
>>7
入力ファイルがないね。
これでどや?

gcc -O2 kare.c >>1.log
0011デフォルトの名無しさんNGNG
上げたはずなのに>>9のsageに負けてしまった…(T_T)
0012デフォルトの名無しさんNGNG
上がってた…(?o?)
0013デフォルトの名無しさんNGNG
sage と書いても上がらないだけで、
下がるわけではない。
0014デフォルトの名無しさんNGNG
>>13
漏れが>>8を書いた直後にスレが上がって無かったし
(すでに>>9までは書き込まれていたのも確認済み)
後から書いたスレの方がタイムスタンプが若かった事もあったので
タイミングによっては、上がらない事もあるのかと思って>>11を書いたの
でも、上がって無かったのは、その時だけだったようで>>12…(略
0015おしえてくださいNGNG
前スレ、最後の方、えらい事になっていますが、

実際の話、Cってそんなに難しいんですか?実を言うと、別会社でJavaをやっていました。
でも、どしょっぱつから、3人のプログラマーの一番偉いところをまかされて、いやになり、やめました。

他のスレには、市販で売っている(私が呼んだような入門書)を理解できていれば、Cで組めるものは、何でも組めると書いてありました。
それは、極端な例だと思いますが、実際のところ、C言語って、そんなに難しいのですか?
0016デフォルトの名無しさんNGNG
>>15
難しくはない、と思う。確かにクセはあるけど。
絶えず今扱ってるこのブツはメモリ上でどう表現されるかを
意識しながらプログラムすればそんなに難しくない。

ただし、Javaと違って危険な操作からプログラマを守ってくれないので(OSが守ってくれる場合もある)、
間違ってそういう操作をしてしまったらとたんにデバッグが泥沼になることがある。
この辺が厄介といえば厄介かな。
001716NGNG
追加。

あと細かいことができる代わりにプログラマがかなりの部分の
面倒を見てやらなきゃいけない。たとえばヒープに取ったメモリ(malloc等)は
プログラマがケアしてやらなきゃいけない。
Javaみたいにガベージコレクションをしてくれないので、すぐにメモリがリークする。
ま、標準ではないもののGCのライブラリはあるんでそっちを使えば楽できるけど。
0018デフォルトの名無しさんNGNG
Java からなら C++ やった方が楽かも。
0019デフォルトの名無しさんNGNG
コンピュータの動作原理を知らないと
どんな言語使ってもバグった時に困る
0020おしえてくださいNGNG
>>16 >>17さん、どうもありがとうございます。
前スレで、scanfについて質問したのですが、scanfだけで、
もっとCは深いみたいな、レスがたくさんついていたので、
不安になってしまいました。

中には、標準入力からの関数は自作するなんてレスまでありましたが、
標準入力関数を自作するなんてことはできるんですか?それとも、既存の関数を拡張して
作ると言う事なんでしょうか?
0021デフォルトの名無しさんNGNG
コンピュータの動作原理を知ってても
使用言語がブラックボックスの塊だったらバグった時に困る
0022_NGNG
http://homepage.mac.com/hiroyuki44/
0023デフォルトの名無しさんNGNG
scanfは自分しか使わないプログラムを書くときに使っている。
0024デフォルトの名無しさんNGNG
>>21
そうなんだよ。VBとかさ。
煽るわけじゃないけどたまにどうしようもない時がある
さんざん調べたらIEのバグだったりしてションボリ
0025デフォルトの名無しさんNGNG
>>20
scanf()系は基本的にフォーマットされたデータを処理する為にあるので
文字列の解釈や代入に使うべきではないです
と言うか、それを無闇に使ってバグを起こすから
使ってはいけないと言われている訳であって…
後は、周囲の人と適当に合わせて使うか使わないか判断すればOKです
まぁ、他人と合わせると殆どの場合は使わない方にいくと思いますが…
0026おしえてくださいNGNG
>>23さん、

では、仕事で標準入力関数を使うときは、どうしているのですか?
まさか、アセンブラみたいな感じで、自分で作るんですか?そんなに難しいなら、
とても無理だと思います。既存の関数を拡張して、標準入力関数を作るんですか?
0027デフォルトの名無しさんNGNG
>>24
結局IEのバグじゃん。
0028デフォルトの名無しさんNGNG
>たとえばヒープに取ったメモリ(malloc等)は
>プログラマがケアしてやらなきゃいけない。
>Javaみたいにガベージコレクションをしてくれないので、すぐにメモリがリークする。

突っ込みどころ満載だな。
本当にCで仕事してるのかね。
0029デフォルトの名無しさんNGNG
>>26
入力関数はscanfだけじゃないよ。
0030デフォルトの名無しさんNGNG
>>26
例えばscanf("%d",&n)はおきまりのfgets+sscanfで
0031デフォルトの名無しさんNGNG
>>28
突っ込みどころがあるなら突っ込めよ。
0032おしえてくださいNGNG
>>26さん、どうもありがとうございます!
やはり、元からある関数を使うんですね。それを聞いて、とても安心しました。

自分で、ゼロからつくるのか!?と思ってしまい、こりゃとてもじゃないぞ、と思っていたのです。

それと、回答をくれた皆さん、どうもありがとうございました。おかげさまで、何とかやっていけそうです。
0033デフォルトの名無しさんNGNG
最近C言語を勉強した者なんですが何か問題だしてもらえませんか?
あんまり難しいのは分かりませんが・・
003428NGNG
>>31
そんなに親切じゃない
0035デフォルトの名無しさんNGNG
C/C++の宿題やらせてください。9代目
http://pc2.2ch.net/test/read.cgi/tech/1055944101/l50
0036デフォルトの名無しさんNGNG
>>33
宿題スレにあるのを片っ端からやってみれば?
0037デフォルトの名無しさんNGNG
>>34
素直に謝るのが一番です。
0038デフォルトの名無しさんNGNG
>>28
よう分からんけど
void *p1,*p2,*p3;
p1=malloc(…);
p2=malloc(…);
p3=malloc(…);
:
free(p2); //解放しても使えない
って意味だと思う
つーか、俺も別におかしくないと思うけど?
0039デフォルトの名無しさんNGNG
>>27
その結論に行くまでがとてもとても苦労するのよ
0040デフォルトの名無しさんNGNG
>>28
は何につっこみたいんだ?
普通のこと言ってるだけだろ
0041デフォルトの名無しさんNGNG
>>38
void *p;

p=malloc(...);
.....
p=malloc(...);

free(p);

これの方がいいと思う。先に確保した領域を見失ってメモリリーク
0042デフォルトの名無しさんNGNG
☆頑張ってまーす!!☆美人だけ集めました☆
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
-----------------------------------------------
004316NGNG
>>20
scanfは変な動作をすることで有名な関数でプロは使わないというのは前スレの通り。
存在理由は昔書かれたプログラムとの互換性を取るためでしかない。
確かに便利な関数なので入門書ではよく使われるけどね。

他にもプロが使わないとされてる標準関数はgets(これは異論があるかも)、strtokがある。
前者はバッファオーバーフローの危険があるし、後者はバッファを破壊するから。
ま、どちらも使い捨てのプログラムでは使うこともあるけど、製品レベルでは使わない。
ちなみにこれらも存在理由は互換性のため。

標準入力関数を一から自作することは、いわゆる標準Cの範疇ではまず無理。
OSとのインタフェイスはCの規格の範囲外だから。
ただし、getcharやfgetsをベースにしてよいのであれば作れるよ。
だから既存の関数を拡張して作るという意味では作れる。

Cは深いといえば深いのかもしれないけど、言語仕様そのものは小さいので、
文法自体はさほど難しくはない。Javaを使ってたのならその辺はまず問題ない。

# つーてもポインタ・配列・関数ポインタの宣言周囲りの変な構文はあるなあ。あれは癌だ。
# パズルとしては面白かったけど。
004416NGNG
>>28
ぜひ突っ込んでくれ。いや煽ってるのではなくどこが間違ってるのか知りたい。
0045デフォルトの名無しさんNGNG
どうせくだらない揚げ足とりだろ、>>28よ。

>たとえばヒープに取ったメモリ(malloc等)は
>プログラマが開放してやらなきゃいけない。
>Javaみたいにガベージコレクションが不要メモリの開放をしてくれないので、
>すぐにメモリリークが起こる。

とか言いたいんだろうけど、そんなもんわざわざ突っ込んでたら
円滑なコミュニケーションがとれんぞ。
言いたい事は伝わってるだろう。

0046デフォルトの名無しさんNGNG
>>43
できないできないと言っているが、
じゃあ何を使って作るのだ?
たとえばintを入力する場合どのように書くのだ?
手抜き無しの安全なコードで頼む。
0047デフォルトの名無しさんNGNG
>>28
ほんとだよ。バカ!
004828NGNG
揚げ足とりじゃない。
大幅に間違ったことはいってないが、正しいことも言ってない。
初心者が聞いたら誤解をまねくし、問題の本質をついてない。
0049デフォルトの名無しさんNGNG
>>44
28ではないが、17の文章は
メモリがプログラマは悪くないのに勝手にリークするような感じを受ける。
005016NGNG
>>45
そういう意味なのかな…。わざと解放しない場合もあるよ。
だから解放するとかfreeするとか書かないで「ケアする」と書いたんだけど。

# つか、これに触れると変な箱の議論になりそうなんであとは静観しよう
0051デフォルトの名無しさんNGNG
scanfでここまで話が盛り上がるとは・・・
0052デフォルトの名無しさんNGNG
>>47&&28
何か懐かしいな…
その議論(標準入出力ネタ)、漏れ、何年か前に、この板でやった事あるよ
つーわけで、生暖かく見守ってあげるので、心おきなく争って下さい
0053デフォルトの名無しさんNGNG
>>52
その時は、どう解決したの?
0054デフォルトの名無しさんNGNG
>>48
>大幅に間違ったことはいってないが、正しいことも言ってない。
そういうのは「突っ込みどころ満載」とは言わんよ。

だったら正しい問題の認識を提示してやればいいのに
005528NGNG
>45みたいな意味じゃないよ。てか
>変な箱の議論になりそうなんで
それを知ってるのくらいなのに>17みたいな表現を初心者にしなさんな。

>>52
いや、漏れももう勘弁。
0056デフォルトの名無しさんNGNG
挑発しないで最初から指摘してやればよかったのに。
005728NGNG
自分が突っ込まれるのが怖いのでしません。
005845NGNG
なんかスマソ
0059おしえてくださいNGNG
>>43さん

どうも、大変分かりやすくて助かりました。Javaとそのへんは、あまり変わりないと聞いて、
あんしんしました。
0060デフォルトの名無しさんNGNG
GCがあるからメモリ管理が「無用」というミスリードをする
馬鹿教本は纏めていってよし。「無用」じゃなくて「負担が
少ない」だけなのにね。
006116NGNG
>>55
なるほど了解。確かに誤解を与えかねない表現でした。
ただ言い訳をさせてもらうならば、あの文脈はJavaの
ガベージコレクタとの対比として出したので云々。

ヒッコミマス
0062デフォルトの名無しさんNGNG
まあスーパーハカーの俺ならscanfを使っても安全なプログラムに仕上げられるけどな。
0063デフォルトの名無しさんNGNG
>>46に答えろや
0064デフォルトの名無しさんNGNG
>>53
相手方が標準入出力を特定のメモリの位置にすれば出来ると抜かして
(つまり、stdout or stdin を特定の位置に決めてしまう)
漏れは馬鹿馬鹿しくなったので、その時点で降りました
言うまでも、ありませんが、相手方が言ってる事は
Cコンパイラを作る事であって標準入出力を作る事では無い
0065デフォルトの名無しさんNGNG
>>62
ハに゙をお忘れのようで。
0066デフォルトの名無しさんNGNG
>>63
アセンブラ
0067デフォルトの名無しさんNGNG
>>63
質問の意味がわかりません
0068デフォルトの名無しさんNGNG
>>63
int i;
fread(&i,sizeof(int),1,stdin);
0069デフォルトの名無しさんNGNG
標準入出力なんて所詮はputchar(), getchar()に皮を被せただけの物さ。
0070デフォルトの名無しさんNGNG
>>69
はいはい、分かったから、がんがって作ってみ
0071デフォルトの名無しさんNGNG
みんなプログラムを載せて、論より証拠みたいなことを
する香具師はいないのか?
0072デフォルトの名無しさんNGNG
>>71
世の中出来る事と出来ない事がある
で、出来ない事を出来ると言う香具師に限って証拠は見せない
ちなみに、何作らせたいの?
0073デフォルトの名無しさんNGNG
>>72
文字列を連結する関数をお願いします・・・
月曜日までの課題なんです(>_<)
0074デフォルトの名無しさんNGNG
>>73
そりゃスレ違いだ。
0075デフォルトの名無しさんNGNG
>>73
#include <string.h>
#define renketsu(dst,src) strcat(dst,src)
0076デフォルトの名無しさんNGNG
>>73
http://pc2.2ch.net/test/read.cgi/tech/1055944101/75-76
0077デフォルトの名無しさんNGNG
>>73
renketu( char *str_a, char *str_b ){
  strcat(str_a,str_b);
}
007873NGNG
みなさんスレ違いにも関わらずありがとうございました(>_<)
0079デフォルトの名無しさんNGNG
ヷ〳〵〳〵〳〵〳〵〳〵〳〵
0080デフォルトの名無しさんNGNG
>>76
文字列の連結くらい、幾らでもあると思うけど
何で、そんなに早く見つけられるんだろう…
さては、おまいさん、タイ○(以下スレ違いの為、割愛)
0081デフォルトの名無しさんNGNG
さて73の宿題はどう評価されるのかな。
0082デフォルトの名無しさんNGNG
あえて冗長にかくのが自然に見せるテク
まちがっても
*p++とか書いてはいけない
0083デフォルトの名無しさんNGNG
char *strneko(char *dest,const char *src)
{
strcpy(strchr(dest,'\0'),src);
return dest;
}
0084デフォルトの名無しさんNGNG
まぁ課題だからstrcatは使っちゃいけないんだろうな

renketu( char *str_a, char *str_b ){
  strcpy( str_a+strlen(str_a), str_b);
}
0085デフォルトの名無しさんNGNG
>>83
俺ならstrchr()の変わりにstrlen()を使う
まぁ、特に、と言うか、全く意味無いけど
0086デフォルトの名無しさんNGNG
かぶった…(T_T)
0087デフォルトの名無しさんNGNG
もしも標準ライブラリを書くことになったら、一部だけきちんと書いて、あとは>>83-84としちゃうけどまずいかなぁ?
0088デフォルトの名無しさんNGNG
出欠大サービス

size_t strlen( char *src )
{
  size_t ret=0;
  while(src[ret]!='\0')ret++;
  return ret;
}

char *strcpy( char *dst, const char *src )
{
  size_t cnt=0;
  while((dst[cnt]=src[cnt])!='\0')cnt++;
  return dst;
}
0089デフォルトの名無しさんNGNG
みんな優しいな。
スレ違いの質問なのに。
0090デフォルトの名無しさんNGNG
ワロタ
009188NGNG
出血が…
strlen( const char *src )が…
パッと見た目だけで、こんなにもミスが…
0092デフォルトの名無しさんNGNG
質問があります。
変数の寿命はわかるんですが(例えばローカル関数なら
returnされるまで)、定数の寿命も同じなんですか?

void func(*char)
{
 char = "2ch";
}
これはNG?
0093デフォルトの名無しさんNGNG
constつければ書き換えられる心配がないことが分かるけど、
それよりもつけないとconstを指すポインタを(そのままでは)渡せなくなるんだよね。

これを指摘された時は目から鱗が落ちた。
0094デフォルトの名無しさんNGNG
>>92
NG
変数名は?charにポインタは入れられないよ
0095デフォルトの名無しさんNGNG
何から説明するべきなのだろうか…
0096デフォルトの名無しさんNGNG
>>92
寿命以前の問題なんだが
009792NGNG
>>94すみません思いっきりまちがえてますた
こうですた。
void func(*char str)
{
 str = "2ch";
}
009892NGNG
また間違えた・・・
void func(char* str)
{
 str = "2ch";
}
0099デフォルトの名無しさんNGNG
「定数の寿命」というのもよくわからん
0100デフォルトの名無しさんNGNG
>>97
*の場所がおかしい

strには"2ch"の先頭アドレスが入るけど、それではなんの意味もない。

void func(char **str)
{
*str="2ch";
}
010192NGNG
>>99
"2ch"がメモリのどこかに確保されて、
strにそのポインタが渡されるんですよね?
そのポインタはいつまで使えるんだろう?ということです。
0102デフォルトの名無しさんNGNG
>>101
プログラム開始から終了まで
0103デフォルトの名無しさんNGNG
文字列リテラルは永久に不滅です
0104デフォルトの名無しさんNGNG
リテラル文字列の寿命はプログラムが始まってから終わるまで。
というか、ずっと。

あと、リテラル文字列を変更されて欲しくないので

void func(const char **str)
{
*str="2ch";
}

として欲すぃ。
0105デフォルトの名無しさんNGNG
なにを作りたいのか知らないけど、戻り値にすればいいのに。標準ライブラリのstrerrorみたいに。
0106デフォルトの名無しさんNGNG
>>101
どっかに"2ch"と書かれた領域があって、
funcに突入したときにstrがその領域を指すように初期化される。

で、funcを抜けたとき
・"2ch"と書かれた領域はそのまま存在する。
・strそのものは寿命がなくなる

君の言ってる「ポインタ」が"2ch"が書かれた領域のアドレスのことなのか
strそのもののことなのか判然としない。前者ならプログラム開始から終了まで、
後者ならfuncに突入した直後からreturnするまで。
0107デフォルトの名無しさんNGNG
最近は文字列定数とは言わないのか
010892NGNG
>>100
むーそうなるんですか。
*が2つ出てくるとちょっと難しいっす。じゃfuncを呼び出す側は
char *str[100];
func(str);
printf(str);
なんでしょうか。

>>102
そうなんですか。定数はどこに登場させても
プログラム開始時には領域を持っているのですか?
それとも領域が確保されるのはその関数が呼ばれた時だけど、
スタック領域に積まれるわけではないということですか?
0109デフォルトの名無しさんNGNG
func(&str);
でも
str=func();
でも良いけど
str=DEFINED_2CH;
が良いと思う
0110デフォルトの名無しさんNGNG
>>108
それじゃポインタの配列でしょ。

char *str;
func(&str);

ポインタのアドレスを渡すの。
0111デフォルトの名無しさんNGNG
>>108
> スタック領域に積ま
自動変数じゃないもん

#自動変数がスタックに積まれると決まっているわけじゃないというつっこみは勘弁
0112デフォルトの名無しさんNGNG
>>108
char str[100];
func(&str);
printf("%s\n",str);
0113デフォルトの名無しさんNGNG
>>112
配列?
0114デフォルトの名無しさんNGNG
まず、
「そのポインタは今どこを指してるのか」を意識しながら考えたほうがいいぞ
0115デフォルトの名無しさんNGNG
>>109
その例ではそうだけどね...。
0116112NGNG
何をやってるのだろうか…つー訳で首吊ってきます
011792NGNG
うあー皆さんありがとう。
もう少し考えて出直してきます。
0118デフォルトの名無しさんNGNG
>>117
一体何をつくっているの?
多分もっとよい方法があると思うんだけど・・・・
0119デフォルトの名無しさんNGNG
まぁ、おそらく、こうしたいのだろう…

void(char *str)
{
  strcpy(str,"2CH");//文字列は直接代入出来ない
}

char str[100];
func(str);
printf("%s",str);
0120デフォルトの名無しさんNGNG
>>118
作ってるものが分からないのに、
よい方法があるとか言うな!
012192NGNG
>>118 いや、何をというわけではなくて単に、
どこかで使われた文字列定数が、いつどこに確保されて
いつまで保ってるんだろうと思いまして。
0122デフォルトの名無しさんNGNG
>>120
少なくとも戻り値 void な状況で
こういうことをする必然性はないのぅ。
戻り値が別にあるのであれば、
こういうことをすることもあるかもしれんが。
0123デフォルトの名無しさんNGNG
>>120

本当だ(T_T)
>>121
0124デフォルトの名無しさんNGNG
各社コンパイラのC99への準拠っぷりが気になる
012592NGNG
そういや >>108に書いた、
>そうなんですか。定数はどこに登場させても
>プログラム開始時には領域を持っているのですか?
これに関してはどうなんでしょうか?
ものすごい見当はずれな疑問だったらすみません。
0126デフォルトの名無しさんNGNG
>>124
あるの? C99準拠コンパイラ
0127デフォルトの名無しさんNGNG
一般的にデータ領域とかいうところに置かれるんじゃなかったか?
で、読みとり専用だったりすると書き換えようとしてあぼーん


しったかで書いているんだけど・・・
0128デフォルトの名無しさんNGNG
メモリマップをみれば
012992NGNG
それもそうですね。
ということで、見ました。
funcが呼ばれる前に "2ch"が既にあるようです。
0130デフォルトの名無しさんNGNG
>>125
コンパイラ依存だったと思う
例えば"2CH"なら'\0'まで含めて4バイトなので
ものによっては、そのまま即値データと置かれてる可能性もあるし
>>127さんの言われるとおり、
読取り専用(なければ読み書き)のデータ領域の可能性もあるし
奇想天外な方法で確保している可能性も否定できない
(間違ってたらスマソ)
0131デフォルトの名無しさんNGNG
文字列リテラルならアドレスを得ないことはないと思うので、必ずメモリー上に置かれるんじゃないかなぁ。
0132デフォルトの名無しさんNGNG
>>131
そう言われれば、そんな気がしなくもない…
0133デフォルトの名無しさんNGNG
文字列リテラルはデータセグメント(メモリ)内に置かれる。
0134デフォルトの名無しさんNGNG
ていうか実装依存です。だからって書き換えちゃダメだけどね
0135デフォルトの名無しさんNGNG
いや、データセグメントって言うのは、処理系依存の話しだし…
013692NGNG
ああ、やっと>>104 >>110 の意味がわかりました。
char* str;
ってのは、charへのポインタを格納する変数だから
そのアドレスを渡すのだね。
だから当然、funcでは引数は **strだし、代入するには
その引数の中身(アドレス値)である *strなんだ!
ひとりレベルの低いレスですまんこ。
0137デフォルトの名無しさんNGNG
>>135
実装依存と処理系依存は意味違くない?自信ないけど
0138デフォルトの名無しさんNGNG
>>137
データセグメントはCPUが扱っているものだから処理系依存
(x86系だとCS,DS,ES,SS等々ありますが、DSが存在するかは処理系依存)
で、実際に<どうやってリテラルを保存するのか決めるのは
コンパイラだから実装依存
0139デフォルトの名無しさんNGNG
ISO 9899-1999
6.2.4.3 ... 静的オブジェクトはプログラム実行中つねに存在し
スタートアップに先立って初期化される。

6.4.5.5 ... (文字列定数は)静的な配列として
文字列を格納するのに適切なサイズで初期化される。 ...
0140デフォルトの名無しさんNGNG
何か、書き方が悪かったので訂正
データセグメントはCPUが扱っているものだから処理系依存
(x86系だとCS,DS,ES,SS等々ありますが、
 DSが存在するかは、そのCPUに依るので処理系依存)
で、実際に、リテラルを保存するのはコンパイラだから実装依存
0141デフォルトの名無しさんNGNG
>>136
ちょうどstrtolの第二引数がそんな感じ。
0142デフォルトの名無しさんNGNG
C++の話になるけど、継承をしたときに
クラスの種類を文字列定数のアドレスで判断してたら
STLのVECTORでクラス作ったら文字列定数のアドレス変わってたんだけどそういうもんですか?
ちなみに判断するときは
return "C2ch";
ってやって返ってきたアドレスで
if(GetName() == "C2ch")
とかやってます。
0143デフォルトの名無しさんNGNG
>>142
http://pc2.2ch.net/test/read.cgi/tech/1055162298/
0144デフォルトの名無しさんNGNG
>>142
同じ文字列リテラルが区別されるかどうかは処理系依存だから、
vector云々関係なくそのコードはまずい。
0145デフォルトの名無しさんNGNG
なんでCスレはC++スレと比べてこんなに伸びが良いのだろう
未だC++に移行できないウニクス野郎ばかりだからだろうか・・・
0146デフォルトの名無しさんNGNG
0からC++を勉強するヤツは少なくて、
0 → C → C++
  ↓  ↓
  脱落 脱落
的なことになるからじゃねーの?
0147デフォルトの名無しさんNGNG
人生の敗北者でも使えるC
人生の敗北者では使えないC++
0148デフォルトの名無しさんNGNG
>>142
"C2ch" ってリテラルは 1 つだけとは限らない。
んな事いう香具師もいるのか。
頼むから業務系で頑張ってくれ。
0149デフォルトの名無しさんNGNG
平気でアドレス比較していることも信じがたいが
C++の話になるけどとか言いながら話し始める142の神経が信じられない。
0150デフォルトの名無しさんNGNG
>>149
アドレス比較はscanfと同類か?
0151デフォルトの名無しさんNGNG
>>150
アンタの頭の中では同類なのか?
0152デフォルトの名無しさんNGNG
痛い目にあったのを道具のせいにして自分の散漫さを反省しないやつが
嫌いになりそうなものってとこに共通点があるような気がしたんだ
0153デフォルトの名無しさんNGNG
まぁ、>>142は単なるアフォとしても

>>140がとにかくイタい。
知ったかはいかんのだよ、知ったかは…
0154デフォルトの名無しさんNGNG
一日たった110円であなたのお店やホームページの宣伝をします!

貴方のお店&サイトを効果的に宣伝できます!
お店の足取りが悪い・・・。私のサイトにはあまり人が来ない・・・。などお悩みの方は、
ぜひおすすめです。手軽&簡単しかも日本中に宣伝できますので、
大幅なアクセスアップが期待できます。

[料金について]
1日110円で宣伝&クーポン券の発行が出来ます。
年間契約で申込された場合、40,000円になります。
6ヶ月契約で申込された場合、25,200円になります。
3ヶ月契約で申込された場合、12,600円になります。

http://www.c-gmf.com/h17103.htm(ビジネスパートナーも募集中。稼げます!)

ぜひ一度お試しになってみてはいかがでしょうか?
0155ひよこ名無しさんNGNG
 
キタ━━━━━━━━━━━━━━(゚∀゚)━━━━━━━━━━━━━━━!!!!
 
http://diary4.cgiboy.com/0/izuminoa/
 
0156デフォルトの名無しさんNGNG
cgiboy.com ウザ
0157デフォルトの名無しさんNGNG
ASCII文字列があって、その文字列が数字のみで構成されていたら数値に変換、
1文字でもアルファベットや記号などを含んでいたらとりあえず0を返すような
関数を作りたいのですが、どのやり方が一番効率がいいのでしょうか?
atoiだと"12a"と入れても12と返って来てしまうので困っています。
やはり1文字1文字解析しながら条件分岐などさせて変換するしかないでしょうか?
0158デフォルトの名無しさんNGNG
>>131
void foo()
{
 char str[] = "2ch";
}
とした場合、str は foo に入る度に初期化される。
このとき、文字列リテラルを4バイトの即値として扱って
str を初期化するように最適化される場合がある。
確か VC++ 6.0 でそうなってるのを見た気がする。

もちろん、アドレスをとらないといけないような場合は
そういうことはしないと思うけど。
0159デフォルトの名無しさんNGNG
for (s = t; *s; s++)
if (!isdigit(*s)) return 0;
return atoi(t);
0160デフォルトの名無しさんNGNG
>>157
isdigit で確認しつつ一文字ずつ解析しながら
自分で変換するのが一番いいかと。
面倒なら、isdigit で全体が数値のみで構成されてる事を確認して、
あとは atoi 使って変換したのでもいい。
実行速度効率的には二度手間だけど、
コーディングの手間としてはこっちの方が楽かも。
0161デフォルトの名無しさんNGNG
int f(char*s){return strspn(s,"0123456789")==strlen(s)?atoi(s):0;}
0162デフォルトの名無しさんNGNG
s + strspn(s,"0123456789") == '\0' ? atoi(s) : 0;
こんなかんじでできないかな?
0163デフォルトの名無しさんNGNG
s[strspn(s,"0123456789")]?atoi(s):0;
こうか?
0164デフォルトの名無しさんNGNG
少しずつトリッキーになりつつあるな・・・
0165デフォルトの名無しさんNGNG
s[strspn(s,"0123456789")?0:atoi(s);
0166165NGNG
しまった、]で閉じてない(w
0167デフォルトの名無しさんNGNG
空の文字列わたすとどうなるんだ?
0168デフォルトの名無しさんNGNG
>>157
先頭の符号や空白はOKならばstrtolを使え。

long func(char *s)
{
long n;
char *endp;

n=strtol(s,&endp,10);

return *endp?0L:n;
}
0169168NGNG
引数はconst char *sの方がいいか
0170デフォルトの名無しさんNGNG
皆さんありがとうございます。そのまま使ってしまいましたが
こんな感じになりましたがどうでしょうか?一応動きます。
標準関数知らなすぎました(汗)。
int main()
{
char buf[15];
int ch = '\n';
fgets(buf, sizeof(buf), stdin);
if(strchr(buf, ch) == NULL){
fprintf(stderr, "バッファを越えました\n");
exit(1);
}
buf[strlen(buf)-1] = '\0';
printf("%d\n", convertInt(buf));
return 0;
}

int convertInt(char *string)
{
char *s;
for (s = string; *s; s++){
if (!isdigit(*s))
return 0;
}
return atoi(string);
}
0171デフォルトの名無しさんNGNG
>>170
負の数は扱えないでつね
0172デフォルトの名無しさんNGNG
☆可愛い彼女が貴方のために・・・☆
http://endou.kir.jp/yuminet/link.html
0173デフォルトの名無しさんNGNG
☆可愛いCヲタが貴方のために・・・☆
http://pc2.2ch.net/test/read.cgi/tech/1056109884/
0174デフォルトの名無しさんNGNG
>171
ラインエディタで行数指定して行の追加、削除などを考えているので
負の数は一応使わないということで0を返すように統一してあります。
0175デフォルトの名無しさんNGNG
どうすれば、ULONGLONG 型や、__int64 の数字を文字で表示できますか?

ULONGLONG ull;
char s1[50];
ull = ( ULONGLONG ) ~0;
wsprint( s1, "%u", ull );

で変換すると、s1 は「4294967295」で、UINT 型の最大値が表示されてしまいます。
デバッグで見ると、ull はちゃんと ULONGLONG 値の最大値が入っている…
どなたか知っている方、お願いいたします。

もちろん sizeof( ULONGLONG ) の値は 8 です。
OS:Windows98 SE
0176デフォルトの名無しさんNGNG
>>174
ならエラー値は負数にすればいいのに・・・
0177デフォルトの名無しさんNGNG
>>175
スレ違い・・・・
long longならスレ違いでもないんだけど。
0178デフォルトの名無しさんNGNG
>>175
最後の1行がワラタ
0179175NGNG
>>177
もしかして、C++相談室の方ですか?
0180デフォルトの名無しさんNGNG
>>179
違いますが
ULONGLONGや__int64なんて型は標準にはないんだからここで聞くのはスレ違い。

そんなものコンパイラのマニュアルのprintfのページに載っていると思うけど。
0181デフォルトの名無しさんNGNG
一番肝心なコンパイラの名前を書かないでOSの名前だけ書くとは
0182デフォルトの名無しさんNGNG
buf[strlen(buf)-1] = '\0';
なにこれ?
0183デフォルトの名無しさんNGNG
>>182
意味ないけど文字列の終わりの'\0'の'\0'を載っけたいんだろ?

それにこうじゃねーの?
buf[strlen(&buf)-1] = '\0';
0184デフォルトの名無しさんNGNG
>>182
多分fgetsで書き込まれた改行文字を取り除きたいんだと思う。

>>183
(-_-;)
0185デフォルトの名無しさんNGNG
改行消しだと思うよ。
0186デフォルトの名無しさんNGNG
>>183
意味あるだろ。
strlenが何を返すか考えろ。
たとえばbufが空の文字列だったときとか。
0187デフォルトの名無しさんNGNG
>186
bufが空文字列ということはありえない。ちょっと上のifを見れば分かる。
0188186NGNG
>>187
悪い。
別にbufが空の文字列のとき誤作動とか言いたいわけじゃなくて、
183が理解出来てないようだから一番簡単な例を示しただけ。
0189デフォルトの名無しさんNGNG
>>170
strchr(buf, '\n')と直接\nを書いた方がいいと思う。
0190デフォルトの名無しさんNGNG
p = strchr(buf, '\n');
if (!p) ...
*p = '\0';
0191デフォルトの名無しさんNGNG
>176
確かに。プログラム全体に関わるかもしれないので考え直します。
>189
一回しか使ってないのでそのほうがよさそうですね。

やっぱり何も入力しないでEnter押したときはconvertIntに渡さないで
事前にチェックしてexitとかしたほうがいいでしょうか?
0192175NGNG
違うところで聞いてみます。
レスサンクス
0193デフォルトの名無しさんNGNG
"%u"ってint型を表示するんじゃないの?
0194デフォルトの名無しさんNGNG
>>193
%u = unsigned int
%lu = unsigned long int
%llu = unsigned long long int (C99)
0195デフォルトの名無しさんNGNG
static const unsigned long long int a = 0;
0196デフォルトの名無しさんNGNG
extern const unsigned long long int a;
0197デフォルトの名無しさんNGNG
>>192
VC++なら__int64は%I64d
0198デフォルトの名無しさんNGNG
Boomerangをインストールしたんですが、解析のしかたが分かりません。
特にexeファイルを解析したいです、どうすればよいでしょうか?
0199デフォルトの名無しさんNGNG
通報しますた
0200デフォルトの名無しさんNGNG
受理しますた
0201デフォルトの名無しさんNGNG
Cpad for LSI C-86を使ってるんですが、
以下のようなエラーメッセージが出てコンパイルできません。
原因も全然分かりません。誰か教えてください。助けてー!!!
"lcc: can't exec: cpp: No such file or directory"
0202デフォルトの名無しさんNGNG
>>201
まずgccをダウンロードしてきてください。
0203デフォルトの名無しさんNGNG
>>202
どこでダウンロードできるんですか?
0204デフォルトの名無しさんNGNG
☆可愛い娘たちが貴方のために・・・☆
http://endou.kir.jp/yuminet/link.html
0205デフォルトの名無しさんNGNG
>>203
>>204のところです
0206デフォルトの名無しさんNGNG
>>205
・・・・エロリンクしかないんですけど・・・・・
0207デフォルトの名無しさんNGNG
>>206
冗談はさておき
http://pc2.2ch.net/test/read.cgi/tech/1042611308/
ここの最初のリンク
0208デフォルトの名無しさんNGNG
>>207
できましたー!!!次はどうしたらいいんですか???
0209デフォルトの名無しさんNGNG
次にCpadとLSI C-86を捨てます。
0210デフォルトの名無しさんNGNG
それで・・・、なんか.exeを実行するんですか???
0211デフォルトの名無しさんNGNG
最後にgccでコンパイルして出来上がりです。
0212デフォルトの名無しさんNGNG
んんんん・・・できない・・・もう一度cpadを解凍して、コンパイラをgccに
するってこどですか???
0213デフォルトの名無しさんNGNG
だれかー・・・・おしえてくださーい!!!!!
0214デフォルトの名無しさんNGNG
>>212
207のリンク先のDownloadからMinGWを落として解凍すれば使い方も一緒に全部入ってるはず。
0215デフォルトの名無しさんNGNG
全部英語でほとんど意味不明なんですけど、
その辺は自助努力ってことですか???
ギャビーン・・・・
0216デフォルトの名無しさんNGNG
>ギャビーン・・・・

ってなんですか?なんとなくガーンって感じはするんですけど。。。
0217デフォルトの名無しさんNGNG
英語は読めない・・・・助けてくれます!?・・・
ガーン
0218デフォルトの名無しさんNGNG
>217
パス通して
gcc hogehoge.c
0219デフォルトの名無しさんNGNG
>>218
パスてなんですか?
だれにパスするの?
はぁ〜
0220デフォルトの名無しさんNGNG
>>219
どこまで知れば、目的に達成できるのか、もうちょっと調べてから
質問してくれないのカナー。
0221デフォルトの名無しさんNGNG
釣りにしては長いな
0222デフォルトの名無しさんNGNG
釣りじゃなくて漁です。大漁の予感がします。
今網を巻き戻してるところなのでもう少し待ってください。
0223デフォルトの名無しさんNGNG
hogehoge.cなんて解凍してもできないっす・・・
0224おしえてくださいNGNG
borlandC++コンパイラをおとして、BCPadをおとして、設定すれば良いだけの話しです。
0225おしえてくださいNGNG
なんで、みなさんは、難しいコンパイラを、教えるのですか?
0226デフォルトの名無しさんNGNG
勉強のため。
効率を重視するときはIDEを使います。
0227デフォルトの名無しさんNGNG
俺は勉強がすんでいるからわざわざ難しいコンパイラなんて使わないけどね。
0228デフォルトの名無しさんNGNG
C実践プログラミングという本に符号付き整数を右シフトした場合、シフトしてあいた部分には符号ビットと同じものが入ると書かれていたんですが、
符号付きでかつ負数を右シフトした結果は処理系依存ですよね?あいた部分が1で埋められると決まっているわけではないですよね?
0229デフォルトの名無しさんNGNG
処理系依存です
0230デフォルトの名無しさんNGNG
sdkってなんの略?
0231デフォルトの名無しさんNGNG
>>230
そこ。
どこ?
ここ。
0232デフォルトの名無しさんNGNG
>>229
ですよね。ありがとうございました。

ごく一般的な例を示しただけなのかな。表形式で決めつけた書き方をしていたんだけど・・・
0233デフォルトの名無しさんNGNG
コンパイラに難しいとか簡単だとかあるのか?
VisualStudioが使いにくいとかgdbがとっつき難いってのは判るが。
0234デフォルトの名無しさんNGNG
漏れの本にも、
doubleの精度は約13桁です
って書いてある。
0235デフォルトの名無しさんNGNG
#include<stdio.h>
char search(char*,char*);
main()
{
char moji1[81];
char moji2[81];
printf("店の姫の名前をカキコんでみてネ。(ただし、80字以内にしないとお仕置きよん♪)");
scanf("%s",moji1);
printf("やりたい姫の名前をここに挿れてっ。お・ね・が・い♪");
scanf("%s",moji2);
if(search(moji1,moji2)==0)
{
printf("殿!お探しになってた姫は在籍しております。\nお急ぎくださいませ!");
}
else
{
printf("殿!今日お探しになってた姫は休みをとっております。\nまた別の機会にご来店ください。よろしくおながいします。")
}
}
0236235の続きNGNG
char search(char*x,char*y)
{
char* a,b;
int s;
b=y;
while(*x!='\0')
{
while(*y!='\0' && *x!='\0')
{
if(*x==*y)
{
s=0,x++,y++;
}
else
{
s=1,x++;
}
if(s==0 && *y=='\0')
{
retrun 0,break;
}
if(s==0 && *x!=*y)
{
y=b;
}
}
}
return 1;
}
0237ひよこ名無しさんNGNG
 
キタ━━━(,    )(,,    )(,    )(`×´ ;)━━━ッ!!
 
http://diary4.cgiboy.com/0/izuminoa/
 
0238236NGNG
>char* a,b;
は
char* a;
char* b;
という解釈でおながいします。
0239デフォルトの名無しさんNGNG
>>238
それよりもなんの目的でソースを貼ったんですか?
0240デフォルトの名無しさんNGNG
char*a, b論外
strcmp
0241デフォルトの名無しさんNGNG
なんかウゼえコーディングだな
0242デフォルトの名無しさんNGNG
C言語覚えたてでウキウキなんだろう。そっとしておけ。
0243_NGNG
http://homepage.mac.com/hiroyuki44/
0244236NGNG
おまえら滅ぶよ
0245デフォルトの名無しさんNGNG
>>236 は釣りかなんかですか?
0246デフォルトの名無しさんNGNG
struct a{
 struct b{
  int com;
 }mac;
}homepage;

int hiroyuki44;

homepage.mac.com/hiroyuki44

いや、べつに意味は無いんだけど…。
0247デフォルトの名無しさんNGNG
>246
あぼ〜んだよ(w
0248デフォルトの名無しさんNGNG
C言語覚えたてといえば、覚えてから一度も共用体なるものを使ったことないけど
誰かいる。
unionって今はじめて打ったよ。
あと。#if #elseとかも一度もない・・・
0249デフォルトの名無しさんNGNG
>>246&&247
良く見るけど、そのアドって何なの?
0250デフォルトの名無しさんNGNG
>>249
名前欄にfusianasanと入力するんだよ。
0251fushianasanNGNG
こう?
0252nthkid031062.hkid.nt.adsl.ppp.infoweb.ne.jpNGNG
ヷ〳〵〳〵〳〵〳〵〳〵〳〵
0253デフォルトの名無しさんNGNG
>>248
union は使わんなぁ。
でも、#if #else は結構使うぞ。
0254デフォルトの名無しさんNGNG
>>252
なんか字がスゴいことに…
0255デフォルトの名無しさんNGNG
>>253
VC++に#if #elseと似たような機能があるよ。
指定した行や関数を無効にするようなものが。
0256デフォルトの名無しさんNGNG
でも、式で操作できないよ。
0257デフォルトの名無しさんNGNG
>>255
標準より処理系の拡張がいいと申すか?
0258デフォルトの名無しさんNGNG
union便利だよ。
0259デフォルトの名無しさんNGNG
前の現場で変なunionの使い方してて、
たった1個のDBの項目長が変わっただけで大量の修正orリコンパイルを
余儀なくされたよ。

相当メモリを節約したいか、同じ領域を無理やり違う型ですぐに見たいときでもなきゃ
使うもんじゃないな。
0260デフォルトの名無しさんNGNG
制御系やるとたまに使うな>union
0261デフォルトの名無しさんNGNG
>>260
初めて使った union は union REGS regs; ダターヨ。
0262デフォルトの名無しさんNGNG
>>261
俺もだ。
VRAM 操作するときに使っターヨ。
0263デフォルトの名無しさんNGNG
>>248
エンディアン変換する時には激しく便利だな。
>union
0264デフォルトの名無しさんNGNG
>>263
どういう風に便利?
0265デフォルトの名無しさんNGNG
別に union いらん気もするが。

void change_int_endian(int *value) {
 char tmp;
 char *c = (char*)value;
 tmp = c[0];
 c[0] = c[3];
 c[3] = tmp;
 tmp = c[1];
 c[1] = c[2];
 c[2] = tmp;
}
0266デフォルトの名無しさんNGNG
>>265
それだとintのデータしか扱えなくて汎用性がない。

既存のソースの改修や、同じ関数内で変換したい場合は以下のようにする。

union {
unsigned long Dword;
unsigned short Word[2];
unsigned char Byte[4];
} data;

data.Dword = hoge;

/* Big Endian */
BigEndiadn = (unsigned short)((data.Byte[0] << 24) | (data.Byte[1] << 16) | (data.Byte[2] << 8 | data.Byte[3]) );
0267デフォルトの名無しさんNGNG
ふと思ったんだが

union hoge{
 short s[2];
 int i;
} uni;

uni.s[0] = 1;
uni.s[1] = 0;

printf("%d", uni.i );

ってやったらさ、65536って出るよね。
0268デフォルトの名無しさんNGNG
>>266
CHAR_BITSが8じゃなかったら?
0269デフォルトの名無しさんNGNG
そこまでやるんだったらフツーに char* つかえばいいような気がするが。
0270デフォルトの名無しさんNGNG
>>266
それってBig EndianでもLittle Endianでも同じ値になる?
0271デフォルトの名無しさんNGNG
BigEndiadn = (unsigned short)((data.Byte[0] << 24) | (data.Byte[1] << 16) | (data.Byte[2] << 8 | data.Byte[3]) );


…アフォだ、真性の。
0272デフォルトの名無しさんNGNG
>>271
short と long のキャスト間違えただけだろ。
0273デフォルトの名無しさんNGNG
>>272
shortが32ビットなんだろ?
0274デフォルトの名無しさんNGNG
あのシフト演算してる内容はムチャクチャに見えるんだが。

アフォだ、真性の。
0275デフォルトの名無しさんNGNG
>>271&&274
アフォで短小で包茎で早漏って言いまちたね
アフォで(略)って言った方がア(略)なんでちよ
そう、ママに教わりまちぇんでちたか?
0276デフォルトの名無しさんNGNG
ビッグエンディアンとリトルエンディアンの定義を
逆に覚えてしまっているのか。
0277デフォルトの名無しさんNGNG
>>275
それはママンには習わなかったが、>>265みたいになるんじゃないのか?
0278265NGNG
>>277
俺かよっ!!
0279デフォルトの名無しさんNGNG
>>278
ああ、最後の1行だけに対する煽りだったんだね。スマソ。
0280デフォルトの名無しさんNGNG
ところで今 pc.2ch.net 見えますか?
0281デフォルトの名無しさんNGNG
>>268
CHAR_BITだろ
0282デフォルトの名無しさんNGNG
>>281
細かいツッコミありがとう。
0283268NGNG
>>281
スマソ
0284デフォルトの名無しさんNGNG
char c[3];
とかにscanfなどで絶対2文字以上入れさせない為にはどうしたらいいですか?
0285デフォルトの名無しさんNGNG
>284
別な入れ物用意する。
0286デフォルトの名無しさんNGNG
>>284
ループを使って1文字ずつ入れていけばいいんじゃない?
0287デフォルトの名無しさんNGNG
scanf("%1s", c);
0288デフォルトの名無しさんNGNG
scanfを、もとい、C言語を使わなければ良い
0289デフォルトの名無しさんNGNG
>>284
scanf に%cを1つ書いて入力汁
0290デフォルトの名無しさんNGNG
printf("絶対2文字以上いれないでください\n");

これを加えるだけでオッケー
0291デフォルトの名無しさんNGNG
fgetsとsscanfを使う
0292デフォルトの名無しさんNGNG
>>290
「そうは言っても体は正直なもので3文字以上
 入れられたがってるようじゃがのぅ。フォッフォッフォッ。
 どれどれ、ひとーつ、ふたーつ、みぃ〜〜〜っつ」
0293284NGNG
scanf("%1s", c); などを使った時、

scanf("%1s", c); //一回目の入力
scanf("%1s", c); //2回目の入力

とした時1回目に余った文字が2回目のほうで入ってしまうのですがこれは回避できないんでしょうか?
0294デフォルトの名無しさんNGNG
>>284
まずは法律の整備から。
まあ法律を破る人はいるから絶対に防ぐのは無理だけど。
0295デフォルトの名無しさんNGNG
>>293
rewind(stdin) と汁
0296デフォルトの名無しさんNGNG
>>295
それって大丈夫なの?
0297デフォルトの名無しさんNGNG
fseek(stdin,0,SEEK_END);
0298デフォルトの名無しさんNGNG
>>296
ハァ? それくらい自分で試せば?
0299デフォルトの名無しさんNGNG
>>298
俺の持っている環境だけで動いても意味ないし・・・
0300デフォルトの名無しさんNGNG
>>298
ハァ? それくらい自分で調べれば?
0301デフォルトの名無しさんNGNG
釣りでしたか。
0302デフォルトの名無しさんNGNG
>>295
だめだったけど・・・・
環境はLinux+gcc
0303デフォルトの名無しさんNGNG
>>302
man rewind してみたら?

多分使うタイミングを間違えているよ。
0304デフォルトの名無しさんNGNG
>>303
デバイスに対してfseekやrewindを使った場合についての記述はない。
呼ぶタイミングは二度のscanfの間
0305デフォルトの名無しさんNGNG
漏れ BSD だが。特に問題なし

#include <stdio.h>

int main(int argc, char**argv)
{
char c;

scanf("%c", &c);
rewind(stdin);
scanf("%c", &c);

printf("%c\n", c);

return 0;
}
0306デフォルトの名無しさんNGNG
fflash(stdin)
0307304NGNG
いくら長い文字列を入力しても、二度目のscanfの時に入力待ちになれば成功なんでしょ?
0308デフォルトの名無しさんNGNG
>>304
そうだが。何がいいたいの?
0309284NGNG
私も試してみたのですがWINXPとVC++でrewind(stdin);は使えました
今は使えないのですが本当はUNIXで実行させたいのですが・・・
やっぱり関数使わないと無理なんでしょうか・・・?
0310デフォルトの名無しさんNGNG
>>309
rewind は UNIX な環境であればおそらく存在するんではないか?

なんかマズいの?
0311デフォルトの名無しさんNGNG
fgetsとsscanfを使えとあれほど





すごい釣りだなぁ
0312デフォルトの名無しさんNGNG
scanf()はネタが尽きないね。
0313デフォルトの名無しさんNGNG
>>310
存在するか否かの問題ではないだろ・・・
rewind(stdin)で入力バッファをクリアできるかどうかが問題なんだろ。
0314デフォルトの名無しさんNGNG
fscanf, scanf() の "%c" つかえば医院じゃないかな?この場合は。
0315デフォルトの名無しさんNGNG
こんなんどうですか?

scanf("%c",&a);
b = a;
while(a != '\n'){
scanf("%c",&a);
}
scanf("%c",&c);
0316デフォルトの名無しさんNGNG
getchar()仕え
0317デフォルトの名無しさんNGNG
EOFの判定めんどい
0318デフォルトの名無しさんNGNG
>>313
んーと a.out < /dev/random
ってことですか?
0319デフォルトの名無しさんNGNG
>>317
そんな訳ない
0320デフォルトの名無しさんNGNG
>>310は>>309の「使えました...本当はUNIXで...」に対する皮肉か。
0321デフォルトの名無しさんNGNG
>>320
コワー。ちょっと荒んでますね。
0322デフォルトの名無しさんNGNG
>>320
アレが皮肉に見えるのか?
0323デフォルトの名無しさんNGNG
むしろ>>309が皮肉のような
0324デフォルトの名無しさんNGNG
>>322
>>309は期待通りに動いたという意味で「使えました」と言ったんだろ。
それを存在するかしないかという意味で解釈して>>310と言ったんだろ。
0325デフォルトの名無しさんNGNG
つか >>320はヤヴァイ感じがする。もう寝たほうがいいぞ。
0326デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_crt_rewind.asp

これが根拠なんでしょうね。
0327デフォルトの名無しさんNGNG
みんな名無しでよく流れが分からないのだが。
0328326NGNG
> キーボード バッファをクリアするには、既定でキーボードに関連付けられている標準入力ストリーム (stdin) を引数に指定して rewind 関数を使用します。

これ
0329デフォルトの名無しさんNGNG
次の質問は、標準入力がキーボードであるか、
違うものであるかを見極める関数の使用方法だな
0330デフォルトの名無しさんNGNG
>>324は暴れないのか?
待ってるんだが。
0331デフォルトの名無しさんNGNG
釣りは魚の役をやる香具師がいないと成り立たないからなw
0332デフォルトの名無しさんNGNG
あー、乗り遅れた!
調べもしないで凄む>>320はどこに行ったんでしょうか?
0333デフォルトの名無しさんNGNG
>>293
http://www.catnet.ne.jp/kouno/c_faq/c12.html#26
0334名無しさん@EmacsNGNG
我流でやってる初心者ですが
下のプログラムを実行すると処理が全部終ったあとにSegmentation Faultになります。
どこがまずいんでしょうか

#include <stdio.h>

void get_output_fd( char *argv ,FILE *out_file ){
out_file = fopen("outputfile","w");
}

int main ( int argc, char **argv ){
FILE *out_file;
(void) get_output_fd( argv[1], out_file );
fclose( out_file );
return (0);
}
0335デフォルトの名無しさんNGNG
>>334
fopenの戻り値がget_output_fdを抜けたところで行方不明になるから。

書くならFILE *get_output_fd(void); outfile=getoutput_fd();とする。
0336デフォルトの名無しさんNGNG
>>334
自作関数get_output_fdの引数の意味がわからん!
自作関数get_output_fdの戻り値でout_fileをメインに返すかout_fileを
グローバル変数で宣言しないとfclose( out_file );が機能しない!
さらに戻り値型の括弧は(void)特に必要がないかと思うけど・・・
0337デフォルトの名無しさんNGNG
STLのstringを使ってみました。
int i=123;
string ss=i;
としたとき、ssに数字の123の文字が入ってくれません。
単に数字を文字列にしたいだけなんですが、どうすればいいのでしょうか。

0338デフォルトの名無しさんNGNG
>>334
void get_output_fd(char *argv, FILE **out_file)
{
*out_file = fopen("console.txt", "w+");
}

int main(int argc, char **argv)
{
FILE *out_file;
get_output_fd(argv[1], &out_file);
fclose(out_file);
return(0);
}
0339jjNGNG
初心者ですが 、これでエラーがでます。
なぜでしょうか。
#include <stdio.h>
main()
{
printf("t");
}
0340デフォルトの名無しさんNGNG
メイン関数の戻り値方がない。
さらにはコンパイラによったらメイン関数でもプロトタイプを
宣言しろといってくる「ポンコツ」が存在する。
0341デフォルトの名無しさんNGNG
というわけで340じゃないが

#include <stdio.h>
void main()
{
printf("t");
}

#include <stdio.h>
int main()
{
printf("t");
return 0;
}

どっちかにすんだな
0342デフォルトの名無しさんNGNG
>>337 もどうぞよろしくお願いします。
0343デフォルトの名無しさんNGNG
大漁〜♪大漁〜♪
0344デフォルトの名無しさんNGNG
>>342
いとあ
0345337NGNG
int
を
char
にするだけでもいいのでおながいします。
0346デフォルトの名無しさんNGNG
(char)
0347337NGNG
それだとわけわかんない文字になってしまうのですが・・・。
0348デフォルトの名無しさんNGNG
このスレで聞いていることの方が分からない。
0349デフォルトの名無しさんNGNG
>>337
#include <sstream>

std::ostringstream ost;
int i=123;
ost << i;
std::string s=ost.str();

C++相談室 part20
http://pc2.2ch.net/test/read.cgi/tech/1055162298/l50
0350337NGNG
C系の質問スレってここじゃないの?
0351337NGNG
>>349
あーごめんなさい。
あとまじでありがとうございます。困ってたので助かりました。
0352デフォルトの名無しさんNGNG
>>337
C板的に回答するなら

int i = 123;
char buf[256];

sprintf( buf, "%d", i);

と言った所か?
0353デフォルトの名無しさんNGNG
板じゃなくてスレ
0354kkNGNG
>>339

#include <stdio.h>;

の「;」がぬけてますよ。
0355デフォルトの名無しさんNGNG
鼻毛登場
0356デフォルトの名無しさんNGNG
びっくりするほどユートピアだな
0357デフォルトの名無しさんNGNG
ふーん。
0358デフォルトの名無しさんNGNG
エラーと警告の区別がつかない初心者
0359jjNGNG
>>354
ありがとうございました!!!
それで逝けました
0360デフォルトの名無しさんNGNG
>>359
空しいな。友達作れよw
0361jjNGNG
役立たずの負け惜しみですか?w
354さんありがとうございました!!
残りは氏ね
0362デフォルトの名無しさんNGNG
#include <stdio.h>;
何度も見たなぁ。これが通るコンパイラって多いのかな。
0363デフォルトの名無しさんNGNG
C FAQすら読まずに知ったか回答する人は氏んでもいいと思う。
0364デフォルトの名無しさんNGNG
>>361
340, 341も答えているのに、酷い香具師だな。
0365デフォルトの名無しさんNGNG
>>361
さっきから一人で何やってるんですか?
0366デフォルトの名無しさんNGNG
>>363 違うだろw
C FAQすら読まずに質問する人
の間違いだな。
0367その1NGNG
>>3 誰彼のアレも強制オナニーのようなものなのだろうか?
>>5 真・脳力者の芽美たんのオナニーがよかった
>>6 佐伯由美子(虜)の自慰調教のシーンが良かった。
>>9 とらハ2でみなみがオナるところ萌え〜。
>>10 とらハ2でみなみがオナるところ萌え〜。
>>15 >>16
自慰・自慰〜覗きの報酬〜・自慰2・自慰☆すぽっと(キャンディソフト)
みせたがり(ZERO)
「fu・shi・da・ra」「mi・da・ra」(ミンク)
P.S.@1・2・3(ウラン)
自慰倒錯(ティンカーベル期待の新作) >>417-418
>>20 >>22 「女のこの仕組み」(りびどー)のおまけCD
>>29 夜勤病棟の恋
>>43 同人でもいいですか?虎の穴に「奴隷志願」
>>52 夜想文化祭で香澄、真由美、園子、智代の4人にオナニーシーン有るょ。
>>54 >>55 放課後マニアクラブは全員やってて良かったなぁ。
>>60 『風色のロマンス』で主人公の部屋でエロ本を見つけオナってる処を見つかちゃった
>>63 「緋色の姉妹」で二人いる。
>>74 ブライディアでダリアにオナニーさせるシーンは凄く良かった
0368デフォルトの名無しさんNGNG
有り得ない誤爆スマソ
吊ってくる
0369デフォルトの名無しさんNGNG
オナニー見てるだけなんてもの足りないだろ
0370367NGNG
パターン1
客「こういうの作ってください」
技術者「はいできました」

パターン2
技術者「俺こういうの作りたい」
技術者「できたー」

どっちの技術者が本気で開発「やりたい」と思ってると思う?
どっちが本気で開発の楽しさを「感じてる」と思う?

だから漏れはオナーニ好きなんだYO!
本人が自ら求めてる様がいいんだYO!

0371デフォルトの名無しさんNGNG
>>367
作ったエロゲ教えて。
0372367NGNG
肝心なとこを忘れてた。
パターン1がセクースで
パターン2がオナーニな。

で、別に俺はエロゲメーカーでもないし個人的に作る力量もなし。
さて、印刷もしたし、中古屋にいってくるか…。
0373デフォルトの名無しさんNGNG
>>372オナニーが好きなんじゃなくオナニーしか出来ない香具師
0374デフォルトの名無しさんNGNG
while(1){

scanf("%d", &n);

switch(n){

       ・
       ・
       ・
}
}

というやつだと、入力を間違ったりすると(↑とかBS)無限ループにはいってしまいます。
その対処法などがありましたら、ぜひお教えください。
0375デフォルトの名無しさんNGNG
scanfの返り値をチェックしとけ
0376デフォルトの名無しさんNGNG
>>374
>>293 以降
0377デフォルトの名無しさんNGNG
fgets()を使う
0378デフォルトの名無しさんNGNG
i378
0379デフォルトの名無しさんNGNG
難波「486よ486が安くなるのよ!」







時代だねぇ。
0380デフォルトの名無しさんNGNG
#include <iostream.h>

void main()
{
double a,b,c;

cout << "わり算の余りを求めます。" << endl;

cout << "わられる数を指定してください。" << endl;
cin >> a;

cout << "わる数を指定してください。" << endl;
cin >> b;

c=a%b;

cout << a << "÷" << b << "の答えは" << c << "です" << endl;

}

このプログラムがどうしてもエラーになります。
どこが悪いのでしょうか?
0381デフォルトの名無しさんNGNG
>>380
C++スレは他にあるよ。
0382デフォルトの名無しさんNGNG
1. % は実数に使えない
2. a % b は a ÷ b じゃない
3. スレ違い
0383デフォルトの名無しさんNGNG
>>380
C++のプログラムはここではありません。
しかも、#include <iostream.h>ってヘッダーファイルではないので
#include <iostream>です。CとC++を混同してませんか?
0384デフォルトの名無しさんNGNG
C++スレで聞かれても困るけどな。
0385デフォルトの名無しさんNGNG
>>380
答が出てるしスレ違いなんだが、一般的に「エラーが出る」というのは、
どういうことなのか詳しく述べないとダメよ。

・何をしたときに
・どんなエラーが出たか(メッセージをコピペする)

これくらいは最低限必要ね。
0386デフォルトの名無しさんNGNG
Cを最近勉強し始めた者です。
scanfで半径を入力し、半径*半径*円周率(n)で面積を求めたいんですが、
入力された数値が2だったら4nみたいに表示できませんか?
文字と数字の掛け算ってできますか?
0387デフォルトの名無しさんNGNG
>>386
数字も文字の内。
文字は整数だからかけ算できる。
0388デフォルトの名無しさんNGNG
>>386
printf("%dn",hankei1*hankei2);じゃだめなの?
0389デフォルトの名無しさんNGNG
あっ、それもそうですね。
でも、もし半径がrを入力されたら・・。ということを
考えたら掛け算したほうがいいかなと思ったんです。
↑>>入力された数値
  すみません。文が変でした。数値だけではなく、文字も考えます
0390デフォルトの名無しさんNGNG
>>389
2 2なら4nで、r 5なら5rnとか表示させたいの?
0391デフォルトの名無しさんNGNG
#defin n 3.14
0392デフォルトの名無しさんNGNG
やっぱり円周率を#とします。
2と入力されたら4#、
rと入力されたら#r^2こんな感じです。
0393デフォルトの名無しさんNGNG
>>392
それならscanfを使ってはいけないと思うよ・・・・
0394388NGNG
あ、半径なんだからどちらも同じだ(恥
0395デフォルトの名無しさんNGNG
確かにそうでした・・・。
どうもありがとうございます。
0396初心者NGNG
はじめまして。
C言語を勉強しようと思うのですが、
どういう勉強方法がよろしいですか??
アセンブラも覚えた方がいいのですか?
0397デフォルトの名無しさんNGNG
まいっちんげまちこ
0398デフォルトの名無しさんNGNG
既にプログラミングが出来るのなら何からはじめても大丈夫だろうが、
そうでないなら内容が少なすぎるのではないかと思うくらい
簡単な本を買うのがいいと思う。
何でも覚えた方がいいが手広くすると挫折する可能性も高くなる
0399初心者NGNG
>>398
ありがとうございます。
0400デフォルトの名無しさんNGNG
400ゲットしていいでつか?
0401デフォルトの名無しさんNGNG
ダメ
0402デフォルトの名無しさんNGNG
あーあ。ダメって言ったのに…
0403悩める獅子座NGNG
ポインタを使う意義ってなに?
今はPCの性能がインフレ気味だから全部グローバル関数にしちゃっても
なんら問題ないと思うんだけど。。。
俺ってアフォ?ポインタの存在意義教えて
0404デフォルトの名無しさんNGNG
支離滅裂
0405デフォルトの名無しさんNGNG
>>403
BASICの様なコードを書きたいならそれでもいいよ
0406デフォルトの名無しさんNGNG
>>403
むしろ性能が低いほうがグローバル変数を使う意義があるのだが…
余計なパラメータの受け渡しのコードがなくなるんでその分速くなるのだが。

事実昔は、リエントラントに気を使わないでよい再帰関数は高速化のために
グローバル変数を積極的に使ったものだ。

グローバル変数を使う弊害ってのは、関数の独立性が損なわれることにある。
無論、リエントラントな関数だとグローバル変数を使ってパラメータの受け渡しをすると、
破綻するしな。

パラメータをいちいち書かずに済むので楽だと考えがちだが
(おれも新人の頃はそうだった)いざ、そのパラメータの値がおかしくてバグが露見した場合、
どこでおかしな値を設定しているのかわからなくなる。
それでなくても関数の独立性が低いので少しでもその関数を直すとその影響が
コード全体に波及して保守しづらいことこの上ないコードになるぞ。

だからPC、というか計算機の性能が上がった今では多少の性能は無駄にしても、
保守性を重視してグローバル変数は原則として使うな、ということになっているのだ。

以上のことはポインタを使うとか何とかということと関連のない話だ。
ポインタの本質は物を指せるということだ。物というのはメモリ上の実体な。
これを使わないとかけないコードは多々ある。一番いい例がリンクトリストだ。
もうひとつ、でかい物をパラメータとして渡すと性能が落ちるので、
その代わりにでかい物のありか(ポインタ)をパラメータとして渡すという使い方もある。

さらに物のありかを指しているので、関数はその物にいろいろいたずらをするという
使い方もある。君が言うグローバル変数で云々というのはこの最後の使い方しか見てない。
0407デフォルトの名無しさんNGNG
>>403
PCの性能が良くなったからポインタの存在意義がなくなった
と言ってるのか?
つまり昔は意義があったってことか?
どんな意義があったのかは知らないが、それがポインタの存在意義じゃないのか。
0408デフォルトの名無しさんNGNG
>>406
長文を書く前によく読みなさい。
>>403 の言っているのは「グローバル関数」です。
0409406NGNG
>>408
うわ。恥ずかしい。ごめんなさいです。
文意がつながらないから勝手に脳内で読み替えてしまったらしい。
0410デフォルトの名無しさんNGNG
Cにグローバルでない関数はあったか?
0411デフォルトの名無しさんNGNG
>>410
あえて言うならstaticな関数、かなあ。
グローバルの定義にもよるけどな。
0412410NGNG
内部関数か・・・

>>403
それとポインタ・・・いやコンピュータの性能とどう関係あるんだYO!
0413412NGNG
内部関数なんて言い方はしないかも・・・なんとなく使ってきたけど。
0414デフォルトの名無しさんNGNG
確かにポインターは使われなくなったけど、たまに、Cをマスター=ポインターが使える
と勘違いしてるやつは何でも間でもポインター使ってみんなに、嫌がられるんだよ。
アスタリスク2つまでなら許せるけどそれ以上はいや!

0415デフォルトの名無しさんNGNG
>確かにポインターは使われなくなった

なったのか?
0416デフォルトの名無しさんNGNG
>>415
使われにくくなった
0417デフォルトの名無しさんNGNG
>>416
どこで?
0418デフォルトの名無しさんNGNG
#include <stdlib.h>

↑これはstrcmpを使うときに必要なんか?それともatoiか??
違うサイトの解説見てたら乱数を発生させるときに必要とか・・・
でも乱数なんて入ってないし
どれなんだYO!
0419デフォルトの名無しさんNGNG
>>417
言語自体が使わない流れ!
javaとか会社では新規にCでプログラムはしばらくしてないがcの仕事が新規で
くればハードの性能が上がってるので理解しやすくポインターを使わずに書く。
0420デフォルトの名無しさんNGNG
>>418
atoiもrandもsrandもstdlib.hだが、strcmpはstring.h
0421デフォルトの名無しさんNGNG
>>419
C++はどうするんだ?
0422デフォルトの名無しさんNGNG
>>421
し・め・つ♪
0423デフォルトの名無しさんNGNG
>>419
うちは未だに思い切り使ってますが…
0424デフォルトの名無しさんNGNG
>>421
C++はクラス型もポインターは便利なので使う。それ以外はなるべく控える。
0425デフォルトの名無しさんNGNG
>>424
もではなくのです。
0426デフォルトの名無しさんNGNG
>>420
サンクス
めもっとく
0427デフォルトの名無しさんNGNG
>>419
JavaでOSがかけるか。ドライバがかけるかボケ。
と思ったのだった。その昔にたようなことが言われてて、
PrologでOSを書いちゃったことがあってみんな仰天したがなw

アプリだけならCはいらんかもしらんな。
要は使うべきところを間違っちゃいかんという事だ。
Cを使うならポインタ使わないと書けない・書きづらいことがあるんで使うでしょ。
0428デフォルトの名無しさんNGNG
つかCに限らず、いまどきの言語はみんなポインタあるだろ。
JavaだってVBだってあるだろ。
0429デフォルトの名無しさんNGNG
アプリってなんだか楽しそうでうらやましい。
0430デフォルトの名無しさんNGNG
>>428
Cと同等のポインタが使える言語ってそんなにないと思うけど。
Javaは基本的にオブジェクトの参照のみだし。VBはよくしらん。

Cには参照がないんだよな。他の処理系では処理系が縁の下でやってることを、
Cではプログラマがポインタを使って明示的にやるようになってる。
0431デフォルトの名無しさんNGNG
ポインタが使えないと、標準関数使えないよ。
0432デフォルトの名無しさんNGNG
参照もポインタも本質は同じようなもの。
文法がちょっと違うだけだよ。
その本質を見失うと厄介なバグに悩まされるよ。
0433デフォルトの名無しさんNGNG
>>403以降のスレをみる限り
ポインタを理解してない香具師って、意外と多そうだね…
0434デフォルトの名無しさんNGNG
「参照」という言葉が C++ で使われてるものと
その他の言語で使われてるものとで違う、
ということに関して触れる人が少ないのが残念だ。

Java などで使う「参照」というものは
実のところ C++ の「参照」と「ポインタ」を足して 2 で割ったようなものだ。

1. 初期化だけでなく、代入できる(C++ のポインタの特徴)
2. あるオブジェクトの実体そのものではなく、
  実体を参照するものである(C++ のポインタと参照の特徴)
3. アドレスのようなものを操作することができない(C++ の参照の特徴)

特徴 2 は重要で、うっかりすると
違うものだと思ってたものが実は同じ実体を参照していた、
なんてことにもなる。
C++ では値とポインタ、参照で型名が変わるのでその可能性を常に意識するけど、
Java だと参照しか使うことができないのでつい忘れてしまうことがある。
0435 NGNG
main()
char *p

func(&p);


void func(char **p){

*p = .....

}

これで大丈夫ですか?解説お願いします。
0436デフォルトの名無しさんNGNG
>>434
何が違うのかわからん。
JavaとC++の言語仕様の些細な差をいってる?

どれも、参照という、別のところにある実体を指すものという
概念の範疇から越えていない。
同じ実体を指してることがあるのも、当たり前だと思うが。

>>435
グッドグッド
0437デフォルトの名無しさんNGNG
>>435
何をやりたいのか知らないが、おそらくもっといい方法がほかにある。
0438デフォルトの名無しさんNGNG
>>436
だから、参照という言葉をみんな使ってるけど、
それぞれでその言葉の指している意味が違ってては
議論になんないよ、ってこと。
0439デフォルトの名無しさんNGNG
>>438
通じてるって
0440デフォルトの名無しさんNGNG
>>439
分かってる人には通じる。
しかし、議論してる中にはよく分かってない人もいる。
こういう人たちには通じない。
0441デフォルトの名無しさんNGNG
具体的にどの書き込みが分かってないの?
0442デフォルトの名無しさんNGNG
>>435
明らかにコンパイルすら通らないね。
0443デフォルトの名無しさんNGNG
明らかに 〜 すら 〜 ない。

ってなんかおかしくね?
0444デフォルトの名無しさんNGNG
おかしくない。
0445デフォルトの名無しさんNGNG
>444
いや、おかしい(反語)
0446デフォルトの名無しさんNGNG
例えば >>430 は「Cには『参照』がない」と言ってるけど、
この「参照」ってのは何を指してんでしょね。
「他の言語での『参照』と同一の定義を持つ仕様が存在しない」
って、そんなもんは別に珍しくもない話だし、
「他の処理系では処理系が縁の下でやってる」とかも大げさで、
ポインタと「参照」にそんな大袈裟な差はない
(今は「実体の参照」に焦点を置いているので、
 ガベージコレクションの話は置いておく)。

ポインタで十分「参照」の機能を果たせるし、
それを実現するのも非常にたやすい。
これは「『参照』がない」と言えるのだろうか?
その答えは「『参照』の定義による」としか言いようがない。
0447430NGNG
>>446
あーまあ、そうね。確かに書いてて「言葉の定義ちゃんとしないで議論にならねえな」と思ってた。
頭にあったのは字面としての参照でしかなかった。

>ポインタで十分「参照」の機能を果たせるし、
>それを実現するのも非常にたやすい。

もちろんその通り。でもあくまでポインタを値渡ししてるに過ぎない、
ともいえるわけで、言葉遊びにしかならんなこれじゃw

というか、それぞれの言語で「ポインタ」だとか「参照」だとかその他様々な概念が、
重なるところも大きいけど微妙にずれてるから、きちんと定義しないと議論にならないね。

Pascalにもポインタはあるけど、Cの意味でのポインタじゃないし、
さらにPascalには参照もあるけどC++の参照とは違うし、
Rubyには参照しかない、とかいってもC++のとは違うし。

この種の定義を厳密にしないと話が全然進まないのは、このスレではできないよなあw
スレ違いになってきたし、この辺で。
0448デフォルトの名無しさんNGNG
ポインタなんて理解しちまえば所詮ただの変数(ポインタ変数)だからな。
ポインタを使わずに書かれた冗長なコードと、
ポインタを使ってすっきりしたコードと、
理解しやすいのがどっちかは明白だと思うが。

…といっても、こないだダブルポインタを使いたい場面があったが、
さすがに気が引けたのでほかの手段を使った。
どうしてもダブルポインタをつかうような場面でもなかったし。
0449デフォルトの名無しさんNGNG
>>448
ポインタは変数とは限らないが?
0450デフォルトの名無しさんNGNG
文字列をコピーするにはどうしたらいいですか?
0451デフォルトの名無しさんNGNG
strcpy
0452デフォルトの名無しさんNGNG
ポインタ=アドレス+型
0453デフォルトの名無しさんNGNG
>>451
危うくケコーンする所ダターヨ
0454デフォルトの名無しさんNGNG
>>449
うーん、じゃあ1行目を読み替えてくれ。
「アドレスなんて理解しちまえばただの値に過ぎないからな。」

…まぁ、言いたい事はわかってくれ。
わからなかったらそれでいい。自分の文才のなさを嘆くだけだから。
0455デフォルトの名無しさんNGNG
ダブルポインタって一般的な用語?
double*のことじゃないよね?
0456449NGNG
>>454
まあ、言いたい事は何となくわかってる。
0457デフォルトの名無しさんNGNG
** のことだろうけど、一般的な用語じゃないと思われ。
0458デフォルトの名無しさんNGNG
>>455
一般的な用語かどうかは知らないが、個人的に好きな表現ではないな。
0459デフォルトの名無しさんNGNG
ポインタの中のポインタ
0460デフォルトの名無しさんNGNG
箱の中のちっちゃい箱
0461デフォルトの名無しさんNGNG
マトリョーシカ
0462デフォルトの名無しさんNGNG
ポインタ型変数へのポインタ

  値:ポインタ
変数:ポインタ型変数

とを区別するとこんな感じか。
0463デフォルトの名無しさんNGNG
略してポインポイン
0464デフォルトの名無しさんNGNG
>>463
採用!!
0465デフォルトの名無しさんNGNG
上司「おい!お前なんでここでポインポイン使うんだよ!」
部下「いやですね、それはここで受け取ったポインタの値を変えるので、
   ポインポインじゃないといけないんですよ」
0466デフォルトの名無しさんNGNG
ポインタへのポインタは使いたく無いって香具師に限って
a[b[c[d]]]
のような使い方するんだよな…
0467デフォルトの名無しさんNGNG
>>466
VBでよくやる。そこまで深くないが。
0468デフォルトの名無しさんNGNG
>>466
へーそんなんはじめてみた。
会社で漏れ以外にCやる奴がいないせいか。
0469  NGNG
#include<stdio.h>
int main(void){
char input[81];
FILE *FP1,*FP2;
if((FP1=fopen("kazu.txt","r")==NULL)
{
printf("読み込みファイルが開けません。");
return 1;
}
if((FP2=fopen("kazu2.txt","w")==NULL)
{
printf("書き出しファイルが開けません。");
return 1;
}
while(fgets(input,81,FP1)!=NULL)
{
fprintf(FP2,"%s",input);
}
return 0;
}

実行できないんですがどこか変ですかね・・
0470デフォルトの名無しさんNGNG
>>469
「実行できない」とはコンパイルできないって意味か?
二番目のifの括弧がちゃんと閉じてないぞ。
0471470NGNG
最初のifもだ。
0472 NGNG
>>470できましたーありがとうございます(´∀`)
0473デフォルトの名無しさんNGNG
エラーメッセージを欲嫁。
0474470NGNG
たまたま今回は出してきたソースをエディタに貼り付けて整形してみておかしいと思ったのでわかったけど。

「実行できない」だと漠然としてて何ができなかったかわからない。
おれの感覚だと「実行できない」は「実行させてみたけど例外が起きた/core dumpした」って感じだな。
少なくともコンパイルエラーが起きた、という感じがしない。

これは「感じ」の問題なんで議論しても始まらないんだが、質問を書くときは

・何をした(どこで詰まったか)
・期待していたことは何か、どう期待と違っていたか
・エラーメッセージが出ているのならばそれをコピペ(大量に出てるときは無理か…)

くらいは書いて欲しい。なんかついさっきも同じようなことを言った覚えがあるがw

これも以前書いた覚えがあるが、一般的にコンパイル時に文法エラーが出てきたときは、
コンパイラが指摘してきた行の一つ前にエラーがあることが多い(経験則)。
0475デフォルトの名無しさんNGNG
>>474
次スレの >>1 にでも
ある程度書いておくといいかねぇ。
0476デフォルトの名無しさんNGNG
初心者で入門書見ながらやってるんですが
携帯のプラン別料金対応表プログラムはどう作れば良いんでしょうか・・?

scanfでやってますが
scanf(%d", &timeA,&timeB);
これじゃだめ?
プラン一個だけはできても他がバグちゃうんだけど
0477デフォルトの名無しさんNGNG
>>476
ここはお前のような低脳がくるとこじゃねえよ。
0478デフォルトの名無しさんNGNG
お前みたいな無能もいらない。
0479デフォルトの名無しさんNGNG
scanf("%d %d", &timeA,&timeB);
0480デフォルトの名無しさんNGNG
>>457.458.459.460
業界標準はボインボインです。
0481mathmania ◆uvIGneQQBs NGNG
#include<stdio.h>
int main(void){
char s[8];
scanf("%s",s);
return 0;}
のコードからできる実行ファイルの入力待ちで
123456789
とかを入力してはいけないといいますが、
scanfで、余分なデータを捨てる、ということはできるんですか?
0482デフォルトの名無しさんNGNG
>>481
単に文字列として受けるのならstdinに対してfgetsを使えばいいんじゃないでしょうか。
0483デフォルトの名無しさんNGNG
>>481
scanf("%7s",s);
0484mathmania ◆uvIGneQQBs NGNG
やはり、安定した実行をするにはchar s[256];
ぐらいしかないですか?
0485mathmania ◆uvIGneQQBs NGNG
うを、
新着レス取得しそこなった。
Thanks to [483]
0486デフォルトの名無しさんNGNG
>>484
scanfを使わなければいいだろう?
0487デフォルトの名無しさんNGNG
安定した実行を求めるのにscanf使用か・・・
0488mathmania ◆uvIGneQQBs NGNG
Re:>486
それもそーだ。
0489デフォルトの名無しさんNGNG
最近 scanf ネタ大杉。
0490デフォルトの名無しさんNGNG
>>488
ところで、"%7s"だと"abc def"と入力した場合、abcしか読み込まれないけどいいの?
0491mathmania ◆uvIGneQQBs NGNG
Re:>490
良くないかもしれない。
この場合はgetsかな?
0492デフォルトの名無しさんNGNG
もともとscanf("%s",s)なんだからいいんだろ
0493デフォルトの名無しさんNGNG
C FAQ を書いた人も可哀想だな
0494デフォルトの名無しさんNGNG
scanf と gets は(ry
0495490NGNG
>>492
scanfの%sを使うとそうなるけど。という意味でかいたの。
0496490NGNG
482で書いたことが無視されているんだけど・・・
0497デフォルトの名無しさんNGNG
scanf("%7[^\n]",s);
0498mathmania ◆uvIGneQQBs NGNG
文字リテラル(文字定数に関する質問。
#include<stdio.h>
#include<string.h>
int main(void){
char *s={'a','b','c',0};
*s+=1;
puts(s);
return 0;}
のコードからできる実行ファイルは、正常に実行できますか?
0499デフォルトの名無しさんNGNG
char *s={'a','b','c',0};

これってコンパイル通るの?sが配列でないんだけど・・・・
0500デフォルトの名無しさんNGNG
>>498
その質問の意図はなんだ?
0501デフォルトの名無しさんNGNG
>>498
char *s={'a','b','c',0};
↓
char s[]={'a','b','c',0};
0502デフォルトの名無しさんNGNG
>>501
そうすると今度は配列名に代入しようとしてエラーになるな(笑)
0503502NGNG
おっと、間接参照していたか。
0504mathmania ◆uvIGneQQBs NGNG
もうひとつ、
#include<stdio.h>
#include<string.h>
int main(void){
char *s="abc";
*s+=1;
puts(s);
return 0;}
からできるプログラムはbbcを出力できますか?
0505デフォルトの名無しさんNGNG
文字列定数を(ry
0506デフォルトの名無しさんNGNG
>>504
処理系によっては出来るかもしれないが、
文字列定数の変更はC言語の仕様で許されていない。
0507デフォルトの名無しさんNGNG
次のネタ質は何かな? o(^-^)o
0508mathmania ◆uvIGneQQBs NGNG
#include<stdio.h>
main(void){
char a[]={27,91,33,31,109,61,62,63,27,91,30,109,0};
puts(a);
return 0;}
を、DOS,UNIXで、それぞれコンパイルして、それぞれ実行すると、それぞれどうなりますか?
0509デフォルトの名無しさんNGNG
「常にmemcpyではなくmemmoveを使え。」

基地外かと思った
0510デフォルトの名無しさんNGNG
>>508
コントロールコードが入っているぞ
0511mathmania ◆uvIGneQQBs NGNG
[508]の訂正
#include<stdio.h>
main(void){
char a[]={27,91,51,49,109,61,62,63,27,91,48,109,0};
puts(a);
return 0;}
//hexとdecがごっっちゃになってるもので。。。
0512デフォルトの名無しさんNGNG
エスケープシーケンスか。MSDOSではよくやったが
コンソールしだいだろ
0513デフォルトの名無しさんNGNG
ていうか、聞く前に自分でやるとかしないのかね
0514mathmania ◆uvIGneQQBs NGNG
大きな整数(符合無し)を使ってプログラムを書いてみたいのですが、
C言語で、
フラグレジスタのキャリーフラグに相当するものってありますか?
0515kkNGNG
ほにゃらら。
0516デフォルトの名無しさんNGNG
あるわけがない
0517mathmania ◆uvIGneQQBs NGNG
皆さん、どうもありがとう。
それでは、どっかの板で会いましょう。
栗上がりの処理は自分でしろと。
0518デフォルトの名無しさんNGNG
符号なし整数を足し算したときにキャリーがたつかどうかの判定は
こんな感じでできたと思う。
carry = UINT_MAX - a > b;
0519518NGNG
逆だ…
× carry = UINT_MAX - a > b;
○ carry = UINT_MAX - a < b;
0520デフォルトの名無しさんNGNG
厨質問でスミマセソ

7bitコードをSJISコードに変換したいのですが
どうすればいいのかがまったくもってチソプソカソプソで
ございます。

ご教授のほど承りたく候。。。
0521デフォルトの名無しさんNGNG
表をつかうなり好きにすれば。
0522デフォルトの名無しさんNGNG
そもそも「7bitコード」ってなによ。
0523デフォルトの名無しさんNGNG
>>522
JISかな。
0524デフォルトの名無しさんNGNG
>>520
そこら辺にあるソフトで一発変換。

というか、そんくらい検索したら分かるのでは?
0525デフォルトの名無しさんNGNG
>>520
テーブル作ってもたかだか256bytesだなw
0526デフォルトの名無しさんNGNG
>>525
間違い
0527デフォルトの名無しさんNGNG
>>526
ダウト! コード示せないくせにシッタカかよ
0528デフォルトの名無しさんNGNG
バイナリが256バイトで済むわけがない
0529デフォルトの名無しさんNGNG
そんなに大した質問じゃないんですけど、
皆さんは、hello,worldをコーディングするのに何秒かかりますか?
なんとなく測ってみたら15秒・・・。自身あったのに・・・
0530デフォルトの名無しさんNGNG
188 バイトあれば十分なんじゃないの?
0531デフォルトの名無しさんNGNG
cで
                         
g(x,y)=(√f(x,y)-√f(x+1,y+1))二乗 + (√f(x,y+1)-√f(x+1,y+1))二乗

の計算をするにはどうすればいいでしょうか?
さっぱりわかりません
0532デフォルトの名無しさんNGNG
#include <math.h>
double g(double x, double y, double (*f)(double, double))
{
return pow(sqrt(f(x, y)) - sqrt(f(x + 1, y + 1)), 2) + pow(sqrt(f(x, y + 1)) - sqrt(f(x + 1, y + 1)), 2);
}
0533デフォルトの名無しさんNGNG
mallocを使うべき場面がいまいち分かりません。
サイズが不確定な文字列を格納するときなんかに使うんですか?
0534デフォルトの名無しさんNGNG
malloc を使わないで、領域を確保する場面の方が稀れ。
数バイトとか数個の配列ぐらいか
0535デフォルトの名無しさんNGNG
文字列とか
線形リストとか
木とか
ハッシュとか、
0536デフォルトの名無しさんNGNG
>>529
口で数えながらやってみたところ22秒
0537533NGNG
>>534
ありがとうございます。
mallocを使って領域を確保するのが普通なんですか。
やはりメモリリークを避けるためなんでしょうか?
何にしろ習慣づけて損はない様なので、意識して使う様にします。
0538531NGNG
>>532
error:「外部シンボル'_main'が未解決」
ってなっちゃうんですが・・・
0539デフォルトの名無しさんNGNG
>>538
>>532はmainを省略して書いたのかと・・・
0540デフォルトの名無しさんNGNG
>>538
オプション -c を付けてコンパイルする。
0541デフォルトの名無しさんNGNG
-Gとか
0542デフォルトの名無しさんNGNG
>>538
hello world とプロンプトに出力プログラムを書いてから、出直してきて下さい。
0543531NGNG
mainをいれると
宣言の構文エラーってなっちゃうんですよ
0544デフォルトの名無しさんNGNG
おまいらは入門以前の奴に冷たいのね。
俺もだが。
0545デフォルトの名無しさんNGNG
>>543
どんな状況なのかさっぱりわからん。
0546デフォルトの名無しさんNGNG
入門以前の人はとりあえず本か HP でも読めや。
ここはそういうの読んでも分からんものを聞くとこや。
0547531NGNG

#include <math.h>
main()
double g(double x, double y, double (*f)(double,

double))
{
return pow(sqrt(f(x, y)) - sqrt(f(x + 1, y + 1)), 2) +

pow(sqrt(f(x, y + 1)) - sqrt(f(x + 1, y + 1)), 2);
}

こんなんです
0548デフォルトの名無しさんNGNG
そんな初歩的なことも勉強する気がなく、
しかも丸投げスレがあるというのに探しもせずに、
ただただ自分の為だけにスレを汚す香具師に
親切にする必要はない。
0549デフォルトの名無しさんNGNG
>>547
No!!!!!!!!!!!!


ネタなの?
0550デフォルトの名無しさんNGNG
もしかしてg(x,y)の意味も分かってないんじゃね−の?
0551531NGNG
はい なんのこっちゃわからんです
0552デフォルトの名無しさんNGNG
>>531
君にはまだ早すぎるプログラムです。
0553デフォルトの名無しさんNGNG
ネタでないとしたら、一度もCで動く(というかコンパイルできる)プログラムを書いたことないんだろうな。
0554デフォルトの名無しさんNGNG
提示されている式だけじゃプログラム実行できないんだけど
それすら分かってないんだろうな。
0555デフォルトの名無しさんNGNG
名無しさん5!5!!5!!!
0556531NGNG
どうすりゃ実行できるんですかね…
0557デフォルトの名無しさんNGNG
>>556
>>532の他にmain()とf(x,y)を用意してmainからg()を呼ぶ。
0558デフォルトの名無しさんNGNG
祭だ祭りだ〜〜〜
0559デフォルトの名無しさんNGNG
>>555
GO!GO!!GO!!!をモジッて5!5!!5!!!って言っているのかと思ったら、
レスの番号の事だったのね。
応援されてるのかと思った。
0560デフォルトの名無しさんNGNG
>>559
両方。
俺自身寒いんだが。。。
0561デフォルトの名無しさんNGNG
>>531
g()も、もちろん用意して。
0562デフォルトの名無しさんNGNG
>>531
今すぐ24時間営業の本屋さんへ行って、
買えるだけのCの入門書を買って、
そこに書いてあることを完全に理解して、
それから大きな崖に突き当たること。
0563デフォルトの名無しさんNGNG
Cの勉強以前の問題。
まずは解析学の初歩からじゃねーの?
0564531NGNG
やっぱりよくわからないっす
画像処理のフィルタの式だったんですけど・・
0565デフォルトの名無しさんNGNG
ゲーム系専門学校の方でつか?
0566531NGNG
いえ ただの情報科の学生っす
0567デフォルトの名無しさんNGNG
>>564
>画像処理のフィルタの式
それならビットマップを用意しないと
0568デフォルトの名無しさんNGNG
俺は>>537が変なことを言っているのをながさない。
0569531NGNG
なんか いつも教科書の出版社のホームページからおとしたプログラムを
先生が配った.pgm画像で実習してるんですけど
フィルタだけ変えろとレポートをだされて…さっぱりっていう状況で
0570デフォルトの名無しさんNGNG
こんなとこで聞くより、友達か先生にでもキケ
0571デフォルトの名無しさんNGNG
もう君にはアドバイスできないからageなくていいよ
0572デフォルトの名無しさんNGNG
>>569
> ・・・・・・・・・教科書の出版社のホームページからおとしたプログラムを
> ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
> フィルタだけ変えろ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
0573デフォルトの名無しさんNGNG
>>568
たしかに。
0574デフォルトの名無しさんNGNG
main関数から呼び出したvoid hoge()の関数内で途中でmainに戻るにはどうしたらいいでしょうか?
returnとか使ってもいいんでしょうか?
0575デフォルトの名無しさんNGNG
>>574
良い。
0576574NGNG
朝っぱらからありがとうございました
0577デフォルトの名無しさんNGNG
>>574
一般的にはlongjmp
0578デフォルトの名無しさんNGNG
>>577
妙なこと教えるなw
まあlongjumpは覚えておいて損はないけど。
0579デフォルトの名無しさんNGNG
>>577
longjmpって一般的かい?
0580デフォルトの名無しさんNGNG
setjmp/longjmp はヘルプで見た事あるけど使った事無いな。
どういう時に使うんだ?
0581デフォルトの名無しさんNGNG
例外処理もどき
0582デフォルトの名無しさんNGNG
>>580
Cプログラマは、例外処理を行儀の良いsetjmp/longjmpのようなものだと考えることができるだろう。
プログラミング言語C++第三版より


・・・・だそうだ。行儀の悪い例外処理を記述するのに使えるらしい。
0583デフォルトの名無しさんNGNG
ヌルほど。
0584デフォルトの名無しさんNGNG
>>583
ガッ
0585デフォルトの名無しさんNGNG
そんなつもりはなかったのに ガッ されてもた。
0586デフォルトの名無しさんNGNG
>>580
関数内でBASICのGOSUB・RETURN相当の事をするときに、
配列を使ったスタック+setjump/longjump+マクロでやった事がある。
0587デフォルトの名無しさんNGNG
Cでやる意味はあんまりないな
0588デフォルトの名無しさんNGNG
>>584
それでガッはかわいそうだろw
0589デフォルトの名無しさんNGNG
func(){...}
は
void func(void){...}
であると解釈しても良いのですか?
0590デフォルトの名無しさんNGNG
オマエニハAAツキヲクレテヤル
  ( ・∀・)
 と    ) | | ガッ
   Y /ノ  | |
    / ) .人
  _/し' <  >_Λ∩
 (_フ彡 V`Д´)/
            / ←>>588

>>589
だめ
int func(void){...}
0591589NGNG
>>590
あ、値を返すんですね、ありがとうございました。
0592デフォルトの名無しさんNGNG
>>590
違う。
int func(...) {...}
だ。
0593590NGNG
>>592
確かに呼び出すところより上で定義したらそうなるか・・・
いつもプロトタイプではvoidとし、定義では空にしているから・・・

>>591
というわけで>>592が正解だ。
0594デフォルトの名無しさんNGNG
例えばコマンドライン引数からもらってきた文字列を
グローバル変数としてとっておくとき、その配列は
mallocにしますか?それとも適当に十分大きな
配列を用意しますか?
0595デフォルトの名無しさんNGNG
>>594
グローバル変数を使わない。
使っても、アドレスをポインタ変数に代入するだけで
データのコピーは行わない。
0596デフォルトの名無しさんNGNG
>595 そっかー。ありがとうございます。

それじゃ、ファイルから(.iniとか)文字列を読み込んで
それをいくつかのモジュールで使いたいときは?
グローバル変数にする?main関数のローカル変数にする?

そしてそれは適当に十分な大きさの配列にする?
mallocで確保する?

0597デフォルトの名無しさんNGNG
メインルーティンからサブルーティンに引数として(ポインタを)渡す。
0598デフォルトの名無しさんNGNG
>>594
argvを渡すだけで充分。argvの差すものをコピーする必要はない。
0599597NGNG
領域確保は場合によってmalloc使ったり使わなかったり
0600デフォルトの名無しさんNGNG
>>596
サイズが判っている場合はmain()のローカルな配列。
そうでなければmain()のローカルなポインタ。
サブルーチンにはそれを渡す。
0601594,596NGNG
>598
ありがとう。言われてみればたしかにそうすね。

>600
サイズは不定です。
main()のローカルなポインタを宣言しておいて、
ファイルから読み出すサブルーチンにそのポインタを渡して、
サブルーチン側で mallocする、ということですか?
0602デフォルトの名無しさんNGNG
アホか・・・
0603594,596NGNG
アホですみません…
0604デフォルトの名無しさんNGNG
きっとargvもmallocする必要が出てくるぞwwwwwwwwwww
0605594,596NGNG
>604
は?氏ねよヴォケ
0606デフォルトの名無しさんNGNG
>>605
まぁまぁ無能なんだからヘコヘコしとけ。
偽者だろうけど
0607デフォルトの名無しさんNGNG
http://jbbs.shitaraba.com/computer/6765/
Cの掲示板
0608デフォルトの名無しさんNGNG
scanfで
ユーザーが思わぬ数値、文字列を入れた場合エラーになるよね。
それってどうやったら解消できるんですか?
0609デフォルトの名無しさんNGNG
エラーにはならん
0610デフォルトの名無しさんNGNG
え、じゃぁあれはなんなんですか?
0611ちよNGNG
おねがいしま〜す♪
http://www1.free-city.net/home/kotarou/page005.html
0612デフォルトの名無しさんNGNG
>>610
>ユーザーが思わぬ数値、文字列を入れた場合
scanf()は定型以外の場合は使うな
0613デフォルトの名無しさんNGNG
>>610
前スレとこのスレを全部読め。
scanfはもううんざり。
0614デフォルトの名無しさんNGNG
scanfの代わりにfgets
printfの代わりにfprint
0615デフォルトの名無しさんNGNG
>>614
中途半端なネタはヤメレって
0616デフォルトの名無しさんNGNG
ねたじゃないもん。
まじれすだよ
0617デフォルトの名無しさんNGNG
ネタじゃないだろ。
stdoutとstderrを使い分けないのか?
0618デフォルトの名無しさんNGNG
>>616&&617
fprint(fは?)
0619デフォルトの名無しさんNGNG
#include <stdio.h>
int main(void){
int a,b,c;
printf("y=a*xの値を求めます。aの値を入力してください。\n");
scanf("%d",&a);
for(b=0;b<11;b++){
c=b*a;
printf("yが%2dの時xは%2dです。\n",b,c);
}
}
0620デフォルトの名無しさんNGNG
>>619
printf("yが%2dの時xは%2dです。\n",b,c); //文意からcとbが逆
0621デフォルトの名無しさんNGNG
double 型の2次元配列 u0[N0][M0], u1[N1][M1] (N0≠N1, M0≠M1) を宣言した上で、
u[0][n0][m0] = u0[n0][m0], u[1][n1][m1] = u1[n1][m1] となるような
3次元配列 u[][][] を作ることは可能でしょうか?
0622デフォルトの名無しさんNGNG
無理じゃない?
0623デフォルトの名無しさんNGNG
Visual studio.netのC、C++ で、画像を表示させるプログラムをオリジナルで作らなきゃいけないんですが。
作っていただけますか?

あと、参考プログラムの説明をするために、一行一行説明文を入れなきゃいけないんですよ。
で、それって、どこでお願いすればやっていただけるでしょうか?
昼までなんですけど。。。

どこでお願いしていいのかわからないのでここに書かせていただいたのですが。
0624デフォルトの名無しさんNGNG
>>623
てめぇで作れ。

とりあえずくだ質スレにでもいけ。

***すれ立てるまでもない質問はここで 第39刷***
http://pc2.2ch.net/test/read.cgi/tech/1055864305/

0625デフォルトの名無しさんNGNG
>>624
逝ってきます。
0626デフォルトの名無しさんNGNG
>>621
どの様に使いたいかにもよるが、
こんな形で良いのなら、p[][][]として扱える
double p00[5], p01[5] ;
double p10[4], p11[4], p12[4] ;
double p20[4] ;
double *p0[] = { p00, p01 } ;
double *p1[] = { p10, p11, p12 } ;
double *p2[] = { p20 } ;
double **p[] = { p0, p1, p2 } ;
0627そんな低レベルな話よりもNGNG
しかしすごいねここ
http://210.136.172.68/cgi-bin/bbs.cgi
0628デフォルトの名無しさんNGNG
Name: strangeworld-honten.com
Address: 210.136.172.68
0629デフォルトの名無しさんNGNG
最近、とある掲示板で、
「初心者はコンピュータの基本的な事項を勉強してから言語を学んで貰いたい」
と言う趣旨の書き込みに、
「そんな事を学んで、どうなるの?」
みたいなレスされてるのを見たんだげど、
最近のヤシって、CPUがプログラムをどう読み込んで実行するか、
と言う事すら調べないの?
0630デフォルトの名無しさんNGNG
それに気を使わなくてもいいように高級言語があるんだけど

「気を使わなくてもいい」のと「知らなくてもいい」のはちがうんだけどね

ドライバーは車の仕組みがブラックボックスでも構わないけど
エンジニアが知らないのは致命的なのは車もコンピュータも同じ
0631デフォルトの名無しさんNGNG
そんなものは金属線をどうエネルギーが伝播するか学ばないと
データストリームは理解できないというようなアホな話だ
計算機利用者は必要がなければそれが歯車式計算機で実行されるか
未来の化学式コンピュータで実行されるかなど知らなくてよい
0632デフォルトの名無しさんNGNG
でもCやるなら、
実行モジュールがメモリにロードされて実行されるあたりのことをちょっとしらないと
動的リンクとかしてコアはいたりしたときわかんなくなるんじゃないかな
0633デフォルトの名無しさんNGNG
知るべきことはあるだろ。

まぁCPUの本当の動きを思い描いている香具師なんてそうはいないだろ。
十年以上も前のCPUをモデル化して、なんとなく理解の助けにしているだけ。

仮想メモリがどう動いているかなんていうのは、多くのプログラマにとっては無用な知識。
でも変数やデータが、メモリ空間上にどういう規則でおかれるかというのは知るべきこと。
0634デフォルトの名無しさんNGNG
>実行モジュールがメモリにロードされて実行されるあたり
それはOSの仕事の話

>変数やデータが、メモリ空間上にどういう規則でおかれる
それはプログラミング言語で規定されている話


>>632-633でも分かる様にハードウェアの知識など必要ないということだ
0635デフォルトの名無しさんNGNG
そんなこといったら>>629だってハードなんて一言も言ってないよ。
0636629NGNG
オレは概略位は知っておくべきかと思う。
やたら細かい所までは知らなくても、おおよそのイメージが出来るか、出来ないかは、
多少なりともプログラム言語の理解に差があると思う。
0637デフォルトの名無しさんNGNG
メモリ空間の表現は言語だけで決まるものじゃないだろ。
0638デフォルトの名無しさんNGNG
>>635
「CPUが」と言っているだろう「CPUが」と。
CPUがデータ要求して命令をフェッチして…、
はまさにCPU設計の話だ

>>637
仕様書を見てみな。その起源が既存のハードウェアに
依存しているかに関らず、細かく言語で規定しているから
0639デフォルトの名無しさんNGNG
誰がハードの話なんかしてるんだよ。そんな事いったら原子の話になっちゃうだろ
アホか?
0640デフォルトの名無しさんNGNG
メモリとディスクではアクセス速度に大きな違いがあるなんていうのはハードに起因する基礎知識で
プログラマが知っておくべきことじゃないか?
0641デフォルトの名無しさんNGNG
非常に重い処理を作る時は結構そういう知識が役に立つ。
0642デフォルトの名無しさんNGNG
>>640
ディスクもメモリだがな。
なぜ違いがあるかなど知る必要はないだろ、問題はデバイスによって
違うということだけだ。そしてその違いは必ずしも
ハードウェアだけの問題ではない。
0643デフォルトの名無しさんNGNG
バグった時、パフォーマンスが気になる時、組み込みの仕事が来た時
などなど役に立つ
というか必須
0644デフォルトの名無しさんNGNG
ま、この場合ポインタや配列のことを言いたいんだろうな。
メモリ空間というものを意識して理解いていけと。
0645デフォルトの名無しさんNGNG
>>643
それはハードウェアにも関る場合が多いだろうが
今回の話とは関係ない。
0646デフォルトの名無しさんNGNG
そんなことよりscanfの話しようぜ
0647デフォルトの名無しさんNGNG
>>646
便利だよな。このスレには毛嫌いしている粘着がいるが
どんどん使おうぜ。どうせ今やちょっとした物はGUIなんだ。
心得てない奴らの想定外の使用など気にすることはないぜ
0648デフォルトの名無しさんNGNG
そんなことよりバッファオーバーフローの話しようぜ
0649デフォルトの名無しさんNGNG
それよりはスタックオーバーフローの方が
0650デフォルトの名無しさんNGNG
そんなことよりfree()の話しようぜ
0651デフォルトの名無しさんNGNG
free(NULLPO);
0652デフォルトの名無しさんNGNG
くだらない保護機能があるCPUには困ったもんだぜ
周りを侵略するのは男の本懐だからな。
どんどんオーバーフローしようぜ
0653デフォルトの名無しさんNGNG
そんなことよりぬるぽの話を
0654ガッ>>651NGNG
 
0655デフォルトの名無しさんNGNG
>>653
その話はマ板で思う存分して下さい
0656デフォルトの名無しさんNGNG
GoogleでC言語関係を検索すると出てくる広告(サイト)どう思う?
http://rec.ncos.co.jp/
0657_NGNG
http://homepage.mac.com/hiroyuki44/
0658デフォルトの名無しさんNGNG
>>656の解説のページ

このデカ文字とブリンク、どこかでみたことがあるぞ。おいおいとつっこみたくなるような内容が多かったような・・・・
0659デフォルトの名無しさんNGNG
Linux(レッドハット)のファイル構造体のメンバおしえてくれませんか?
stdio.hに書いてないもんで・・・
0660デフォルトの名無しさんNGNG
>>659
FILE使ったソースコードをcppすればわかる
0661デフォルトの名無しさんNGNG
>>659
FILEのメンバーを知りたい時ってどんな時だ!?
ファイルディスクリプタを得たいならfilenoを使え(もちろん標準関数ではない)。
0662デフォルトの名無しさんNGNG
>>658
fjの嫌われ者の田部のページだね。
0663621NGNG
>>626
ありがとうございます。
今回は行列のサイズがp0[30][75], p1[20][50] のサイズなので、
forループとnewかvectorクラス使います (C++コンパイラ使用)
0664デフォルトの名無しさんNGNG
#include <stdio.h>
#include "CScreen.h"
CScreen scr;
void main(void)
{
int ten[7][7];
char name[6][7];
printf("1人目の氏名入れて(7文字以内)");
LOCATE(2,6);
rewind(stdin);
scanf("%s",name[0]);
LOCATE(20,20);
printf("%sさんの国語の点入れて     ",name[0]);
LOCATE(17,6);
scanf("%d",&ten[0][0]);
/*省略させてもらいます*/
LOCATE(20,20);
printf("2人目の氏名入れて(7文字以内)");
LOCATE(2,8);
rewind(stdin);
scanf("%s",name[1]);
/*省略させてもらいます*/
プログラム自体はできてるんですが質問があります。
char name[6][7];
の宣言はnameという変数名の箱を6個で、1箱7文字まで入るという意味で合ってるんでしょうか?
scanf("%s",name[0]);
で7文字以上打ってもname[0]には7文字しかはいらないから
printf("%sさんの国語の点入れて     ",name[0]);
では7文字までしか出力されないはずだと思うのですが
8文字以上出力されてしまいます。
なぜでしょうか?
0665デフォルトの名無しさんNGNG
> の宣言はnameという変数名の箱を6個で、1箱7文字まで入るという意味で合ってるんでしょうか?
違います、7文字(6文字+NULL終端)までしか入れちゃダメ、という意味
0666664NGNG
??とりあえずおちつけ、オレ。
ではchar name[6][7]; の[7]は本当はそれ以上も入ってしまうって
ことですか?
     /\⌒ヽペタン
   /  /⌒)ノ ペタン 慌てるな
  ∧_∧ \ ((    
 <; `щ´>∧_∧
 /  ⌒ノ(・ω・ ;)⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;)(_(
0667デフォルトの名無しさんNGNG
入りません、入れちゃダメ
でもその管理はコンパイラはしてくれません、
プルグラマが責任持て
0668664NGNG
わかりました

∧_∧
( ´・ω・) みなさん、お茶が入りましたよ・・・・。
( つ旦O
と_)_) 旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦
0669デフォルトの名無しさんNGNG
scanf()の使用をやめ、
入力をfgets()で行い文字数制限はsscanf()(或いはsprintf())で行えばよい。
#勿論、fgets()でも文字数制限はできるが。
0670デフォルトの名無しさんNGNG
4バイト以上の入力を制限するなら
fget(hoge, 3, stdin);
って感じですか?
0671デフォルトの名無しさんNGNG
>fget(hoge, 3, stdin);
じゃなくて

fgets(hoge, 3, stdin);
でした・・・
0672デフォルトの名無しさんNGNG
fgetってなに
0673デフォルトの名無しさんNGNG
遅かった。ち。
0674デフォルトの名無しさんNGNG
>>670
馬鹿か?
0675670NGNG
>>674
どこかおかしいですか?
>>670の場合、制限というよりは無視といったほうがいいですね。
0676デフォルトの名無しさんNGNG
おかしくないと思うが?
0677デフォルトの名無しさんNGNG
改行とヌル文字の2バイトを余分に加えるべし。
0678デフォルトの名無しさんNGNG
>>677
改行?
0679デフォルトの名無しさんNGNG
fgets(hoge, n, stdin);

でn-1の長さの(\0を除く)文字列を取り入れるんじゃなかった?
だとしたら…
0680デフォルトの名無しさんNGNG
合ってるのでは
0681デフォルトの名無しさんNGNG
fgets()で制限すると、残りを読み捨てる為にもう一度fgets()を呼ぶ羽目になる。
それくらいなら、1行を安全に確保するようにして、残りを文字列処理すればいい。

つーところかな。

まぁ、>677は恥を晒したわけだが。
0682デフォルトの名無しさんNGNG
fgets は改行も格納するわけだが。
まぁ、それよりも余分に読み込んだ方がいいわけだが。
0683デフォルトの名無しさんNGNG
「わけだが」うざい
0684デフォルトの名無しさんNGNG
改行格納したとしてもn-1の長さに収まるからね…
0685デフォルトの名無しさんNGNG
>>682
ウソツキ
0686デフォルトの名無しさんNGNG
fgetsの第二引数は最低でも1024U。これ常識。
0687デフォルトの名無しさんNGNG
char *
fgets(char *str, int size, FILE *stream);

The fgets() function reads at most one less than the number of characters
specified by size from the given stream and stores them in the string
str. Reading stops when a newline character is found, at end-of-file or
error. The newline, if any, is retained. If any characters are read and
there is no error, a `0' character is appended to end the string.
0688686NGNG
intだったか・・・・size_tだとばかり・・・・
そうか。0渡すと面倒なことになるんだ。
じゃあ1024
0689デフォルトの名無しさんNGNG
>>682
改行を格納するのは、ファイルから読み込んだ時だよ。
標準入力の時は、改行は格納しない。
0690デフォルトの名無しさんNGNG
>>689
そんなことないYO (^_^;)
改行を格納しないのはgets
0691デフォルトの名無しさんNGNG
>>689
#include <stdio.h>
int main()
{
 char buf[1024];
 fgets(buf, sizeof buf, stdin);
 printf("[%s]\n", buf);
 return 0;
}

で

123
[123
]

となるのだが。
0692デフォルトの名無しさんNGNG
>>689
標準入力もファイルも同じファイルストリーム
0693デフォルトの名無しさんNGNG
fseekでファイルポジションを戻した後、
fwriteで書き込むと、そこにあったものが上書きされます。
これを上書きではなくて、挿入にするにはどうすればいいでしょうか。
0694デフォルトの名無しさんNGNG
>>693
挿入したい部分より後ろをメモリに読み込む。
挿入したいデータを書き込む。
その後ろに先ほどメモリに読み込んだものを書き込む。
0695デフォルトの名無しさんNGNG
ポインタ変数に、指定したアドレス値を入れることってできますか?
もしできるなら、どうかその方法をお教えください
0696デフォルトの名無しさんNGNG
>>695
何を言っているんだろう・・・・
定数を入れたいのか?
int *p=(int *)0x015689EF;
0以外はこんな風にすればできると思うけど。
0697693NGNG
>>694
ありがとうございます。
0698デフォルトの名無しさんNGNG
giko();
を
int giko(void);
とか言ってるヴァカがいるスレはここですか?
0699デフォルトの名無しさんNGNG
どのレスに対していってんのかわかんね
0700デフォルトの名無しさんNGNG
宣言と定義の区別も付かないヴァカがいるスレはここですか?
0701デフォルトの名無しさんNGNG
>>698
ちがうの?
0702デフォルトの名無しさんNGNG
しかも関数プロトタイプだと
extern giko();
じゃないと警告されるような。
0703デフォルトの名無しさんNGNG
C言語のみOS依存なしで、擬似スレッドを実現することって可能でしょうか?
たとえば、

void a()
{
while(1) { printf("a"); SwitchThread(); }
}
void b()
{
while(1) { printf("b"); SwitchThread(); }
}
void main()
{
MakeThread(&a);
MakeThread(&b);
while(1) SwitchThread();
}

があったとして、それぞれSwitchThread()で
実行が切り替わるようなことをしたいのですが、
SwitchThread()をどう作ればいいのやら…
0704デフォルトの名無しさんNGNG
そういうのは、setjmp,longjmpで実装するのが相場。
0705デフォルトの名無しさんNGNG
たしかRubyはそうだったような
0706デフォルトの名無しさんNGNG
>>704-705
ありがとうございます。
setjmpの勉強してきます。
0707デフォルトの名無しさんNGNG
FILE
マクロでもないのに全て大文字にした理由が分からない
0708デフォルトの名無しさんNGNG
構造体が
struct list { char data ; struct list *nextptr ; } ;
と宣言されていて
struct list *p = NULL ;
とした状態だと
p->nextptr
これもNULLポインタになるんでしょうか?
0709デフォルトの名無しさんNGNG
>>708
pはNULL
それを->を使って参照してはいけないYO!
0710デフォルトの名無しさんNGNG
>>708
やってみてよ。
p->nextptr ←オブジェクトもないのにどこをさしてんの?ってこと。
実行すると見つけることが出来ずエラーを起こす。
0711デフォルトの名無しさんNGNG
  ∧_∧
 ( ´∀`)<ぬるぽ
0712デフォルトの名無しさんNGNG
  ∧_∧
 ( ´∀`)< ガッ
0713デフォルトの名無しさんNGNG
インラインアセンブラの話なんですが.
Cのある関数からインラインアセンブラのラベルにジャンプするにはどうすればいいのでしょうか?
以下のような場合です.
asm("
MYLABEL:
movl ...(ここでの処理)
");

int main(){
...
//ここからジャンプしたい
}

アセンブラはgasです.
ちなみにmain内に以下のように記述してもダメでした.
asm(
"movl %0 %%eax\n"
"jmp %%eax\n"
:: "g"((void *)MYLABEL)
: "ax"
);
MYLABELが未定義である,というエラーが出ます.
どうやら同じasm("");内のラベルしか参照できないようです.
どなたかご教授お願いします.
0714デフォルトの名無しさんNGNG
>>713
>>1 GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo!
0715_NGNG
http://homepage.mac.com/hiroyuki44/
0716デフォルトの名無しさんNGNG
>>713
ソースの構造がよく分からないがBcc32では下は通る

#pragma inline
int main(){
asm{
xor ax,ax;
label1:xor bx,bx;
}
goto label1;
return 0;
}
0717デフォルトの名無しさんNGNG
>>716
ありがとうございます.
通るのはラベルが同じmain()内にあるからではないでしょうか.
とりあえずやりたいことは,
ある関数から外部にある(関数内ではない)インラインアセンブラのコードにジャンプする
ことです.
0718デフォルトの名無しさんNGNG
どうにも必要な構造なのか、関数化する事はできんのか
0719デフォルトの名無しさんNGNG
>>717
外部にあるインラインアセンブラという意味が分からない
インラインアセンブラなのだから何かの関数に
埋め込まれているのではないのか?
0720sageNGNG
>>718
スタックフレームを変化させずに呼び出したいのです.
0721デフォルトの名無しさんNGNG
sage間違えました・・

>>719
inlineというのはCの関数内に記述するからそう呼ばれるのではないのですか?
それともインラインアセンブラは必ずどこかの関数内に記述しなければならないのでしょうか?
0722デフォルトの名無しさんNGNG
>>719
それはアセンブラに展開してから埋め込みでもしないと無理じゃないか?
別の位置に記述したいというだけならばdefineマクロが使えるか知らん

>>721
「Cの関数内に記述」と「どこかの関数内に記述」は同じかと。
ファイル内ということならそもそもコード以外のところは無理だろう
0723デフォルトの名無しさんNGNG
スレ違いな質問に対しても親切ですね。
0724デフォルトの名無しさんNGNG
ビット処理って、具体的にどんな用途があるんですか?
0725デフォルトの名無しさんNGNG
>>713
素直に
__asm__("jmpl MYLABEL");
で通らないかい?
0726デフォルトの名無しさんNGNG
画面中央に■を表示して、
Yを押したら上に、Gを押したら左に、Hを押したら右に、
Bを押したら下に1マス分移動するプログラムを作りたいんですが、
アルゴリズムはどうしたらいいでしょうか?
思いつかないのでヒントお願します。
0727デフォルトの名無しさんNGNG
>>726
アルゴリズムなら726が答えだと思うけど。
0728デフォルトの名無しさんNGNG
いや、もっと詳しく考えてみたいんです。
一度消してから空白を入れたりバックスペース、改行などを
駆使したらできますか?
0729デフォルトの名無しさんNGNG
>>724
集合として使える。
0730デフォルトの名無しさんNGNG
>>728
プラットフォームによるだろう
0731デフォルトの名無しさんNGNG
>>729
ぐ、具体例をなにか挙げてくれたら嬉しいです。
0732デフォルトの名無しさんNGNG
>>731
そのまえによ、適したスレにいけや。
0733デフォルトの名無しさんNGNG
>>731
たとえばコンフィグ画面などで、項目のON/OFFをチェックする際に
項目の数だけフラグ変数を用意するよりも、変数を1つだけ用意して
各ビットのON/OFFで判定できたら、嬉しくないですか?俺は嬉しい。
全てONなら ~0、全てOFFなら 0 を代入するだけで済んでしまう所も
嬉しい。
0734デフォルトの名無しさんNGNG
>>733
つまんねんぇことで嬉しがれるんだな。
0735724NGNG
>>733
すいません。ありがとうございます。
0736デフォルトの名無しさんNGNG
大人には嬉しいという感情がないんだよね。
0737デフォルトの名無しさんNGNG
#include <stdio.h>

void main(){

int a,i;

a = 500000;

for( i=1 ; i=24 ; i++ ){
a = a*1.1;
}

}


コンパイルすると
おそらく不正な代入、'i'に代入した値は使われていない とエラーが出ます
どこに問題があるのでしょうか?
時間経つとやる気が萎えるので早めにレスくれたらありがたいっす
0738デフォルトの名無しさんNGNG
i=24
0739デフォルトの名無しさんNGNG
>>737
for( i=1 ; i=24 ←ここ ; i++ ){
0740737NGNG
あぁ・・そっか・・・おれってほんとばかだな・・・
そこ実行する条件でしたね・・・よく終了する条件と勘違いしてしまいます
鬱堕詩嚢

レスサンクスでした
0741デフォルトの名無しさんNGNG
>>740
なんにも分かっていない
=は代入
0742740NGNG
>>741 それは知ってますよ
0743デフォルトの名無しさんNGNG
分かっていたらなんで>>740のような発言ができるんだ・・・
i=24なんてやったら無限ループだ
0744デフォルトの名無しさんNGNG
== が比較だ
0745740NGNG
いまいちわからんけどおれがアフォなんか・・・
出直してきます
0746デフォルトの名無しさんNGNG
C言語でビット処理は具体的にどのような用途があるのですか?
0747デフォルトの名無しさんNGNG
>>746
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/open.2.html
0748デフォルトの名無しさんNGNG
>>737
Cのint型は2バイトじゃなかったけ?確か6万5千・・・しか入らないよ!
C++のint型はCPUのビット数になる
javaのint型は4バイトです。
0749デフォルトの名無しさんNGNG
>>726
簡単だよ
0750デフォルトの名無しさんNGNG
>>748
初耳です
0751デフォルトの名無しさんNGNG
>>748
釣りか?
それとも、釣りか?
0752デフォルトの名無しさんNGNG
>>746
画像データのRGB 2の8乗255階乗の下位8ビットに文字情報を埋め込んだり、
通信データの各OSI参照層のビット操作など色々・・・
0753デフォルトの名無しさんNGNG
>>748
神
0754デフォルトの名無しさんNGNG
>>747&748&752
激しく�dクス
0755748NGNG
>>754
Cのint型は2または4バイトであると定義されてる。お前の環境では4バイト
かも知れないが、顧客では古いマシンを使ってるところがあるので、2バイト
で使うんだよ!
常識だろ!!!
0756デフォルトの名無しさんNGNG
なるほど
0757デフォルトの名無しさんNGNG
>>754
747,752と748はレスした相手が違うんだが
0758デフォルトの名無しさんNGNG
>>755
どこで定義されているんだよ(;´Д`)
0759デフォルトの名無しさんNGNG
>>758
釣られんなよ、だっせー
0760デフォルトの名無しさんNGNG
>>755
お前は世界観がとてつもなく狭い
0761667NGNG
>>753
エネル!
0762デフォルトの名無しさんNGNG
ANSI Cに決まってんだろ!
関数辞典の一番初めでも見てみろ!
0763デフォルトの名無しさんNGNG
>>760
貴様、神に向かって世界観が狭いとは無礼にもほどがあるぞ
0764デフォルトの名無しさんNGNG
intは4バイトと決めうちしてよい。
0765デフォルトの名無しさんNGNG
intは割り込みだと思っておいたほうがよい
0766デフォルトの名無しさんNGNG
米国の標準化団体の規格票が手元にないくせにANSI, ANSIとしきりに喚くドアフォは痛杉
0767デフォルトの名無しさんNGNG
つーか、原文読めない奴に限って(以下略)。
0768デフォルトの名無しさんNGNG
正直にJISと言えないクソばかり
0769デフォルトの名無しさんNGNG
画面中央に■を表示して、
Yを押したら上に、Gを押したら左に、Hを押したら右に、
Bを押したら下に1マス分移動するプログラムを作ってください。
できたら漏れの次に天才。
明日の夜に回答を出します。
0770デフォルトの名無しさんNGNG
int のサイズは実行環境の構造に適した自然な大きさである、と定義されている。
具体的なサイズまでは規定されていない。
0771769NGNG
この課題はどこかにあったけど、漏れには分かった。
ふん、俺しか分からないだろう
0772デフォルトの名無しさんNGNG
main()
{
int a[2];
int *p, *tmp;

p = &a[0];
tmp = p;

*p = 10;
p++;
*p = 20;

p = tmp;

printf("%d, %d\n", *p, *(p++));

}

これを実行すると、10, 20 とでると思ったのに、20,10とでちまいまつ。
なんででしょうか?
0773デフォルトの名無しさんNGNG
関数の引数がどの順番で(ryってやつか?
0774デフォルトの名無しさんNGNG
仮引数の評価順は不定だからね。
それに後置インクリメントじゃますます意味がない。
printf("%d, %d\n", *p, *(p+1));
0775デフォルトの名無しさんNGNG
>>774
仮じゃなくて実(;´Д`)
0776デフォルトの名無しさんNGNG
漏れの環境では10,10になった
0777デフォルトの名無しさんNGNG
printf("%d, %d\n", p[0], p[1]);
0778デフォルトの名無しさんNGNG
>>775
すまそ逆に言ってしもた。
0779デフォルトの名無しさんNGNG
Cのint型は2バイトじゃなかったけ?確か6万5千・・・しか入らないよ!
C++のint型はCPUのビット数になる
javaのint型は4バイトです。
0780デフォルトの名無しさんNGNG
Cは何系ですか?
0781デフォルトの名無しさんNGNG
>779
2カイメダヨ( ´д)ヒソ(´д`)ヒソ(д` )ヒソ
0782デフォルトの名無しさんNGNG
intは最低でも64ビット
0783デフォルトの名無しさんNGNG
int のサイズは実行環境の構造に適した自然な大きさである、と定義されている。
具体的なサイズまでは規定されていない。
0784デフォルトの名無しさんNGNG
Tintin のサイズは実行環境の構造に適した自然な大きさである、と定義されている。
具体的なサイズまでは規定されていない。
0785デフォルトの名無しさんNGNG
渋谷系
0786デフォルトの名無しさんNGNG
すくなくともshortとintは16ビット

From K&R
0787デフォルトの名無しさんNGNG
いつの時代の話やら。
おっと、K&Rの時代か。
0788デフォルトの名無しさんNGNG
時代は関係ないだろ
あほ?
0789デフォルトの名無しさんNGNG
もまえら何回ループしてるんだよ
0790デフォルトの名無しさんNGNG
>>789

while( 1 )
{
  /* 処理 */
}

とかなってたりして(w
0791デフォルトの名無しさんNGNG
char *a;
int b;
a = malloc(1);
b = strlen(a);
とした時にbが5となるのはなぜでしょうか?
絶対にaの長さ+4になるのですが意味が分かりません
どなたか分かる方いらっしゃいませんでしょうか?
0792デフォルトの名無しさんNGNG
>>791
aに無いも代入してないからたまたま6バイト目に'\0'があったんだろ
0793デフォルトの名無しさんNGNG
>>791
絶対になるとは限りませんよ。
まずstrlenが何をする関数か知ってますか?
与えられたポインタから'\0'が出てくるまでのバイト数を返す関数です。
そして、mallocで確保した領域には何が書かれているかわかりません。
あなたが5というのが出てきたというのはaが指す先から6文字目に'\0'があったのでしょう。
無論mallocで確保した領域を越えた不正アクセスになってます。
0794デフォルトの名無しさんNGNG
単純にバグ
0795デフォルトの名無しさんNGNG
プログラマじゃないが、訳わからん納期持って来たやつ。
(((( ;゚Д゚))) ガクガクブルブル
0796デフォルトの名無しさんNGNG
誤爆スマ・・ソ
0797デフォルトの名無しさんNGNG
>>791
callocを使えば長さは0になるよ
0798デフォルトの名無しさんNGNG
 _, ._
(・∀・) ファイルが開けないんです
0799デフォルトの名無しさんNGNG
>>798
で?
0800デフォルトの名無しさんNGNG
 _, ._
(・∀・)チャックが開かないんです
0801デフォルトの名無しさんNGNG
一通りK&Rを読み終えたら、なにを作ったら勉強になりますか?
どっかで、自分でコンパイラを組めば勉強になると聞きました。
0802デフォルトの名無しさんNGNG
>>801=神?
0803デフォルトの名無しさんNGNG
一通りK&Rを読み終わった程度の人に
コンパイラを組めば勉強になると言った人もアレだが、
それを信用する人もアレだぞ。

何か自分の作りたいものを作れば良い。
何かのツールでもいいし、ゲームでもいいし。
そうやっていろいろやってれば、自然と勉強になる。
0804デフォルトの名無しさんNGNG
>>801
ソフトウェア作法
0805デフォルトの名無しさんNGNG
int x[3][2] = {{1,2},{3,4},{5,6},};
const int (*xp)[2] = x; // 警告
const int (*x_p)[3][2] = &x; // 警告
// typedef int int_pair_by_int_array[2];
int_pair_by_int_array a[3] = {{1,2},{3,4},{5,6},};
const int_pair_by_int_array *ap = a; // 警告
const int_pair_by_int_array (*a_p)[3] = &a; // 警告
// typedef struct { int a, b; } int_pair_by_struct;
int_pair_by_struct b[3] = {{1,2},{3,4},{5,6},};
const int_pair_by_struct *bp = b; // OK ←どうしてこいつだけOK?(MinGW環境でつ)
const int_pair_by_struct (*b_p)[3] = &b; // 警告
0806デフォルトの名無しさんNGNG
_bool, BOOL, Bool どれが正しいの?
0807デフォルトの名無しさんNGNG
>>803
そか?
コンパイラやインタプリタはすごい勉強になるよ。
0808デフォルトの名無しさんNGNG
>>807
物事には段階というものが...。
0809デフォルトの名無しさんNGNG
>>805
> int x[3][2] = {{1,2},{3,4},{5,6},};
> const int (*xp)[2] = x; // 警告
C ではこういう時にはキャストが必要になる。
C++ だといらないんだけどね。
0810デフォルトの名無しさんNGNG
>>808
べつに市販品なみの物を作るってわけじゃないし、
小さいものなら数百行程度でできるから、ちょうどいい教材だと
おもうけど。
0811デフォルトの名無しさんNGNG
Basicインタプリタなんて、32kbもあれば動いてたわけだしな
0812805NGNG
>>809
Cの仕様でつか。。ありが�d
0813デフォルトの名無しさんNGNG
>>809
そんな書き方する人いるの?
見にくいよ!
0814デフォルトの名無しさんNGNG
>>805
int x[3][2] = {{1,2},{3,4},{5,6},};
const int (*xp)[2] = x;

なんでこれで警告がでるんだろう・・・・
VC++6.0ではxpを使いさえすれば警告はでないよ(/W4つきで)
0815814NGNG
xを操作すればxpが指す先のものが変わる場合があるからか?
0816ひよこ名無しさん ◆YFbiU3aPps NGNG
質問:

注釈文にすることを「コメントアウト(comment out)」って言いますよね。
じゃあ、逆にコメントから外すことは何て言うんですか?
0817デフォルトの名無しさんNGNG
>>816
復活
0818デフォルトの名無しさんNGNG
ベホイミ
0819デフォルトの名無しさんNGNG
警告の内容は?
0820rNGNG
"コメントアウトしてたの元に戻す"
0821デフォルトの名無しさんNGNG
コメントイン
0822デフォルトの名無しさんNGNG
http://www.edu.tuis.ac.jp/~susaki/c/
演習問題あるよん
0823ヽ(´ー`)ノNGNG
コメントを外す。

てか C に関k(略
0824デフォルトの名無しさんNGNG
>>822
> printf("差 = %lf\n", a-b);

なんだよこれ(´Д`;)
printfに%lfなんてねーよ(´Д`;)
0825824NGNG
%lfはないというのは間違いかも。
doubleに%lfは不適切
0826824NGNG
やっぱり%lfはないな。long doubleは%Lf
0827デフォルトの名無しさんNGNG
>>825
規格には%lfというのはないだろう。

printfのプロトタイプはint printf(const char *, ...);だから、
floatは格上げされてprintfにdoubleが渡る。

もしもlong doubleなんてものがある処理系だったら、
%lfとかいうものがあるかもしらんね。
0828デフォルトの名無しさんNGNG
>>827
long doubleはANSI CにあるYO!
で、それは%Lf
0829デフォルトの名無しさんNGNG
>>816 (コメントアウトの逆)
uncommentかもしんない
ちなみに、"opposite of comment out"で探してみた
0830デフォルトの名無しさんNGNG
return 0;
をちゃんと書いたほうがいいといわれ、
書いてるんですが、いつも未定義のシノルと出ます。
Why?
0831830@バカNGNG
シノル→シンボル
0832デフォルトの名無しさんNGNG
>>830
未定義のシンボルって多分リンク時のエラー。
return 0;は関係ないと思う。
0833デフォルトの名無しさんNGNG
>>806
C99 のことなら、
× _bool
× BOOL
× Bool
◯ _Bool

typedef なら全部可。
0834名無し@沢村NGNG
>>1
「C言語ならおれに聞け」って、C言語についてわからないことがあって質問するとう行為がおれには理解できんね。
例えば量子の動きがわからないとかDNAの構造がわからないとか言うんだったらわかるよ。
それらは自然がつくったもので、これから人間が解明していくものだからね。
しかしC言語は人間がつくったもので、それは公知のものだから、それが100%理解できんということは、おかしいだろうが!?えっ!?おまいらよ!?
0835デフォルトの名無しさんNGNG
> 量子の動き
ワロタ
0836デフォルトの名無しさんNGNG
http://www62.tok2.com/home/FTR223/akusesu.html
0837デフォルトの名無しさんNGNG
>>834
あたまわるいなー
0838デフォルトの名無しさんNGNG
>>837
「C言語」を「数学」に置き換えて読んでみたらどれだけナンセンスかわかるわなw
数学は純粋に人間の頭だけの人工的な世界なのに、未解決の難問がいくらでもある。
別に連続体仮説とかそういうの持ち出さなくても数学が理解できないとか苦手という人は山ほどいる。

あ、別におきかえんでもナンセンスさはわかるか。
おれは冗談だと思って読んだけどw
0839デフォルトの名無しさんNGNG
>>830
retrun 0; とか書いてるに1票。
0840デフォルトの名無しさんNGNG
>>839
それだとsyntax errorだろう。未定義のシンボルになるには、
retrun(0);
などと書いてるんじゃないかな。
0841デフォルトの名無しさんNGNG
>>840
それだな。
C++ならエラーになるんだろう(宣言無しの呼び出しで)が、Cだと宣言は必須じゃないしな・・・
0842デフォルトの名無しさんNGNG
出戻で格好つけるのはオジン臭い
0843デフォルトの名無しさんNGNG
今どきオジンなんていわんよ
0844デフォルトの名無しさんNGNG
>>838
数学は自然科学ですよ
0845デフォルトの名無しさんNGNG
あんな不自然なものはないと思うけどな・・・
0846デフォルトの名無しさんNGNG
>>844
科学じゃなくて、それを記述するための道具だろ?
0847デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1055157603&res=3

このソースからいらないところを切り取って、
「縦横にキー入力で移動するプログラムを作れ」といわれたのですが、
よく分かりません。簡単に説明してもらえないでしょうか。
このソースの動きについてもお願します。
0848デフォルトの名無しさんNGNG
>>847
char panel[Y][X*MOJI]={のYとX*MOJI
0849デフォルトの名無しさんNGNG
私は数学は発端となった代数学や幾何学以来
つねに自然科学の最も抽象化された分野であると思う
その成果が余りにも生活感覚から離れているために
それを忘れがちなだけなのではないか?
0850デフォルトの名無しさんNGNG
いい加減、スレ違い板違いな半端知識披露ヤメイ
0851デフォルトの名無しさんNGNG
>>847
Tabなら移動って書いてあるから、その代わりに複数のキーを割り当てて縦横に動けるようにすればいいんじゃないの。
0852デフォルトの名無しさんNGNG
実行すると表示される
A[ ] B[ ] C[ ]
D[ ] E[ ] F[ ]
も削除するにはどのようにしたら良いでしょうか
0853852NGNG
全体的なプログラムがあまりよく分からないので、
カーソルが縦横に動く原理だけでも今理解したいのです。
0854848@あほNGNG
X*MOJIは必要だろ・・・
初歩の初歩だ。
0855デフォルトの名無しさんNGNG
>>853
本当はスレ違いだけど・・・まあいいか。
http://www.gaia.h.kyoto-u.ac.jp/users/izui/technotes/escape.html
0856852NGNG
>>855
すみませんでした。
どうもありがとうございます。
0857デフォルトの名無しさんNGNG
move()の中でx,yの値をいじっている。
これをベースにup()、down()、right()、left()
という関数をつくればいい。
0858デフォルトの名無しさんNGNG
>>834
量子もDNAも数学も人間が勝手に作った概念だよ
おまえさん、自然と人工の境がまるで解ってないな
0859デフォルトの名無しさんNGNG
つーか、沢村なんかの相手すんなよ
0860858NGNG
>>859
だな
0861デフォルトの名無しさんNGNG
上のリンク逝ってみたが、
何がなんだか俺には分からん。
ESC[pl;pcHってどうやって記述すんだYO!
少なくとも>>852には理解できないだろう。
どうすんだこのやろ
0862デフォルトの名無しさんNGNG
>>861
printf("\033[1;1H");
0863デフォルトの名無しさんNGNG
\033の意味は?
覚えないといかんのか?
0864デフォルトの名無しさんNGNG
>>863
ASCIIでESCは27 それを8進数にすると33
だから\033
0865デフォルトの名無しさんNGNG
Cの標準ライブラリに付属の
sin(),cos(),tan()
と同じ関数を1から作りたいのですが
何処かに、詳しいコメント付きソースは無いですか?
知ってる方は教えて下さい
0866デフォルトの名無しさんNGNG
テーブル作って終了
0867853NGNG
#include <stdio.h>
int main(void){
char a;
int b,c;
b=1,c=1;
a=getchar();
if('a'=='y'){
c++;
printf("\033[b;cH");
}
}
わけわかんなくなってしまいました。
多分、180度逆の方向に・・・。
思いっきり叩いてください。
0868865NGNG
>>866
マジレスを希望してます
0869デフォルトの名無しさんNGNG
>>865
glibcなり、FreeBSDのソース見れ
0870デフォルトの名無しさんNGNG
>>867
もしかしてbやcが展開されると思った?
そういうときはprintf("\033[%d;%dH",b,c);とする。
0871デフォルトの名無しさんNGNG
エスケープシーケンスに触れた事ないヤシも居るのか…。
時代の差かなぁ〜…。
0872デフォルトの名無しさんNGNG
>>869
コメントって付いてます?
0873853NGNG
>>870
そうだったんですか。
気を付けます。
でも、まだ間違いがてんこもりの予感
0874デフォルトの名無しさんNGNG
>>872
EnglishなCommentがたーくさん
0875デフォルトの名無しさんNGNG
>>874
実際のソースが見つからないんですけど、
どのソースのアーカイブに含まれてるんでしょうか?
0876保守NGNG
 
0877デフォルトの名無しさんNGNG
>>875
sin.cをfindして出てこない?
VC++にもその名前ではないんだよね・・・
0878867NGNG
どなたか、>>867の間違いを教えていただけないでしょうか?
それを参考にしたいのですが。
自分が至らないばかりに・・・。
すみません。叩きまくってください。
0879877NGNG
ないね・・・
ファイル名がわからん。ないはずないと思うんだけど。

>>878
> if('a'=='y'){
>>870
0880865NGNG
>>877
cygwinのソースから探してるんですけど
それぞれの関数の本体らしきソースは出て来ません
と言う訳で、どのソースにsin()等の本体があるか知ってる方は教えて下さい
0881877NGNG
int a
中略
if(a=='y'){
0882デフォルトの名無しさんNGNG
エスケープシーケンス懐かすぅぃ。

>>865
ftp://ftp.matsusaka-u.ac.jp/pub/algorithms/src/trig.c
0883877NGNG
セミコロン忘れた

>>880
ちなみに俺は869じゃないから。
0884デフォルトの名無しさんNGNG
>>878
とりあえず、エスケープシーケンスでググッてみ。
0885865NGNG
cygwinの違うアーカイブで見つかりました
じっくり、ソースを読んでみます
0886867NGNG
#include <stdio.h>
int main(void){
char a;
int b,c;
b=1,c=1;
a=getchar();
if(a=='y'){
c++;
printf("\033[%d;%dH",b,c);
}
}
どうもです。あれからちょっと変えてみたんですが、全く
実行されません。ヽ(`Д´)ノ
0887867NGNG
自分はセンスないなぁ。
こんなにアドバイスもらってるのに・・・鬱。
がんがろ
0888デフォルトの名無しさんNGNG
>>886
ちゃんとエスケープシーケンスをサポートするコンソールで実行しているか?
0889デフォルトの名無しさんNGNG
>886
実行すると即終了してるということ?
ループ回さないと。

でないならどこでどう動かないか明記して。
ttp://bbs.gamdev.org/test/read.cgi/gamedev/1055402150/18
0890デフォルトの名無しさんNGNG
ファイル入出力で
ioctl関数を使用してカーネルバッファリングの
バッファサイズを強制的に0にして
ファイル入出力の時間を計測せよ.

カーネルバッファリングのバッファサイズを0にするために,
ioctl関数をどのように使用すればいいですか?
0891デフォルトの名無しさんNGNG
>>890
とりあえず所定の環境のスレで聞くことじゃな。
0892デフォルトの名無しさんNGNG
>>886
>>888か、結果が目に見えていないだけのような・・・
0893デフォルトの名無しさんNGNG
>>891
ここがいいとおもったんですが,
どの板ですか?
0894デフォルトの名無しさんNGNG
>>893
板はここでいいが、スレは適切でない。
もしUNIXならUNIXプログラミングスレへ。かなり雰囲気悪いけど。
0895デフォルトの名無しさんNGNG
>>893
ラ板
0896デフォルトの名無しさんNGNG
>>886
b と c をもうちっと大きな値にして、
その後に何か表示してみるといいかと。
0897デフォルトの名無しさんNGNG
int a = 0, b = 0;
は良くても
int a = b = 0;
は良くないと聞いたのですが、
どこが問題なのでしょうか?
0898デフォルトの名無しさんNGNG
>>897
bが未定義

初期化の=と代入の=は違うよ。
0899デフォルトの名無しさんNGNG
int b;
int a=b=0;

これならOK
0900897NGNG
なるほど。
サンクスです。
0901デフォルトの名無しさんNGNG
int a, b;
a = b = 0;

普通こうする
0902デフォルトの名無しさんNGNG
>>901
そういえば最近、そういう書き方してないな。
a = 0;
b = 0;
こうやって、必ず分けて代入してる。
0903デフォルトの名無しさんNGNG
int a;
memset(&a,0,sizeof(int));
0904デフォルトの名無しさんNGNG
int a;
a-=a;
0905デフォルトの名無しさんNGNG
int a;
a ^= a;
0906デフォルトの名無しさんNGNG
int a;
a %= a;
0907デフォルトの名無しさんNGNG
int a;
a&=0;
0908デフォルトの名無しさんNGNG
int a;
a=strlen("");
0909デフォルトの名無しさんNGNG
int a;
a = atoi("0");
0910デフォルトの名無しさんNGNG
int a;
a="910get"[6];
0911デフォルトの名無しさんNGNG
int a;
a = !1;
0912デフォルトの名無しさんNGNG
>>902
とか言いながらfor(a = 0, b = 0;なんちゃってな
0913デフォルトの名無しさんNGNG
int a;
a = &a - &a;
0914デフォルトの名無しさんNGNG
int a;
a='-'-'-';
0915デフォルトの名無しさんNGNG
int a;
a = 3["915"];
0916デフォルトの名無しさんNGNG
int a;
a=a>a;
0917デフォルトの名無しさんNGNG
int a;
a=stderr-stdin>>stdout-stdin>>stderr-stdout;
0918デフォルトの名無しさんNGNG
int a;
a=(int)fopen("*.*","w");
0919デフォルトの名無しさんNGNG
int a 0;
0920デフォルトの名無しさんNGNG
int a;
a=~((unsigned)-1>>1)-INT_MIN;
0921デフォルトの名無しさんNGNG
int a;
a=printf("");
0922デフォルトの名無しさんNGNG
>>865
マクローリンの定理でも使っとけ
0923デフォルトの名無しさんNGNG
>>918
おいおい、それでファイルが作れちゃうOSもあるぞ。
0924デフォルトの名無しさんNGNG
>>919
それ、コンパイル通る?
0925デフォルトの名無しさんNGNG
エスケープシーケンスに対応したコンパイラってどんなのが
ありますか?教えて下さい。
↑のコードを実行してみたいので
0926925NGNG
しまった。さげてしまいました
0927デフォルトの名無しさんNGNG
>>925
エスケープシーケンスは実行環境依存。
コンパイラの問題じゃないのでスレ違い。
0928925NGNG
環境依存っすか?
WinXPでBCC55使ってるんですが、
無理ですた。
0929デフォルトの名無しさんNGNG
>>925
windows2000/xpのコンソールでは、
エスケープシーケンスは使えないみたい。
APIを使うしかないね。
0930925NGNG
APIですか。
#include <stdio.h>
int main(void){

int a,b,c;
b=1,c=1;
a=getchar();
if(a=='y'){
b++;
printf("\033[%d;%dH",b,c);
}
else if(a=='b'){
b--;
printf("\033[%d;%dH",b,c);
}
else if(a=='g'){
c--;
printf("\033[%d;%dH",b,c);
}
else if("a=='h'){
c++;
printf("\033[%d;%dH",b,c);
}
printf("\n\n↑ yボタン\n↓ bボタン\n");
printf("← gボタン\n→ hボタン\n");
}

このソースのどこを変えたら・・・鬱
0931デフォルトの名無しさんNGNG
保守
0932デフォルトの名無しさんNGNG
>>930
定期的に登る話題だな
"猫でもわかる"でぐぐれ。
0933デフォルトの名無しさんNGNG
>>925
即席 & 処理系依存
#include <stdio.h>
#include <windows.h>
#include <conio.h>

int main(void)
{
HANDLE hOut;
COORD new_coset = {0, 0}, old_coset = {0, 0};
DWORD dwResult;
int c;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
do{
if(SetConsoleCursorPosition(hOut, new_coset) == 0) return(-1);
if(WriteConsole(hOut, "○", 2, &dwResult, NULL) == 0) return(-1);
c = getch();
if(c == 'y') new_coset.Y--;
if(c == 'b') new_coset.Y++;
if(c == 'g') new_coset.X--;
if(c == 'h') new_coset.X++;
if(SetConsoleCursorPosition(hOut, old_coset) == 0) return(-1);
if(WriteConsole(hOut, " ", 2, &dwResult, NULL) == 0) return(-1);
old_coset.X = new_coset.X;
old_coset.Y = new_coset.Y;
}while(1);
return(0);
}
0934933NGNG
適当でスマソ
0935ビル・ジョブスNGNG
久しぶりに日本に帰ってきました。
皆さんお元気そうで何よりです。(^^)
0936デフォルトの名無しさんNGNG
ひさしぶり
0937デフォルトの名無しさんNGNG
>>935
誰?
0938デフォルトの名無しさんNGNG
>>937
このスレのPart1をたてやがった大馬鹿者。
0939デフォルトの名無しさんNGNG
>>933
完璧です!どうもありがとうございます。
ちなみにC歴はどのくらいなんでしょうか?
0940デフォルトの名無しさんNGNG
>>939
知りたがりは早死にする
0941デフォルトの名無しさんNGNG
>>939
教えてあげないよ♪ジャン byポリンキー
0942デフォルトの名無しさんNGNG
C言語でリアルタイムキー入力をするために関数は何をつかえばよろしいでしょうか。OSはlinuxです。アドバイス御願い致します。
0943デフォルトの名無しさんNGNG
>>942
スレ違いだが教えてやろう。system("stty raw"); すればいい。
あとは犬板なりunix板なりunixスレなり行ってくれ。
0944デフォルトの名無しさんNGNG
犬板???
0945デフォルトの名無しさんNGNG
大阪
0946デフォルトの名無しさんNGNG
http://www.darkcat.on.arena.ne.jp/cgi-bin/dknbbs2/bbs.cgi?sub=list&usr=hello_world82563
Cの掲示板はこちらへ移動しました。
雑談・質問なんでもこちらへどうぞ。
0947デフォルトの名無しさんNGNG
int a;
a+=~a+1;
0948デフォルトの名無しさんNGNG
int a;
while(a=rand());
0949デフォルトの名無しさんNGNG
int a;
_asm { mov a,0 }
0950デフォルトの名無しさんNGNG
int a;
#define a 0
0951デフォルトの名無しさんNGNG
>>923
それは知らんかった。どこのやつ?

>>924
ちょっと古いコンパイラで試してみそ
0952デフォルトの名無しさんNGNG
int a;
a<<=(sizeof(int)*CHAR_BIT-1);
0953デフォルトの名無しさんNGNG
次スレ立てていい?
0954952NGNG
あ、だめだ。
0955デフォルトの名無しさんNGNG
>>954
だめ
0956955NGNG
まちがった。
>>953に
0957953NGNG
立てたい
0958955NGNG
>>957
頼んだ
0959デフォルトの名無しさんNGNG
intとかdoubleなどの最大値、最小値は、どうやって知ることが出来るの?
0960デフォルトの名無しさんNGNG
>>959
limits.hやfloat.hで定義されているマクロで
0961デフォルトの名無しさんNGNG
スマソ
次スレ
http://pc2.2ch.net/test/read.cgi/tech/1056806789/
0962デフォルトの名無しさんNGNG
>>960
とってもサンクス
0963デフォルトの名無しさんNGNG
つるべのちんこ見ちまったよ(;´Д`)
0964デフォルトの名無しさんNGNG
( ゚Д゚)ノω チソコクラエッ!
http://www5.tok2.com/home2/tv/cgi-bin/src/img20030629022414.avi

http://img.2chan.net/b/src/1056820907003.jpg
http://mistercap.hp.infoseek.co.jp/cgi-bin/source/img20030629022127.jpg
http://upload.fam.cx/cgi-bin/img-box/lsi30629022040.jpg
http://www5.tok2.com/home2/tv/cgi-bin/src/img20030629022120.jpg
http://mistercap.hp.infoseek.co.jp/cgi-bin/source/img20030629021948.jpg
 
0965デフォルトの名無しさんNGNG
>>964
ありがトン(´Д`)ノ⌒■
0966デフォルトの名無しさんNGNG
tちんこのためにまじめな顔して、お見苦しい映像があり申し訳ありませんでしたとか誤ってるアナウンサー萌え
0967デフォルトの名無しさんNGNG
(∩д∩)
0968デフォルトの名無しさんNGNG
うめたて
0969デフォルトの名無しさんNGNG
1000取ったこと無いんでとってもいいですか?
0970デフォルトの名無しさんNGNG
>>969
だめ。
0971デフォルトの名無しさんNGNG
各スレ1000ゲットはアクセス規制の対象となる場合があります
0972デフォルトの名無しさんNGNG
main(int argc, char *argv[])

という引数で、
**argv, *argv, argv[], argv は、それぞれ何を表しているんですか?
0973デフォルトの名無しさんNGNG
>>972
コマンドライン引数 http://www9.plala.or.jp/sgwr-t/c/sec11-4.html
0974972NGNG
>>973
こんなサイトあったんですか・・・ありがとうございましった!!
0975デフォルトの名無しさんNGNG
今日から1日1回

  ∧_∧
 ( ´∀`)< ぬるぽ
0976デフォルトの名無しさんNGNG
イチニチイッカイ
 ( ・∀・)   | |  ガッ
 と    )   | |
  Y /ノ   人
    / )   <  >__Λ∩
 _/し' //. V`Д´)/
 (_フ彡       /  ←>>975
0977デフォルトの名無しさんNGNG
  ∧_∧
 ( ´∀`)<
0978デフォルトの名無しさんNGNG
ぬゑぽ
0979デフォルトの名無しさんNGNG
漏れもガッしていいですか?
0980デフォルトの名無しさんNGNG
カウン
0981デフォルトの名無しさんNGNG
トダ
0982デフォルトの名無しさんNGNG
ウ
0983デフォルトの名無しさんNGNG
ぬるぽ
0984デフォルトの名無しさんNGNG
part60に追い越される前になんとしてでもこっちを埋めるんだ!
0985デフォルトの名無しさんNGNG
埋め立てですかぁ〜
0986名無し@沢森NGNG
ヌヒよ。
0987デフォルトの名無しさんNGNG
  ∧_∧
 ( ´∀`)< ぬるぽ
0988デフォルトの名無しさんNGNG
誰かマジでスレ立てろよ…
0989デフォルトの名無しさんNGNG
C言語なら俺に聞け! Part 61

http://pc2.2ch.net/test/read.cgi/tech/1057677056/
0990デフォルトの名無しさんNGNG
このスレがまた 61 の避難所になったりするんだろうか。
0991デフォルトの名無しさんNGNG
それはそれで素晴らしい事です。
0992デフォルトの名無しさんNGNG
  ∧_∧
 ( ´∀`)<
0993デフォルトの名無しさんNGNG
  /__β ヽ_
  [ `↓´]   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>992
 (_フ彡        /
0994デフォルトの名無しさんNGNG
    ∧_∧
   ( ´∀`)<埋め立てぬるぽ
0995デフォルトの名無しさんNGNG
9 9 5
0996デフォルトの名無しさんNGNG
996
0997デフォルトの名無しさんNGNG
9 9 7
0998_NGNG
http://homepage.mac.com/hiroyuki44/
0999銀河鉄道NGNG
1000999NGNG
999
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。