C言語なら、俺に聞け! Part 〈52〉
レス数が1000を超えています。これ以上書き込みはできません。
0001ぬるぽ
NGNG質問する前には最低限Googleで検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo!
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
コンパイラを探しているなら >>2- を。
上記を逸した場合の結果は激しく未定義だゴルァ!!
∧_∧
( ´∀`)< ぬるぽ
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/
0002ぬるぽ
NGNGgcc
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デフォルトの名無しさん
NGNG0004ぬるぽ
NGNG51 http://pc2.2ch.net/test/read.cgi/tech/1046104909/
50 http://pc2.2ch.net/tech/kako/1044/10449/1044938752.html
49 http://pc2.2ch.net/test/read.cgi/tech/1042646178/
48 http://pc3.2ch.net/tech/kako/1041/10411/1041127646.html
47 http://pc3.2ch.net/tech/kako/1040/10400/1040048202.html
46 http://pc3.2ch.net/tech/kako/1039/10393/1039328710.html
45 http://pc3.2ch.net/tech/kako/1038/10384/1038405432.html
44 http://pc3.2ch.net/tech/kako/1037/10377/1037796472.html
43 http://pc3.2ch.net/tech/kako/1037/10372/1037281411.html
43 http://pc3.2ch.net/tech/kako/1037/10371/1037134356.html
42 http://pc3.2ch.net/tech/kako/1037/10371/1037101156.html
41 http://pc3.2ch.net/tech/kako/1036/10368/1036876790.html
40 http://pc3.2ch.net/tech/kako/1036/10366/1036673739.html
39 http://pc3.2ch.net/tech/kako/1036/10364/1036409391.html
38 http://pc3.2ch.net/tech/kako/1035/10357/1035729526.html
37 http://pc3.2ch.net/tech/kako/1035/10356/1035623265.html
36 http://pc3.2ch.net/tech/kako/1035/10352/1035211039.html
35 http://pc3.2ch.net/tech/kako/1034/10343/1034337064.html
34 http://pc3.2ch.net/tech/kako/1033/10332/1033240509.html
33 http://pc3.2ch.net/tech/kako/1032/10326/1032606064.html
32 http://pc3.2ch.net/tech/kako/1031/10319/1031905402.html
31 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
30 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
29 http://pc3.2ch.net/tech/kako/1029/10296/1029605182.html
28 http://pc3.2ch.net/tech/kako/1028/10284/1028495798.html
27 http://pc3.2ch.net/tech/kako/1027/10271/1027160374.html
0005ぬるぽ
NGNG25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
23 http://pc.2ch.net/tech/kako/1023/10230/1023024817.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
20 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
19 http://pc.2ch.net/tech/kako/1020/10207/1020756993.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
15 http://pc.2ch.net/tech/kako/1016/10165/1016519243.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1013/10139/1013990673.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1008/10083/1008300863.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
7 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html
0006デフォルトの名無しさん
NGNG1000直前だということに気づかなかったぞ(藁
0007デフォルトの名無しさん
NGNGと ) | | 人 < >__Λ∩
Y /ノ .人 < >__Λ∩Д´)/
/ ) .人 < >__Λ ∩Д´)/ / ←>>1
_/し' < >_Λ∩Д´)/ / ←>>2
(_フ彡 V`Д´)/ / ←>>4
/ ←>>5
0008デフォルトの名無しさん
NGNGなんて事を・・・
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGスレ違い。
ここは、ぬるぽのスレです。
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG( ・∀・) | | ガガガガッ 人
と ) | | 人 < >__Λ∩
Y /ノ .人 < >__Λ∩Д´)/
/ ) .人 < >__Λ ∩Д´)/ / ←>>1
_/し' < >_Λ∩Д´)/ / ←>>2
(_フ彡 V`Д´)/ / ←>>4
/ ←>>5
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG練習として簡単なWebサーバを立ち上げたいのですが、
右も左もわかりません・・・
どこか参考にすべきHPなどはありますでしょうか?
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGワラタ
>>14
取りあえずSocketについて調べたら?
0017デフォルトの名無しさん
NGNGWebサーバをCで作る、ということでしょうか?
WebサーバにアクセスするソフトをCで作るということでしょうか?
0018デフォルトの名無しさん
NGNGそういや、召還ワードのひとつだったな
0020デフォルトの名無しさん
NGNGこの答え方はネタっぽいな。
あるいは、日本語の右も左もわからないかだが。
0021デフォルトの名無しさん
NGNGCで 「何を」 作りたかったんだろう
002214
NGNGそういうことではないんでしょうか・・・?
0023デフォルトの名無しさん
NGNG本家ですら、何年もかけて、多くの人数をかけて日々バージョンアップや
バグフィクスを繰り返しているというのに・・・
0024デフォルトの名無しさん
NGNGまあ、VBですら簡易HTTPサーバは作れるから、気長に作りなされ。
セキュリティとか難しいことを考えなければ、意外になんとかなるぞ。
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGいや、そういう問題じゃなくてw
>>14はどこへ逃げた?
0028デフォルトの名無しさん
NGNGドメイン取得、ネットワーク構成を決める
ハードを買って来て組み立て、ケーブル接続
OSインスコ、起動、ネットワーク設定、テスト
こんな感じ
0029デフォルトの名無しさん
NGNGお前の会社には今後見積もり取らんことにするよ。
0030デフォルトの名無しさん
NGNG要するに、ローカルな環境にWebサーバ立てて、Cで組んだCGI動かしたいんだろ?
こちらへどうぞ↓
C言語CGI専用スレッド
http://pc2.2ch.net/test/read.cgi/php/988918264/l50
0031デフォルトの名無しさん
NGNG(´∀` ) ∧∧
 ̄ ̄ ==== ( ・∀・)つ0===フ
⊂ ̄ ̄⊃ ,/| === ̄ ̄
ノ ノ ノ | | ( ⊃/
(_ノ ) | | ∧∧し⊃
⊂(・∀・ ) ∧∧
 ̄ ̄ ==== ( ・∀・)つ0===フ スレタテオツカレ!!>>1>>2
\ ⊂) ( ⊃/
⊂ J し⊃
'"'""
0032デフォルトの名無しさん
NGNGインストール方法がよくわからない。誰か教えて。
0033デフォルトの名無しさん
NGNGまずはぐぐれ。話はそれからだ。
0034デフォルトの名無しさん
NGNG雑誌って、Cマガだろ?
いまさらそんなの入れるな。
せめてBCCにしとけ。
どうしても入れたければ、ググれ。
0035デフォルトの名無しさん
NGNG展開してパスを通すだけの脳味噌がないにせよ、>>32には無理。
0036デフォルトの名無しさん
NGNG冷たいねアンタ
0037デフォルトの名無しさん
NGNG冷たく思うかもしれないけどそれが>>32のためになる。
本当は俺は温かい心の持ち主なのだ。
0038デフォルトの名無しさん
NGNG冷たいねアンタ
0039デフォルトの名無しさん
NGNG冷たく思うかもしれないけどそれが>>36のためになる。
本当は俺は温かい心の持ち主なのだ。
0040デフォルトの名無しさん
NGNG次。
0041デフォルトの名無しさん
NGNG冷たいねアンタ
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNGインストール方法がよくわからない。誰か教えて。
0044デフォルトの名無しさん
NGNG冷たいねアンタ
0045デフォルトの名無しさん
NGNG帰れ。
0046デフォルトの名無しさん
NGNG逝ってよし!
0047デフォルトの名無しさん
NGNGまずCD-Rにコピれ。話はそれからだ。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNGお前には迷惑かからないだろ?
それともマイクロソフトの社員なのか?
0051デフォルトの名無しさん
NGNG> それともマイクロソフトの社員なのか?
そうですが何か?
0052デフォルトの名無しさん
NGNGじゃあ死ね
0053デフォルトの名無しさん
NGNG一平民の言うことなんか誰が聞くか(w
0055デフォルトの名無しさん
NGNGコンパイルオプションの対応はどこで調べればよいのでしょう.
math.hなら-lmだとか、なにか変換規則でもあれば別ですが、
表みたいなものがどこかにあるのでしょうか.お教えください.
0057デフォルトの名無しさん
NGNG死ね
0059デフォルトの名無しさん
NGNG自殺サイトで知り合った二人。
006055
NGNGgccです. math.hなどの場合#include <hoge>とした場合の話です.
stdio.hならなにも要らず、math.hなら-lmが要るなど.
man ld, man gccでも特に無いようです.Cの言語仕様書に書いてある
のでしょうか?
0061デフォルトの名無しさん
NGNGそしてお前が主犯
006252
NGNG分かっているよ。>>52-54あたりからの流れだw
ヘッダーファイルじゃなくてリンカーに標準じゃリンクしてくれないライブラリをリンクしてくれという
オプションのことでしょ?それの一覧がどこにあるかはわからないなぁ。
-lにライブラリのファイル名のlibと.aを取り除いたものをつければいいんじゃないかな?
0065デフォルトの名無しさん
NGNGオマエモナー
006655, 60
NGNGlib"hoge".{so.a}なら-lhogeだというのは書いてあったん
ですが、それだと、math -> libm.soという変換がやはり
出来るためのテーブルがどこかにないと困ることになりま
すよね... man mathでmath.hは出てくるんですが、そこにも
math.hで定義される関数のオブジェクトはlibm.soにあるとは
一言も書かれていないんです.
0067デフォルトの名無しさん
NGNG/usr/libあたりから自分で探す
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG同じにしているライブラリも在るってだけ。
例えばxmp画像を扱うライブラリはlibxpm.aでインクルードはxpm.hだけど。
大きなライブラリだと多対一だしね。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGclass unko{
char* func(int c);
};
char* unko::func(int c){
int k = new int[c]; // ←A
・
・
return k; // ←B
}
-----------------------------
int main(int argc,char* argv[]){
unko un;
un.fun(4);
}
としてますが、Aのメモリー解放をどこでしたら良いのでしょう?
というのも、return で返すときにしようしている。
0072デフォルトの名無しさん
NGNGlibc.aがいい例だな。
0073デフォルトの名無しさん
NGNGC++ならC++のスレで
それにしても阿呆だなぁ。
007471
NGNG○char k = new char[c]; // ←A
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNGおしえて〜。
0079デフォルトの名無しさん
NGNGreturn後もその領域を参照するなら、その関数とは別のところで解放しないとだめだろ。
008055, 60, 66
NGNG出来るようなものではないということですね.
一応私もgoogleなどで探してみたんですが、こういう(私からみれば
それこそ無いと致命的と思われる)ものが転がっていないという
ことはすなわちコンパイラ(リンカー)依存だということですかね?
#include ""ではなくて#include <>として使う標準ヘッダ(?)の関数が
自由自在に自分で探せて、使えるようになるだけでも出来ることが
広がりそうなんですが.
0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGサンプル例をよろしく。
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNGmain の中でも、unko クラスに破棄専用のメソッドを作っても。
008655, 60, 66, 80
NGNGなどでCの標準関数一覧は見つけました(本にも載っている)が、コン
パイル時につける-lmなどのオプションとの相関はやはり無いようです.
ちょっと基本的質問のような気がしてきましたのでもう少し自分で
調べてみます.明日も学校があるのでもう寝ます.ありがとうござい
ました.
0088デフォルトの名無しさん
NGNGそりゃそうだ。
仕様ではファイル名は一部のヘッダーファイルしか定義されていないからね。
0089デフォルトの名無しさん
NGNGint ipaddr;
int subnetmask;
という状態で、bufにあるデータをipaddrとsubnetmaskへ分ける最も効率の
良い方法をアドバイスください。
私は、
int i;
char addr_tmp[20];
と追加して、
for(i=0; i<strlen(buf); i++)
if(buf[i] == '/')
buf[i] == 0x20;
として、スラッシュをスペースに変え、
sscanf(buf, "%s%d", adr_tmp, subnetmask);
inet_atonで、アドレスを数値に変えてます。
こんなんでいいでしょうか?
なんかスラッシュをスペースに変えてるところが無駄に思えるんですが。。
009055,60,66,80,86
NGNGまた探します.すくなくともgcc-3.2.2のtar.gzの中には
無かったです.みんなどうしているんだろうか.
朝練もあるんでもう寝ます...
0091デフォルトの名無しさん
NGNGアーカイブの中身をリスティングするとか・・・常識とか・・・
0092デフォルトの名無しさん
NGNGchar* p = strchr(buf, '/');
if (p) {
subnetmask = atoi(p+1);
*p = '\0';
strcpy(addr_tmp, buf);
}
0093デフォルトの名無しさん
NGNGスペースに置き換えなくてもいいでしょ。
sscanf(buf, "%s/%d", adr_tmp, subnetmask);
これでいけない?
0094デフォルトの名無しさん
NGNG009593
NGNG%[^/]/%d
こうだった(鬱
009689
NGNGちょっと試してみます。
>>93
そう思ってましたが、なぜか最初の%sで全ての文字列を取得してしまいます。
どうやら、スペース、タブ、改行以外は区切り文字にできないようです。
>>94
ホントはデファイン切ってあるんだけどね。
009897
NGNG確かこんな感じの書き方があったと思ったんだが。
009955,60,66,80,86,90
NGNGの中も見ましたがやはりありませんでした.
>>91さん,そのライブラリの中身をリスティングとはどうやるの
ですか!? 本当にもう寝ます.
010097
NGNG010189
NGNGいけました!!
かなりグッドです。
どうやら、私の書いているsscanfにもミスがありました。
subは&subで渡すといけました!!
0103デフォルトの名無しさん
NGNGlib*.aというアーカイブに関数名.oというオブジェクトファイルがたくさん入っていると思うから
それから探せばいいかなと・・・現実的じゃないけど。
010455,60,66,80,86,90,99
NGNGたしかに関数名っぽいのがずらずら出てきた
これと*.hの中身を比べてどの*.hがlib*.soに対応して
いるのかを自分でひまな時調べて表にしておけば行け
そうです.-lmなどのオプションは結局謎のままでしたが.
0105デフォルトの名無しさん
NGNGldd(共有ライブラリへの依存関係を表示するコマンド)も最近知ったばかりだしな・・・
0106デフォルトの名無しさん
NGNGman ar
0107デフォルトの名無しさん
NGNGそういったことが本格的に必要なら、autoconfを使うことを考えた方がいい。
あるいは、最近はgtk-configとかpkg-configなんて仕組みでオプションを提供
する仕組みもある。
$ gtk-config --cflags
-I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include
$ gtk-config --libs
-L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
$ pkg-config gnome --cflags
-DNEED_GNOMESUPPORT_H -I/usr/include/gnome-1.0
-I/usr/lib/gnome-libs/include -I/usr/include/gtk-1.2
-I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include
$ pkg-config gnome --libs
-L/usr/lib -lgnome -lgnomesupport -lesd -laudiofile -lm -lglib
0109ヽ(´ー`)ノ
NGNG0110デフォルトの名無しさん
NGNGあれ使わずしてバグが取れるかってえんだ、べらぼうめ。
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG011555,60,66,80,86,90,99,104
NGNGすが、役立ちます.<>で指定するようなヘッダでもstdio.hのように何もgcc実行時にoptionが必要ないものがあったかと思うと、その一方でmath.hのように
-lmが必要だったりする、という一見規則がない(しかもその規則を書いた
文書が見当たらない)Cの(UNIXの?ANSI Cの?)header、リンカのシステムが
疑問だったのです.gtk-configやpkg-configの開発者の人たちはこれらの
規則を分かっていると思われるのでこれらの中身を調べて見ます.
多分math.hがあれば-lmを足す、という計算をしている部分があるはずですね.
0116デフォルトの名無しさん
NGNG> 多分math.hがあれば-lmを足す
全然違う・・・
0117デフォルトの名無しさん
NGNGヘッダーファイルは切り離して考えろって。
0118デフォルトの名無しさん
NGNGとりあえずman 3 introしる。
011955,60,66,80,86,90,99,104,115
NGNG>>117さん、-lmなどのオプションはヘッダファイルをインクルード
したかではなく,どの関数を使ったかで決まる、という意味ですか?
>>118さん、おお、あなたは神です.Vine Linuxでman 3 intro
としたら、こんなのがありました.
(3M) These functions are contained in the arithmetic library
libm. They are used by the f77(1) FORTRAN compiler by
default,but not by the cc(1) C compiler, which needs
the option -lm.
(3M) 数学ライブラリ libm を構成する関数です。f77(1)コンパイラ
ではデフォルトで使われますがcc(1)コンパイラではそうでは
ありません.(=自動的にはリンクされません。Cコンパイラで
-lmオプションが必要です.
とそのものずばりがありました!
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG012255,60,66,80,86,90,99,104,115,119
NGNGですが、大学の計算機センターのSolarisでman -s 3 introすると、
libmなら-lm, libmailなら-lmail, libmpなら-lmp, libnvpairなら
-lnvpair, などなど(実に50種類も!)ときちんと載っていました.
あとman sinとすれば(Linuxでは載っていなかったですが)
cc [ flag ... ] file ... -lm [ library ... ]とありました.
もちろん私が蛸だったのですが、man gcc, man ldなどで
SEE ALSO intro(3)と書いてあればこんなに時間を取られなかった
のになあ...sectionの概要はintroを引けというのは常識という
ことのようですね.
0123デフォルトの名無しさん
NGNG委員会がどこにconstをつけるべきかで悩んだからconstはついてません(w
0124bloom
NGNG0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNGマニュアル読むんじゃなくて、コンパイル時にマクロかなんかで判断させたい。
0127デフォルトの名無しさん
NGNG>>1
> 標準Cではできない事の質問は使用している開発環境のスレへGo!
スレ違いです。
0128デフォルトの名無しさん
NGNG残念ながら簡単に調べる方法は知らないが。
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG0131C言語
NGNG0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGないから今織田信長を勉強中。
0135デフォルトの名無しさん
NGNGマゾっすか?
0136デフォルトの名無しさん
NGNG本能寺
}
catch(光秀){
MessageBox(_T("是非も無し"));
}
0137デフォルトの名無しさん
NGNG日本人だからな!
0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNGif (下天 == 夢幻) {
}
}
0140デフォルトの名無しさん
NGNG無理ぽ。確実にreentrantなmallocが欲しければ自分でラッピングすべし。
0141デフォルトの名無しさん
NGNG>>32
http://www.vector.co.jp/soft/dl/win95/prog/se037541.html
0142デフォルトの名無しさん
NGNGprinthってなんですか?
0143デフォルトの名無しさん
NGNGplinthの誤植
0144デフォルトの名無しさん
NGNGでもLSI-Cって、ANSIとの互換性にあちこち問題があるんだけど……
intも16bitだしスモールモデルしか扱えないし……
0145デフォルトの名無しさん
NGNG試食版はね。<スモールモデルのみ
いまどき、64KBで制限されるって言われてもねぇ。
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNGしてるのですが、それが別ウインドウの裏に隠れて、見えないときがあるのです。
それを改善するためにダイアログを常にアクティブにしたいのですが、
どのようにソースに組み込んだらいいのでしょうか?
どなたか教えてください。
よろしくお願いします。
0149デフォルトの名無しさん
NGNGまずは>>1の内容を読んで下さい。
OSすら書いてないのにどう答えろと・・・
0150デフォルトの名無しさん
NGNG激しくすれ違い。
それに、GUI環境によって答えが変わるので最低限環境を書かないと話が進まない。
まぁ、「常にアクティブ」ではなくて「最前面に配置する」設定があると思われ。
0151148
NGNG環境は、VisualStudio.NET2002です。
どうかよろしくお願いします。
0152デフォルトの名無しさん
NGNG> GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo!
0153デフォルトの名無しさん
NGNGまず日本語を勉強しろ。
0154デフォルトの名無しさん
NGNGもしも常にアクティブになったらウザイよなー
それ閉じるまで他に何も出来んじゃん。
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNGえ
0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG9x系はウインドウ開いたら一番上にくるが、
2000/XP系は必ず一番上にはこないで点滅のみ、
という仕様のことでは
0160デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>156
0161デフォルトの名無しさん
NGNGありがとう160。
ありがとう156。氏ね。
0162デフォルトの名無しさん
NGNG標準関数だけでファイルのサイズを取得するにはどの関数ですか?
WinAPIならGetFileSizeとか標準関数でなければ_fstatなどあるようですが。。。
0163デフォルトの名無しさん
NGNGlen = fseek(file,0,SEEK_END); とか。
0164デフォルトの名無しさん
NGNGstat()でもいいじゃん。
0165デフォルトの名無しさん
NGNGそれじゃだめだろ。
fseekしたあとにftell
>>164
標準関数じゃない。
0166デフォルトの名無しさん
NGNGusing namespace std;
int main()
{
cout << "abc";
return 0;
}
error LINK 2019 未解決の外部シンボル
fatal error LINK 1120 外部参照が未解決です。
と出て本文にはフォーカスがかからないのですが、どういうエラーなのでしょうか?
0167デフォルトの名無しさん
NGNGerror thread 5963 スレ違いの質問です。
0168デフォルトの名無しさん
NGNGほう、C言語には関数名間違いによるリンカエラーがないと。そうおっしゃる?
0169デフォルトの名無しさん
NGNGC には 「ファイルサイズ」 という概念が定義されていない。
素直に環境依存の方法を取った方がいい。
0170デフォルトの名無しさん
NGNG166 は C 言語じゃない。
0171デフォルトの名無しさん
NGNGもうしゃべるな。恥の上塗り。
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG( ´д)ヒソ(´д`)ヒソ(д` )
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG前橋のポインタ本
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG何でですか?
0180デフォルトの名無しさん
NGNGガッ
>>179
何を言っとるんだね君は。
0181デフォルトの名無しさん
NGNGガッ
>>180
何って、戯れ言。
0182デフォルトの名無しさん
NGNG通じませんよ?
0183デフォルトの名無しさん
NGNGhoge = (int *)malloc(sizeof(int));
free(hoge);
とやって、4行目以降ですでにhogeがfreeされているって事を知ることは出来ます?
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG0186184
NGNG0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGint *hoge;
hoge = (int *)malloc(sizeof(int));
myFree(hoge);
if (hoge) {
fprintf(stderr, "メモリ使用中だっちゃ\n");
}
0189デフォルトの名無しさん
NGNGfreeはぬるぽを渡しても大丈夫(なにもしない)からマクロのifは不要。
0190デフォルトの名無しさん
NGNG知ってるけど、別にいいじゃんか。
0191デフォルトの名無しさん
NGNGガッ
0192デフォルトの名無しさん
NGNGif文のコストしらねーのかボケ!
0193デフォルトの名無しさん
NGNG大抵の環境では最適化を有効にすれば関係無くなると思うんだが。
0194193
NGNG0195デフォルトの名無しさん
NGNGif文のコストより関数オーバヘッドの方がでかいと思う。
でもそんな何クロックレベルの話ししてもしょうがないだろう。
テンケー的な机上の議論だね。
おれもfreeと=NULLは必ずセットで書くよ。(マクロは使わないけど)
NULLチェックすれば有効かどうかわかるもんね。
0196188
NGNGNULLを代入すればいいというのには気づきませんでした。言われてみれば・・・なんですが
完璧に盲点。おかげさまで助かりました。
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG居るかい?
0199188
NGNGつまり私もif付ける派ってことで。
0200制御屋さん見習中
NGNG質問です。
gcc(windows版)を使っていて、以下のwarningがでます。
Warning : assignment makes pointer from integer without cast.
これはどのようないみなのでしょうか?
0201デフォルトの名無しさん
NGNGint型にint型でないものを代入しようとしている。
0202デフォルトの名無しさん
NGNGチェックしてもあまり意味が無いような。
0203デフォルトの名無しさん
NGNGNULLの代入はポインタを再利用するときだけだろ。
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNGま、関数コールのコストとifかますコストを考えて
ifをかます判断もありえるわけだけど。
でもこのコスト差が効いてくるのってfreeに渡すポインタが
ほとんどぬるぽのときになんだよな。
あんまり考えられるシチュエーションじゃない。
ぬるぽじゃない場合がほとんどであればかえって余計なifの
コストがかかってくるわけで。
というわけでおれはifで先にぬるぽを引っ掛けたりしないな。
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGOSが全部解放するからいらないと(w
この話続けてもfjみたいに泥沼になるだけ
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNGでどんな万が一が防げるの?
0211デフォルトの名無しさん
NGNGcallocの方が通っぽいからヽ(´ー`)ノ
0212デフォルトの名無しさん
NGNG違うだろ。
キャストなしにint型をポインタにしようとしているんだろ。
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNG万が一内部でNULLチェックを怠っている処理系があるかもしれない。
>>210
百が一アロケートしたバッファの未初期化領域を参照してしまうバグがあるかもしれない。
0215デフォルトの名無しさん
NGNGreallocオンリー、これ
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG今もそのマクロが有効であることは機密事項である。
0218ヽ(´ー`)ノ
NGNGお前は5年間何をしていたのかと小一時間問い詰めたい。
>>214
そんなの言い出したら calloc だってどんなバグがあるか分からんだろ。
ワケワカメな事言ってるなぁ。
0219デフォルトの名無しさん
NGNG規格を無視した実装のことまで考えてられなくない?
そんなこと言ったら free() 以外の標準関数のほとんどは(ry
0220デフォルトの名無しさん
NGNGはげどう。
きちんと0に初期化してくれているかどうか心配だ。
>>219
はげどう
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNGまあ、その遅さが実際に問題になることはそうはないとおもうが。
0223デフォルトの名無しさん
NGNGループカウンターにはiという名前をつける。複数ある場合は、j,kと。
0224デフォルトの名無しさん
NGNGFortranなら。
0226デフォルトの名無しさん
NGNG別スレにどうぞ。
0228デフォルトの名無しさん
NGNG0229ヽ(´ー`)ノ
NGNGとりあえず一通り読んでみたら?
http://pc2.2ch.net/test/read.cgi/tech/1011026963/
どうせ宗教問題になるのが目に見えてるから、「好きなの使え」で
イイと思うよ。多人数でやる場合は仲間内で意見の統一が取れてれば良い。
実際問題、C で色んなライブラリを使ったソフトウェアを作る場合、
各々のライブラリの命名規則がバラバラなんてザラ。
Java や Win32API のように、推奨されている命名規則があるなら
それを使うべきだし、あっちの API とこっちの API の命名規則が
違うなんてことはあんまりない。
個人的には意味の分かる命名…かな。openssl のコードとか。
まぁいずれにせよ、ここでやるのは適切じゃないと思われ。
0230デフォルトの名無しさん
NGNG>もっともメジャーでもっとも合理的な命名規則
んなの、「リンネの2命名法」に決まっとるがな。
0231デフォルトの名無しさん
NGNGポート番号がわかりません。
DOS 使用です。
御存じの方、教えて下さい。
0232デフォルトの名無しさん
NGNG遅さが問題になった時は、すぐに malloc に書き換える事が出来る。
最初から malloc だった場合はそうはいかない。
ロジックを根本から考え直す必要が出てくる。
これが本当のプロの仕事というものだ。
0233デフォルトの名無しさん
NGNGvoid main(void){
fputc('\a',stderr);
}
main関数がvoidなのは、やる気がないから(笑
実際は、マクロにしてやるといいと思われ。
0234ヽ(´ー`)ノ
NGNGググって色々読んでみたけど面白かったよ、ありがとう。
>>232
最初から malloc だったら、そもそも遅さが問題になる事は無いと思うんだが。
普段は malloc、必要に応じて calloc。これのどこに問題があるっていうの?
わざわざ遅い処理を無駄に行う事もないだろう。
0235デフォルトの名無しさん
NGNGこれからのプログラマはラテン語が必修科目ってこと
0236デフォルトの名無しさん
NGNG?何のこっちゃ
0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNG遅さが問題になった
malloc に書き換えた
解決した
……このロジックをとりあえず根本から考え直す必要が(笑)
0239制御屋さん見習中
NGNGint i, j, k, n;
matrix a;
a = new_matrix(n, n);
メイン関数は上記です。
関数は以下。
この警告は、無視していいのですか?
matrix newmat(int nrow, int ncol)
{
int i;
matrix a;
a = malloc((nrow + 1) * sizeof(void *));
if (a == NULL) return NULL; /* 記憶領域不足 */
for (i = 0; i < nrow; i++) {
a[i] = malloc(sizeof(SCALAR) * ncol);
if (a[i] == NULL) {
while (--i >= 0) free(a[i]);
free(a); return NULL; /* 記憶領域不足 */
}
}
a[nrow] = NULL; /* 行の数を自動判断するための工夫 */
return a;
}
0240制御屋さん見習中
NGNGmatrix new_matrix(int nrow, int ncol)
{
matrix a;
a = newmat(nrow, ncol);
if (a == NULL) error("記憶領域不足.");
return a;
}
宜しくおねがいします。
0241デフォルトの名無しさん
NGNG我々は、"GCC" をコンパイラシステム全体を指す名前として使う。
もう少し正確には、このコンパイラの言語非依存部を指す。
例えば、「GCC」の動作に影響する最適化オプションと言ったり、
あるいは単に「コンパイラ」と言ったりすることもある。
0242デフォルトの名無しさん
NGNG致命的なことってあるよね。
でもそーゆーのはヒープなんざ使わんでシステムコールでとる罠。
つーわけで処理速度の話し意味ないってw
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGところで、関数のプロトタイプ書いた?
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGmatrixって何よ!っていう話と思われ。
わけがわからないものはint型と無理に解釈するコンパイラもあるし。
0247デフォルトの名無しさん
NGNG無理じゃなくて規格でそうなっているはず(宣言のない関数の戻り値の型のことでしょ?)。
0248制御屋さん見習中
NGNGmatrix.h
#ifndef MATUTIL
#define MATUTIL
#include <stdio.h>
#include <stdlib.h>
#ifndef SCALAR
#define SCALAR float
#endif
typedef SCALAR *vector, **matrix;
です。
で、自己レス。
>>244さんの言うとうりでした。
ところで、さらに質問です。
大規模(大人数)プログラムで、
ある機能を追加するような、サブルーチンを
作る状況があったとします。。
そんな時、例えば、func.cと新規にファイルを作って作ったとします。
このとき、プロトタイプ宣言とか、#defineとかは、全部func.cで閉じたほうが良いのでしょうか?
今回、確認の為に、適当にmain関数をつくって確認したため、先に質問した質問警告がでて、困りました。
うまい開発方法を教えてください。
識者の方宜しくお願いします。
0249246
NGNG0250デフォルトの名無しさん
NGNG言っている意味がよくわからんが、他のファイルからも呼び出される関数の宣言や他のファイルでも使われる変数、型の定義はヘッダーファイルですべき。
0251デフォルトの名無しさん
NGNG>最初から malloc だったら、そもそも遅さが問題になる事は無いと思うんだが。
そうではない。後々問題となりそうな部分を「早期に」発見することが出来る。
calloc で遅さが問題になった時には
・ロジックを根本から考え直す
・malloc に書き換える
という2つの選択肢がある。
基本的には前者の方法で対策を取るが、
納期対応等、非常時の場合は後者の選択をすること「も」できる。
malloc の場合にはそうはいかない。
0252250
NGNG0253デフォルトの名無しさん
NGNG> プロトタイプ宣言とか、#defineとかは、全部func.cで閉じ
そんなことしたらほかのソースで使えないと思う。
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGstaticな関数のプロトタイプ宣言は.cで。
0256デフォルトの名無しさん
NGNGもういい、しゃべるな。
0257250
NGNG0258デフォルトの名無しさん
NGNGメモリ確保に malloc() しか使わないなら、そもそもメモリ確保について何も
考えなくてよく、ロジックの再検討に集中できる。
検討事項が多く挙がれば挙がるほど、そのプログラムの品質は低いという事だ。
0259制御屋さん見習中
NGNGありがとう御座います。
こうですか?
header.hに
/* includeするファイル*/
#include <stdio.h>
/* 定義文*/
typedef SCALAR *vector, **matrix;
typedef float matNL[N][L];
#define N 10 /*10×10行列とする*/
/* プロトタイプ宣言*/
void error(char *message);
vector newvec(int n);
func.cに
#include " header.h"
を宣言して、関数色々記述。
と、いう感じですか?
0260デフォルトの名無しさん
NGNGどうして戻り値の型の話になるんだ?
239 の以下のコードは、matrix が宣言されていない限り規格では通らない。
> matrix a;
>>249
なってない。
騙されるな、247 にはこう書いてあるだろう。
> (宣言のない関数の戻り値の型のことでしょ?)
0261デフォルトの名無しさん
NGNG>> calloc で遅さが問題になった時には
*初期化*で速度が遅くなったとき、なんの*ロジック*を考え直すのでしょうか?
設計からやり直すようなのって、プロじゃないような
0262デフォルトの名無しさん
NGNGMATLABじゃないの?
0263260
NGNG0264262
NGNGhttp://www.sra.co.jp/people/miyata/algorithm/matutil.txt
0265デフォルトの名無しさん
NGNG>>248でそれが原因だったと言っているが。
0266デフォルトの名無しさん
NGNG>/* includeするファイル*/
>#include <stdio.h>
includeはプログラムごとにした方が良くないか?
あと、規模にもよるが、定義文とプロトタイプ宣言は分けた方がいいかも。
0267デフォルトの名無しさん
NGNG俺もヘッダーファイル内でincludeはあまり好きじゃないけど、関数の引数や戻り値にsize_t等を使う場合はしかたないんだよね。。。
0268デフォルトの名無しさん
NGNGpint p;
こう書いた場合、pをint型にしちゃう処理系があるの?エラーにしないで?
0269デフォルトの名無しさん
NGNGああ、意図していることがわかった。
スマソ
0270デフォルトの名無しさん
NGNG.hでincludeする場合と.cでincludeする場合ってどう切り分けるべきなんだろう?
普段は汎用クラスは.hでinclude、依存関係のあるクラスは.cでincludeしてるんだけど
そんな感じでいいのかな?何か哲学とかある?
0272デフォルトの名無しさん
NGNGヘッダでのインクルードは、最小限にする。
0273デフォルトの名無しさん
NGNGmalloc失敗したときなんかはどっちを呼んだらいいか判らなくて
悩んでいます。何をもって異常としていいんだろう。
もうひとつ
cygwinのgcc3.2.3だと
#include <stdlib.h>
main(){
abort();
}
はsegmentation fault(Core dumped)になります
不思議です。
マジレスきぼん
0274デフォルトの名無しさん
NGNG異常終了ならexit(1);でいいよ。
0275デフォルトの名無しさん
NGNGabort 関数は、ストリーム バッファのフラッシュや atexit 関数、
_onexit 関数の処理を行いません。
abort 関数のメッセージの行き先は、実行中のアプリケーションのタイプ
に応じて決まります。コンソール アプリケーションでは、必ず stderr に
メッセージが送られます。シングルスレッドまたはマルチスレッドの
Windows アプリケーションでは、abort は Windows の MessageBox API
を呼び出して、[OK] ボタン付きのメッセージ ボックスにメッセージを
表示します。ユーザーが [OK] をクリックすると、プログラムをただちに
打ち切ります。
0276デフォルトの名無しさん
NGNGSIGABRTじゃないの?
0277デフォルトの名無しさん
NGNGReading specs from /usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs
gcc version 2.95.3-5 (cygwin special)
結果
$ ./abort
Aborted (core dumped)
0278デフォルトの名無しさん
NGNG( ´∀`)< ふろぽ
0279デフォルトの名無しさん
NGNG0280273
NGNGさんくす
本見てもexit()は正常終了としか書いてなかったんでパニックになってた
目から鱗 アホでした俺
0281273
NGNG>>275
なるほどatexitは必ず実行されるわけじゃないんですね
>>276
うちでは何故かsegmentation faultです。たぶんこちらの環境
の何かがおかしいんだと思います不思議
gcc version 3.2 20020927 (prerelease)
hoge@none /cygdrive/d/myprog/myerr
$ ./a
Segmentation fault (core dumped)
0282デフォルトの名無しさん
NGNGvoid f2();
void f1() { f2(); }
void f2() {}
int main(int argc, char* argv[]) { return 0; }
上記コードを gcc3.2で
$gcc -gcoff foo.c
としてコンパイルしたら
Assembler messages:
Fatal error: C_EFCN symbol out of scope
というエラーが出てコンパイルできません。なにが問題なのでしょうか?
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNGガッ
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG7.20.4.1 The abort function
Synopsis
1 #include <stdlib.h>
void abort(void);
Description
2 The abort function causes abnormal program termination to occur, unless the signal
SIGABRT is being caught and the signal handler does not return. Whether open streams
with unwritten buffered data are flushed, open streams are closed, or temporary files are
removed is implementation-defined. An implementation-defined form of the status
unsuccessful termination is returned to the host environment by means of the function
call raise(SIGABRT).
Returns
3 The abort function does not return to its caller.
>>276
正解。
>>281
atexit() を呼ぶとは、規格には全く書いていない。
0287デフォルトの名無しさん
NGNGどこもおかしくない。gccがタコなだけだろ。
フリーのコンパイラなんか使うから時間を無駄に使うことになる。
0288デフォルトの名無しさん
NGNG漏れんとこの gcc-2.95.1 ではそんなエラーは出ない。
0290デフォルトの名無しさん
NGNGUsing COFF on cygwin target
I'm trying to debug my program built with GCC (Cygwin) using the Microsoft
Visual C++ debugger. This debugger claims to understand COFF, which GCC
should be able to generate using the -gcoff option.
The assembler, however, fails with the error described below.
/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-5/../../../../i686-pc-cygwin/bin/as.e
xe -v -o Debug\gdbserver\utils.o /cygdrive/c/TEMP/ccUN6YHU.s
GNU assembler version 2.11.90 (i686-pc-cygwin) using BFD version 2.11.90
/cygdrive/c/TEMP/ccUN6YHU.s: Assembler messages:
/cygdrive/c/TEMP/ccUN6YHU.s:1421: Fatal error: C_EFCN symbol out of scope
:
:
:
とのこと。なお、cygwinの2.95.3-5 でも同じ症状がでました。
0291デフォルトの名無しさん
NGNGこれは、gccによる問題ではない、けれどもアセンブラの問題ではないかと思う。
C_EFCNは、binutilsでしか用いられないエラーメッセージある。
その意味は「物理的な関数の終端」である。この理由は、エラーを受け取った場所
で、すでに関数名として定義されているのと同じ名前の、アセンブラのcommonな
変数についてのデバッグstuffを読み込んだことである。
これは、どの関数がここで終了しているのかを見つけさせるものであるが、
その場合すでに(同じ名前の別の)関数は終了しているのである。
であるから、アセンブラーはこれをエラーとして表示する。
私の予想では、これはcoff debug formatに対するreal gurus
の制限に関する返答の1つでは無いかと思う。
If you want my guesses here they are -
This is not a problem with gcc, but may possibly be a problem
in the assembler (unlikely though).
C_EFCN is an internal #define used by binutils that just happens
to show up in the error message. It means 'physical end of function'.
The reason you are getting the error is that the assembler is
reading the debug stuff for your common variable, but it thinks that
the name for that is already associated with a function.
So, it goes to find what function it is currently in to end it, but the function has already been ended. So, you
hit an error condition in the assembler.
My guess as to the response from one of the real gurus 'limitation of coff
debug format'.
http://groups.google.com/groups?q=C_EFCN&hl=en&lr=&ie=UTF-8&selm=6jf79l%248gv%241%40rosenews.rose.hp.com&rnum=6
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG激しく基地外
0294デフォルトの名無しさん
NGNGOS再インストロールしてみてね
それでダメなら、Memoryを交換してみてね
それでダメなら、HDを交換してみてね
それでだめなら、マザーボードとCPUも交換してみてね
0295292
NGNG0296( ´∀`)< ぬるぽ
NGNGストリームは結局
PCアーキテクチャのIOとか周辺機器を繋いでる「バス」そのもの
だと考えて宜しいのか?
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNGだめ。
0299デフォルトの名無しさん
NGNGunsigned int x = 1;
char *p = (char *)&x;
printf("%x %x %x %x\n", p[0], p[1], p[2], p[3]);
(2)
unsigned int x = 1;
char buf[256];
char *p = buf;
while (i < CHAR_BIT * sizeof (unsigned int)) {
*p++ = x << i++ & ~(~0U >> 1) ? '1' : '0';
if (i % CHAR_BIT == 0)
*p++ = ' ';
}
*--p = '\0';
printf("%s\n", p);
上の2種類の方法で x の値を表示させると、(1)は 1 0 0 0 、(2)は 00000000 00000000 00000000 00000001 と、
それぞれ別のバイトオーダーで表示されてしまいます。
どうしてこの様になってしまうのでしょうか?
コンパイラはgcc2.95.4です。
0300299
NGNG0301デフォルトの名無しさん
NGNGソース読む気ないけど、リトルエンディアンの関係でしょ。
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG実際には 301 の言う通りなんだけど、本当の原因は unsigned int 等の内部表現が
C では規定されていないから。
環境によって結果が多いに変わる可能性があるので、特定の内部表現に頼ったコード
はなるべく書かないのが望ましいね。
もちろん、特定環境でしか動かさないプログラムなら依存しまくってもいいけど、
将来に移殖の必要が出た時に苦心する事になるよ。
0304.. ◆rGsyzf.Kp2
NGNGポインタで宣言した変数"list"で
「&list」 っていうのはどういう意味なのでしょか?
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNGたとえば、
char *list;
って定義したときの&listか?
listはポインタ型の変数でlistにはアドレスを収めることができる。
そのアドレスを収めるアドレスが&listだ。
って、混乱しそうな説明だなあ。とにかく何か変数を定義したら、
どっかメモリーに収める領域が確保される。
その収める領域(アドレス)を得るために&演算子が用意されている。
0307.. ◆rGsyzf.Kp2
NGNGだからポインタのポインタに渡すときつかわれるのですね。。
こんな質問にこたえてくださって感謝
0308デフォルトの名無しさん
NGNGちょっと考えてみたんだが
Cはメモリ以外のIO装置の全てをファイルと認識し
ストリームを結合してそれらを操作する。
そのストリームとは物理的なバスのことではなく、
UNIXなどのOSが仮定する概念的なインターフェイスである
こんなんで合ってますか?
0309制御屋さん見習中
NGNG私も、質問です。
float **a;
とした場合、A[10][10]]などの配列を
どうやって示してあげれば良いのですか?
a=&A ×
a=&A[][10] ×
でした。
0310デフォルトの名無しさん
NGNGキャストでもしないかぎりは無理。
ポインタをfloat (*a)[10];と定義すべし。
0311制御屋さん見習中
NGNGたすかります。
キャストするにはどうすればよいです?
ポインタは、float **aですでに決まっています。
(mallocで、a[10][10]等、確保する予定)
それと、A[10][10]を参照させたいのです。
お願いします。
0312デフォルトの名無しさん
NGNGmallocで100 * sizeof(float)するとか2ループ使って地道に確保するとか。
0313デフォルトの名無しさん
NGNGまず float *[10] を確保する。
次にループを回してそれぞれに float [10] へのポインタを代入する。
float **a;
a = (float *[10])malloc(sizoof(float *[10]));
for (i = 0; i < 10; i++) {
a[i] = (float [10])malloc(sizeof(float [10]));
}
mallocの返り値がNULLかチェックを忘れずに。また freeはこれと
逆順で。
0314デフォルトの名無しさん
NGNGfloat A[10][10];
int main(void)
{
float **a;
int i;
if ((a = (float **)malloc(sizeof(float *[10]))) == NULL) exit(1);
for (i = 0; i < 10; i++)
a[i] = (float *)&A[i];
A[1][2] = 345.678;
A[3][4] = 567.891;
printf("%f %f\n", a[1][2], a[3][4]);
return 0;
}
0315デフォルトの名無しさん
NGNG>Cはメモリ以外のIO装置をファイル〜
それは「C」がではなく「UNIX(系OS)」がやってることで、、、
0316デフォルトの名無しさん
NGNG>>303
レスありがとうございます。
この場合、通常はリトルエンディアンだけれども、ある条件 (この場合はシフト
演算子のオペランドになった時でしょうか) の時にはビッグエンディアンに変換
してから操作を行っている、 ということでしょうか?
0317デフォルトの名無しさん
NGNG同じくfreeは省いた。
int main(void)
{
float **a;
int i, j;
if ((a = (float **)malloc(sizeof(float *[10]))) == NULL) exit(1);
for (i = 0; i < 10; i++)
if ((a[i] = (float *)malloc(sizeof(float [10]))) == NULL) exit(1);
a[1][2] = 345.678;
a[3][4] = 567.891;
printf("%f %f\n", a[1][2], a[3][4]);
return 0;
}
0318デフォルトの名無しさん
NGNG演算子の評価対象になった場合はビッグエンディアンもリトルエンディアン
もないだろ。宣言してある「型」であくまでアクセスされる。
これを一旦メモリに入れるとエンディアンが問題になる。
0319デフォルトの名無しさん
NGNGポインタへのポインタと、2次元配列は全く異なるものだよ。
float *ppf, af[10][10];
という定義があったとしようppfはまっとうな値が入ってるとして、
たとえばppf[2][1]とやったときと、af[2][1]とやったときにコンパイラが
どう評価するかというと
ppf→| ppf[0](floatを指すポインタ) |
| ppf[1](floatを指すポインタ) |
| ppf[2](floatを指すポインタ) |→| ppf[2][0] |
| ppf[2][1] | ← これ
af
| af[0][0] | af[0][1] | af[0][2] | af[0][3] |……| af[0][9] |
| af[1][0] | af[1][1] | af[1][2] | af[1][3] |……| af[1][9] |
| af[2][0] | af[2][1] | af[2][2] | af[2][3] |……| af[2][9] |
: ↑これ
:
| af[9][0] | af[9][1] | af[9][2] | af[9][3] |……| af[9][9] |
こうなるわけ。たまたま一次元の配列とポインタは似たような表記で
扱うことが可能だけど、それは1次元だけの話で、それ以上はケアしてくれない。
だってppfなんてコンパイラにとっては単にポインタをさすポインタでしかないわけで、
10*10の情報とかそんなのはどこにもないからね。
だから、mallocするとかして実体をさすように自分でケアしてやらなきゃいけない。
0320デフォルトの名無しさん
NGNG違う。
0321デフォルトの名無しさん
NGNGだから、整数型の内部表現は関係無い。
>> は小さくなる方に、<< は大きくなる方にシフトする。
0322デフォルトの名無しさん
NGNGそのへんがスッキリしないなら、
アセンブラやるといいよ。
少し齧る程度でいいからさ。
0323制御屋さん見習中
NGNGSPECIAL ThanX!
どうもありがとう御座います。
この辺は、私には難しいです。
よ〜く、読みなおして試してみます。
0324デフォルトの名無しさん
NGNGどうでもいいが、
float **ppf;
…念のため。
0326デフォルトの名無しさん
NGNGそこに対するポインタでデータを取り出してるんですが、
データの数が多くなってmallocした領域が足りなくなった場合に、
reallocで拡張するとメモリ上の位置が変わってしまって、
データに対するポインタがうまく動かなくなってしまいます。
こういう時ってどうすればよいのでしょうか?
どなたかご教授願います。
0327デフォルトの名無しさん
NGNGreallocが返すポインタを元に計算し直せ。
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNGint (*compare)(const dNode*,const dNode*)
=dNode default_compare);
エラー;' が、識別子 'default_compare' の前に必要ですとでるんですけど
エラーがでないようにしたいんです。
どうすればいいか教えてください。
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNGC++だった
0332デフォルトの名無しさん
NGNGよろしい おちるまえにぬるぽのちから とくとめにやきつけておけ
0333デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>332
0334273
NGNGCygwinフォルダ全部消して再インストールしたりしてみたけど
abort()はやっぱりsegmentation faultですた。
いろいろコンパイルしてみてわかったのですが意味不明のsegfaultは
abort()だけでもないみたいです。
もう、Windows98インストールしなおすしかないみたいです;;
なんでだろ…。
鬱だし脳
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNG便乗質問させていただきます。
303氏が、
>環境によって結果が多いに変わる可能性があるので、
と書いてましたが、この場合の「環境」とは何を指すのでしょうか?
OSやコンパイラに依存するのか、
はたまたマザーボードやメモリに依存するのかが分かりません。
ご教授お願いします。
0337デフォルトの名無しさん
NGNG0338336
NGNGレスありがとうございます。
0339デフォルトの名無しさん
NGNG途中で切り替えられるようなCPUもあったっけかな、SHとか<記憶曖昧
あと、ファイルフォーマットや通信パケットなどで
リトル/ビックエンディアンどちらかきめてるとか
0340デフォルトの名無しさん
NGNGPowerPCもエンディアンを変えられたはず。
0341デフォルトの名無しさん
NGNGttp://www.psytec.co.jp/tips/0503/
ttp://www.microsoft.com/japan/developer/library/vccore/_core_windows_sockets.3a_.byte_ordering.htm
0342デフォルトの名無しさん
NGNGだけど C の整数型の内部表現の話とは全く関係無い
0343デフォルトの名無しさん
NGNG途中で、て…
0344デフォルトの名無しさん
NGNGアセンブラでCPUの勉強をyれ
オレモダガナー
0345デフォルトの名無しさん
NGNGそこで、C言語を習得するのに役に立った参考書やサイトなどを教えてもらえませんでしょうか?
よろしくお願いします。
0346デフォルトの名無しさん
NGNGアメリカの大学でも採用されてるし
サイトはテキストで体系的な理解を得てから
断片的にリファレンスするのがいいと思われ
0347デフォルトの名無しさん
NGNG大学でCを勉強してきたと自称する奴のほとんどが現場で使えないと言う事実があるので、
講義を聞き流して課題をコピーするだけならやめたほうがいい。
自力で勉強する気があるなら、講義で疑問に思ったことはここで聞くといい。
いろんな考えがあることも含めていい勉強になる。
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG今の下位層のプロトコルは大抵ビッグエンディアンだし、基本的には、ね。
だが、ストリーム中のデータに関しては上位層の責任範囲だから関係なし。
0350デフォルトの名無しさん
NGNGすみません、モトローラ方式がビッグエンディアンでしたっけ?未だにごっちゃ。
0352デフォルトの名無しさん
NGNG頑張れ。大学のプログラム関係の授業は単位稼ぎと思え(る位になっとけ)。
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGエンコーディングの自動判別をしたんですが、何か良い方法はありますか?
0358デフォルトの名無しさん
NGNG| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| ヌノレポ |
|_________|
∧_∧ .||
( ´∀`)||
/ づΦ
0359デフォルトの名無しさん
NGNGjcode.plでぐぐれ。
0360デフォルトの名無しさん
NGNG移植せぇと言うのか・・・残酷だな。
0361デフォルトの名無しさん
NGNGハァ?
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNG書いたけど、コードスタイルの関係であんまり晒したくない。
0364デフォルトの名無しさん
NGNGまんまぱくれるかもしらんし(w
あ、ライセンスにはきぃつけえよ
0365デフォルトの名無しさん
NGNGGPLじゃないの?
0366デフォルトの名無しさん
NGNGちゃいます。nkf.cのコメント部分で利用条件についてかいてあるけど
** このソースのいかなる複写,改変,修正も許諾します。ただし、
** その際には、誰が貢献したを示すこの部分を残すこと。
** 再配布や雑誌の付録などの問い合わせも必要ありません。
** 営利利用も上記に反しない範囲で許可します。
** バイナリの配布の際にはversion messageを保存することを条件とします。
** このプログラムについては特に何の保証もしない、悪しからず。
これだけ。GPLじゃないです。
0367デフォルトの名無しさん
NGNGじゃあこぴっちゃおう。
0368デフォルトの名無しさん
NGNGフラッシュでバッファのデータを吐き出したとき
ファイルからの読み出しデータの場合はどんな処理がされるんですか?
0369デフォルトの名無しさん
NGNG質問の意味がわからん。
もし、入力用に開いたストリームに対して fflush() 使った場合を訊いているなら、
その動作は
未 定 義
なのでよろしく。
0370デフォルトの名無しさん
NGNGでも VC++ だと 「入力バッファをクリア」 になるけどナー。
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGほれ
int main()
{
}
0374371
NGNG0375デフォルトの名無しさん
NGNG自作する場合はfopenでa,b,...,aaaa,aaab,...見たいに繰り返して何文字かの
ファイル名でオープンしていき、成功(有る)なら表示して、失敗(無い)なら
飛ばすみたいなのを考えているのですが。system("dir")はただ表示されるだけ
みたいですし。
0376デフォルトの名無しさん
NGNG標準関数だけじゃ無理。
UNIXならopendir〜readdirで。 dirとか言っているからUNIXじゃないかも。。。
0377デフォルトの名無しさん
NGNGWin32ならFindFirstFileとかかね。
0378デフォルトの名無しさん
NGNG標準 C ではディレクトリという概念が定義されていません。
ディレクトリを走査したいならコンパイラ付属のリファレンス等を見て、環境依存の
方法を探してください。
あなたの言う、全種類の名前を網羅するよう方法は全くお奨めできません。
それによってテストされるファイル名の数はどりくらいになるか見当つきますか?
0379デフォルトの名無しさん
NGNGどりくらい
どりくらい
どりくらい
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNGそいつぁ良かった。
0382デフォルトの名無しさん
NGNG0383デフォルトの名無しさん
NGNGおまえ考えすぎ!
0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNGネタですか?
0386デフォルトの名無しさん
NGNG「そろそろ」って ? >>371 の件だったら、「はじめから」だろ。
0387デフォルトの名無しさん
NGNGhttp://www.thepetitionsite.com/takeaction/224622495
1.Sign This Petition!の所に名前(ローマ字)を入れボタンを押す。
2.フォームに必要事項(赤字で(required)と書かれた所)を記入し、ボタンを押す。
「E-MAIL ADDRESS」には適当なアドレスを、「STATE」には「(NON USA)」、「COUNTRY」は「Japan」を、「WHY I'M SIGNING THIS PETITION」には、戦争反対声明文を入れよう!(例:No More War!!)
3.下の「Add my Signature」ボタンを押せば、署名完了!
参考:http://xmas.site.ne.jp/topics/20010922/Petition.html
0388デフォルトの名無しさん
NGNG>>373
main() オーバーロードすんな。
0389デフォルトの名無しさん
NGNG( ゚д゚)…
0390デフォルトの名無しさん
NGNG0391357
NGNG内部エンコーディングを UCS-4 あたりにしようと考えているんですが、
いくつか捜してみましたがエンコーディングの認識の付いたものがないんです。
認識部分だけ nkf を参考にして自前で実装した方が良いでしょうか?
0392デフォルトの名無しさん
NGNG適当でイインジャネーノ?
どのみち100%の精度で認識なんて、絶対無理なんだし。
0393デフォルトの名無しさん
NGNG詳しく見てないけど、この辺は?
http://terry.jiubao.org/kanji/
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG多分スレ違い
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNGガッ
0398375
NGNGお答えありがとうございました。一応できました。
#include <stdio.h>
#include <windows.h>
int main(void)
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
hFind=FindFirstFile("D:\\MyCppFiles\\ファイル、ディレクトリ研究\\*.txt",&FindFileData);
if(hFind==INVALID_HANDLE_VALUE)
printf("見つかりませんでした");
else
{
do printf("%s\n",FindFileData.cFileName);
while(FindNextFile(hFind,&FindFileData));
FindClose(hFind);
}
return 0;
}
0399デフォルトの名無しさん
NGNGUCS-4はエンコーディングではない
0400デフォルトの名無しさん
NGNGUCS-400はgetではない
0401デフォルトの名無しさん
NGNG2行目以降をインデントしない書き方は邪道ですか?
if ( nHoge1== nHoge1 + nHoge2 + nHoge3 ||
nHoge3 == nHoge1 + nHoge2 + nHoge3 ) ←この行
return 0;
0402デフォルトの名無しさん
NGNGやね。
if (nHoge1== nHoge1 + nHoge2 + nHoge3 ||
nHoge3 == nHoge1 + nHoge2 + nHoge3)
return 0;
0403デフォルトの名無しさん
NGNGサイズのディレクトリを、プログラム中でやりとりしなければ
ならないのですが、皆さんならどう作成しますか?
データサイズをみながらマウントして、情報を読み書きして、
アンマウントして・・・とか正直にいくのが正解なんですかね、
イチから作るとなると激しく面倒な気がするんですが・・・
(´Д`;)
アドバイスや、先人たちの知恵(ライブラリ等)をご存知で
したら教えてください。ちなみにLinuxです。
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG0407オシエテちゃん
NGNGお願い!詳しい人教えてくださいな!
0408デフォルトの名無しさん
NGNGint A[5][3];の宣言の意味するところは
int型の3個の要素を持つ配列を保持する5個の配列ですか?
それとも
int型の5個の要素を持つ配列を保持する3個の配列ですか?
A[0]はどんなものを保持するんですかね?
0409デフォルトの名無しさん
NGNG&A[0][0]
0410デフォルトの名無しさん
NGNGそれって C 言語と関係あるの?
それって C 言語と関係あるの?
それって C 言語と関係あるの?
それって C 言語と関係あるの?
それって C 言語と関係あるの?
それって C 言語と関係あるの?
それって C 言語と関係あるの?
それって C 言語と関係あるの?
そ れ っ て C 言 語 と 関 係 あ る の ?
0411デフォルトの名無しさん
NGNGじゃあA[1]は
&A[1][0]でいいですか?
0412デフォルトの名無しさん
NGNG前者。A[0] は int[3]
0413デフォルトの名無しさん
NGNGイイ
0414412
NGNGint[3] の先頭要素を指すポインタになる
0415408
NGNGA[0]->□□□
A[1]->□□□
A[2]->□□□
A[3]->□□□
A[4]->□□□
みたいなかんじですね
0416デフォルトの名無しさん
NGNG型が int * と int ( *)[3]で違う
0417デフォルトの名無しさん
NGNG関数getsの引数は配列へのポインタしかとらないんですかね
例えば、宣言時に文字列リテラルで初期化した
charへのポインタを引数にして、入力ストリームから読み込んだデータで
初期化した文字列を上書きさせたりとかはできないんですか?
0418408
NGNGA[0]がint ( *)[3]でAがint *ですか?
0419デフォルトの名無しさん
NGNGgetsの引数はcharへのポインタだが。
それと、文字列リテラルは書き換えることは出来ない。
0420デフォルトの名無しさん
NGNG文字列リテラルを書き変えてはいけないでせう
>>418
逆ぽ
0421デフォルトの名無しさん
NGNGA[0]がint * じゃないとA[0][2]見たいに出来ないじゃん
0422418
NGNG今度こそかなりわかりました
int (*)[3]
っていうのが良く分かんなかったので
int (*)[3]はpointer to array[3] of int ですね
0423デフォルトの名無しさん
NGNG引数は確かにcharへのポインタなんですが
そのポインタが指す先のオブジェクトのメモリ領域が用意されてないと
メモリ破壊が起こるらしいっす
だから結局
引数には配列へのポインタしかとれないってことなんすかね?
0424デフォルトの名無しさん
NGNGかしこい!
0425デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void)
{
char ch;
printf("改行してください。\n");
gets(&ch);
return 0;
}
メモリ破壊が起こるかどうかは入力による。
0426デフォルトの名無しさん
NGNGcharへのポインタならなんでもいいんだけど、安全に動作させたかったら書き込める領域を指すポインタを渡す。
0427デフォルトの名無しさん
NGNG>>426
おお!
了解であります!
0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG(; ・∀・) | |
と ) | | スカッ
Y /ノ / /
/ ) / /Λ__Λ ?
_/し' // ( ´∀`)>>429
(_フ彡 ( )
0433デフォルトの名無しさん
NGNG>攻撃対象コンピューターを停止させたり任意の
>プログラムを実行するなど、事実上乗っ取ることが可能。
>欠陥の中でも最大深刻度の「緊急」と位置付けている
18日発表ったら昨日か。頼むよM$。
0434デフォルトの名無しさん
NGNG実装=コンパイル
と認識してしまっていいんでしょうか?
0435357
NGNG>>399
すみません、文字セットですよね。
みなさんはこういう対応はどうしてるんでしょう…。iconv や wchar.h じゃ
不十分だと思うんですが…。
// locale が絡んでくるから「多言語化」はできないですよね?
0436デフォルトの名無しさん
NGNG実装は原語implementでしょ?コンパイルとは違う。
0437デフォルトの名無しさん
NGNGstdlibでは駄目だが、iconvならエンコーディングを自分で指定すれば
問題はないのでは?
0438デフォルトの名無しさん
NGNGこれって使い方あってる?
0439デフォルトの名無しさん
NGNG0440438
NGNG'<' : signed と unsigned の数値を比較しようとしました。
といって弾かれるのです。
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNGあのコードまじで使ってるのか。
かっちょいいな
0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGi を unsigned に汁
0446デフォルトの名無しさん
NGNGリファレンスを調べ方がわからないと言うならばお手上げだ。
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGwマトリョーシカ辞書引きそうになった。
http://www.geocities.co.jp/HeartLand-Keyaki/2341/encyclopedia/matryosh.htm
ロシアのあれな
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNGいいんでしょうか?
0451デフォルトの名無しさん
NGNG標準入力ストリームからバッファに溜められたデータは
改行文字を読み込んでプログラムへ送られる時に
改行文字まで読み込むんですか
それとも改行文字はバッファに残すんでせうか?
0452デフォルトの名無しさん
NGNG間違ってるとは言わんけど、ホントに毎回 strlen() 呼ぶ必要があるか確認した方がいい。
0453デフォルトの名無しさん
NGNG}
のあとに
IIの数値を継続させたまま
for文を作るにはどうすればいいですか?
0454デフォルトの名無しさん
NGNGfor(;II<kekka;II++)とか
0455デフォルトの名無しさん
NGNG意味がわかりません。
スコープって知ってますか?
0456デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG俺も...。
ついでに、>>455 で唐突にスコープが出てくるのもよくわからん。
0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNGよく意味わかったね。すごいよ。
変数名は確かに変。意味があるならイイけど…
�Tがどっかにでてきてると思うと今日は寝れないなぁ〜
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNGfor(int II=0;II<kekka;II++){
というのが許されて、スコープはfor文内なわけで・・・
まぁここはC言語スレなわけだが。
ところで453はどこへ?w
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNGガッ
0466デフォルトの名無しさん
NGNGvoid*の++でコンパイリュエリャー
0467デフォルトの名無しさん
NGNGvoid *XI=0 ←ぬるぽだから。
0468デフォルトの名無しさん
NGNGCスレだからだと思われ(w
0469デフォルトの名無しさん
NGNG改行文字はバッファに残す。
0470デフォルトの名無しさん
NGNGmain(){
timesdo(5){
printf("あぼーん\n");
}
}
0471それやるなら、こうだろ
NGNGint __var; \
for (__var = __begin ; __var < __end ; __var++) { \
__statement; \
} \
} while(0)
int main(int argc, char** argv) {
foreach (i, 0, argc, printf("%s\n", argv[i]));
}
0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNGfunc((i++)*2);
こう書いた場合、funcには必ず6が渡されますよね? 未定義とか処理系依存ではないですよね?
0474デフォルトの名無しさん
NGNGfuncが関数であればいいんだが、
マクロで引数が2回以上評価されるかもしれない。
0475デフォルトの名無しさん
NGNG変数に対して副作用があるコードは、副作用完了点までにその変数が再び出現
しなければいい。
0476453
NGNGこれからやってみます。
変数名のIIはiもIもiiも別の処理に使ってしまったので、
IIを使うことになったのです。
0477デフォルトの名無しさん
NGNGうわぁ……
0478デフォルトの名無しさん
NGNG君にこそハンガリアンが必要だ。
0479デフォルトの名無しさん
NGNGファイルポインタはOSが割り当てたバッファ用のメモリ領域の先頭位置を指してて
ファイル位置指示子はそのメモリ領域で現在プログラムが読み込んでいる位置を指しているもの
という風に解釈してるんですが
>>469
残した改行文字は自動的にフラッシュされるんでしょうか?
0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNGあ、そうでしたか・・・
ちょっと頭冷やしてきます
0482デフォルトの名無しさん
NGNG質問の意味が全くわからない。
「フラッシュ」 という言葉が何を指しているのかは不明だけど、fflush() の事を言って
いるなら >>369。
で、「自動的に」 の意味が皆目見当つかない。
あと、読み込み専用に開かれているストリームの場合は、データは一方通行で巻き戻し
(fseek() や rewind() 等) が出来ず、従ってそもそもデータ位置を記録していない
場合もある。
0483デフォルトの名無しさん
NGNG了解しました。
自動的はプログラムで明示的にしなくてもで
フラッシュはfflush()のことをいいたかったです
表現が曖昧でもうしわけないです
0484デフォルトの名無しさん
NGNGnum;
*int_ptr = num;
ぬるぬるいんぽ。
0485デフォルトの名無しさん
NGNG> あと、読み込み専用に開かれているストリームの場合は、データは一方通行で巻き戻し
> (fseek() や rewind() 等) が出来ず、
(゚Д゚)ハァ?
0486デフォルトの名無しさん
NGNGそこで切らずに最後まで読んでくれよ。
0487デフォルトの名無しさん
NGNG> あと、読み込み専用に開かれているストリームの場合は、データは一方通行で巻き戻し
> (fseek() や rewind() 等) が出来ず、従ってそもそもデータ位置を記録していない
(゚Д゚)ハァ?
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNG説明するのが面倒だからだと思います。
0491デフォルトの名無しさん
NGNGvoid main(void) が動かない処理系があっても全然おかしくないわけだし。
初めから int main(void) と書いとけば間違いないのになと思うけど。
0492デフォルトの名無しさん
NGNGvoid main(void)
本の価値を決めてしまうほど
重要でもない気がする
0493デフォルトの名無しさん
NGNG説明するのが面倒とは?
0494デフォルトの名無しさん
NGNGvoid main(void)でのサンプルコードをUNIXで動作確認しただと??
(((( ;゚Д゚)))ガクガクブルブル
0495デフォルトの名無しさん
NGNG警告がでりゃintにしときゃいい。
本当にステータスを返す必然性があるのならintにすりゃいい。
そんな事よりもっと大事な事は一杯あっぺよ。
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG同意。
特に入門書で、いきなり規格外のやり方を教えるのはいかがかと・・
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG( ´∀`)< ぬるぽ
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>502
0505デフォルトの名無しさん
NGNG|Д`) ダレモイナイ・・ヌルポ スルナラ イマノウチ
|⊂
|
♪ Å
♪ / \ ヌルポ ヌルポ
ヽ(´Д`;)ノ ヌルポ
( へ) ヌルポ ヌルポ
く
♪ Å
♪ / \ ヌルポ ヌルポ
ヽ( ・∀・)ノ ヌルポ
(へ ) ヌルポ
>
0506デフォルトの名無しさん
NGNG( ・∀・) | | |
と ) 川 ボコビシバキドカグシャ
Y /ノ 人 ☆
/ ) ☆< >__Λ∩
_/し' //. V☆Д )/
(_フ彡 / ←>>505
0507デフォルトの名無しさん
NGNGいや、cやるならDOSつかえと、言われましたもので・・・
0508デフォルトの名無しさん
NGNGLinuxでも使え
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNGWindowsじゃだめなんですか?
0511デフォルトの名無しさん
NGNG駄目
0512デフォルトの名無しさん
NGNGやっぱLinuxだべ。
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNGLinux+gccでやれば問題なし
0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNGいいと思われ
0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNG逆。
CにWindowsは邪道
0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNGエエんちゃう?
そもそも Cygwin って「Windowsの糞 cmd.exe なんか使ってられないんだよもん」
という Unix 使いや、「Unix 使ってみたいけど、ちょっと敷居が…」って人向けのものでしょ。
0523デフォルトの名無しさん
NGNG来期からC++、Javaオンリーになりますた。
さようならC、ありがとうC君のことは永遠に忘れない。
0524デフォルトの名無しさん
NGNGボソおまえはCから逃れられない。
0525デフォルトの名無しさん
NGNGエラー出るの?
技術評論社のとあるC言語の本はLinuxのgccを前提にしてるって書いてある
んだけど、void main(void)なんだよね。Linuxでも警告も出ないのってあるの?
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG[user@host 22:29 user]$ cat test.c
#include <stdio.h>
void main(void) { }
[user@host 22:29 user]$ gcc test.c
test.c: 関数 `main' 内:
test.c:3: 警告: `main' の戻り値の型が `int' ではありません
[user@host 22:30 user]$ gcc --version
gcc (GCC) 3.2.2
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
0528525
NGNGサンクス。
なぜあの本はLinuxでvoid main(void)を使って平気だったんだろう・・・?
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG( ・∀・) | | 人 < >__Λ∩
と ) | | 人 < >__Λ∩Д´)/
Y /ノ .人 < >__Λ∩Д´)/ / ←>>532
/ ) .人 < >__Λ ∩Д´)/ / ←>>532
_/し' < >_Λ∩Д´)/ / ←>>532
(_フ彡 V`Д´)/ / ←>>532
/ ←>>532
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNGこう書いただけでも警告がでるんだが・・
0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNGmain(){
}
が多いけど
-Wall でやると
何かエラーでない?
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNG普通、makefile に CFLAGS=-Wall -ansi -pedantic って書くだろ...。
ここ最近 gcc なんか直接起動したことないぞ。
0543デフォルトの名無しさん
NGNGそうでなければ別に……
0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNGif ((a = b()) { }
if (a = b()) だと a == b() と間違える場合があるから、複数の式に分けるか
() で括って、明示的に示せという事らしい。
>>542
ちょっと遊びで書いたコードとかコンパイルする時に使うかな、俺は。
>>543
普通 makefile 内では alias きかん。
0546デフォルトの名無しさん
NGNGちょっとしたプログラムでも、
たとえば abc.c なら、
% make abc
を実行しているよ。そうすりゃ自動的に、
gcc abc.c -o abc
としてくれるからね。
a.out にしたくないから、いつでも make を使う。
0547デフォルトの名無しさん
NGNGvoid main(void)で書かれている書籍って割と多い気がする。
googleで検索しても間違いだって書いてあるページが割とある。
だからそう言う本は避けて買えばいいんじゃない?
void main(void)系で書かれてる本で良本なのってある?
0548デフォルトの名無しさん
NGNGモノの本質を見ろと。
0549デフォルトの名無しさん
NGNGそういう本って (特に入門本・初心者本) delete[] とすべきところで
delete と書いていたり、説明を曖昧にして危ういのが多い。(また C++
の話かと言われそうだ)。しっかりした本を選ぼうと思ったら、それも
ひとつの判断材料にはなると思う。
0550デフォルトの名無しさん
NGNGそもそも参考文献スレにいかずに何調子に乗ってんの?うざいんですが。
0551デフォルトの名無しさん
NGNGvoid main(void) で本出してしまった人ですか?
0552デフォルトの名無しさん
NGNG大丈夫、そう言う本出す奴に限って部下か学生にサンプルプログラム書かせて
同僚辺りに文章書かせて自分は口出すだけだから何が問題か判ってないから。
0553デフォルトの名無しさん
NGNG{
printf("おまえらそんなことで熱くなるなよ\n");
}
0554デフォルトの名無しさん
NGNGそんなちっせぇことにこだわんなよー
極初心者が↓これ見たらそんだけでムツカシソーって思うかも知らんからじゃねーのー
int main(int argc, char* argv[])
0555デフォルトの名無しさん
NGNGint main() でいいだろう(w パラメータ付けなくても。最初に int main()
を教えて、関数を学ぶときに main は誰が呼ぶかに言及すればいいんだよ。
0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNG>あと、読み込み専用に開かれているストリームの場合は、データは一方通行で巻き戻し
>(fseek() や rewind() 等) が出来ず、従ってそもそもデータ位置を記録していない場合もある
いろいろ考えてみたんですが、こういうことでしょうか?
ファイルのデータ量がバッファ領域の完全バッファ量を超えた場合
超えた部分は吐き出されて、次の部分のデータを新たにバッファ領域に読み込むから
その場合、ファイル位置指示子が示している位置はファイル全体からの相対的な位置ではなく、
バッファ領域に読み込まれた部分における先頭位置からの位置となるから
正確にファイルの位置を指しているわけではない
0559デフォルトの名無しさん
NGNG2:int* p;
2で書く奴キモい
0560デフォルトの名無しさん
NGNG漏いらはint * p;
0561デフォルトの名無しさん
NGNGint* *p;
これが最高にキモい
0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNG1 の方がキモイ。char ch[] とかもう見てらんない。
>>562
お前キモイ。いい加減どっかにまとめたら、なんてもう見てらんない。
0564デフォルトの名無しさん
NGNGint pointer pn;
0565制御屋さん見習中
NGNG関数の返り値で、
return OK;
または
return ERROR;
としたいです。
このとき、普通
OKは0で、ERRORは1にするのが
良いでしょうか?
それとも逆でしょうか?
(どちらも違う?)
0566デフォルトの名無しさん
NGNGERRORは-1で。ネタではありません。
0567デフォルトの名無しさん
NGNG悪いけどネタにしか見えない。
ゴメン
0568デフォルトの名無しさん
NGNG単に成功失敗なら
#define TRUE 1
#define FALSE 0
で成功したらTRUE失敗したらFALSEを返す。
エラーの種類がいろいろなら0が成功0以外が失敗。
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG0571制御屋さん見習中
NGNGOKは 0で
ERRORは -1
にしとけば、良いですか?
K&Rでは、OKは0で、ERRORは1
です。
0572デフォルトの名無しさん
NGNG数字をそのまま書けって。
エラーの種類がいろいろあるなら話は別だけど。
0573制御屋さん見習中
NGNGERROR は-1でした。
すみません!!
0574制御屋さん見習中
NGNG>>568さんのを
頭に入れつつ、
数字を書きます。
プログラムを提出(仕事ね)
するので、混乱しないよう、
数字にしときます。
0575デフォルトの名無しさん
NGNGプロかよっ!!
0576デフォルトの名無しさん
NGNG関数の説明のコメントは忘れずに。
0578デフォルトの名無しさん
NGNGおうむ返しは厳禁
0579デフォルトの名無しさん
NGNGでも使っと毛。
0580デフォルトの名無しさん
NGNGなんでTrue = 1にしないの?
0581制御屋さん見習中
NGNGすみません、おうむ返しとは
どういう行為ですか?
あまり、マナーを分かっていないもので。
0582デフォルトの名無しさん
NGNGhttp://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%A4%CC%A4%EB%A4%DD+%A4%AA%A4%A6%A4%E0%A4%AC%A4%A8%A4%B7&sw=2
0583デフォルトの名無しさん
NGNG数値直書きは現金。エラー複数返すときは#defineかenum使え。
0584デフォルトの名無しさん
NGNG#include <stdlib.h>
int main()
{
return EXIT_SUCCESS;
}
とかやる人?
0585デフォルトの名無しさん
NGNG0586デフォルトの名無しさん
NGNG>>583 じゃないが、俺やってるよ。
0587デフォルトの名無しさん
NGNGガッ
0588デフォルトの名無しさん
NGNGHRESULT main()
{
return S_OK;
}
ってやるな
0589デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>585
0590デフォルトの名無しさん
NGNGガーン・・・
0591デフォルトの名無しさん
NGNG#ifndef __cplusplus
typedef unsigned char bool;
#define true (1)
#define false (0)
#endif
0592デフォルトの名無しさん
NGNGC FAQ 日本語訳
をちゃんと読んでいるやつはどれくらいいるんだ?
ちゃんと読んでたら議論するようなことじゃないようなことじゃないことばかりでとまどうよ
0593デフォルトの名無しさん
NGNG読みますた
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNGいらなくなった時。
0597デフォルトの名無しさん
NGNG関係ない。>>482後半は意味不明だから無視するように。
0598デフォルトの名無しさん
NGNGstdinとかのことを言っているんだと思うけど。
0599デフォルトの名無しさん
NGNGメモリが独裁者によって支配されたとき。
0600デフォルトの名無しさん
NGNGroot?
0601デフォルトの名無しさん
NGNGsadom stdin
0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNG抽象化された標準入力からだと思います。
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNGそれはない。JavaはRubyでも作れるけどな。
0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG読み込み専用のストリームは*stdinだけ*か?
また、デバイスやパイプに対するstdoutは?
0609デフォルトの名無しさん
NGNG文盲?
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNG>>482か?
要するに「seekできない」という「デバイスに対する動作」を、stdinから読
み込み専用すべてに誤って過般化しているという問題なんだが。
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNGはてなはんかくん
0615ネニグレクト・ラーファ
NGNG最近HTMLがわかってきたでつ。
「世界の仕組み研究所」
ttp://www.geocities.jp/fieldabout/
0616デフォルトの名無しさん
NGNG0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG>>610のこと?>>611のこと?
0619デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>582
0621デフォルトの名無しさん
NGNGそういう技もあったのか…
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG( `Д´) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V・∀・)/
(_フ彡 / ←>>620
0624デフォルトの名無しさん
NGNG0626デフォルトの名無しさん
NGNG文字列
0627デフォルトの名無しさん
NGNG多倍長ライブラリを使う。
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
NGNGBYTE func(BYTE c); の;関数を何度も呼び出す場合
呼出し側でたとえば
while(1)
{
func(var) ;
}
このようにある時、
変数varがint型かBYTE型かでスピードが変わったりしますか?
0633デフォルトの名無しさん
NGNGすることもあるししないこともあります。
コンパイラの最適化やCPUアーキテクチャによって変わります。
一概にどう書けば速くなる、とは言えませんが、経験的には int で
積むのが素直で速いコードになる気がします。
でも最終的にはコンパイラの吐いたコード見て調べるしかないと思います。
0635デフォルトの名無しさん
NGNG>でも最終的にはコンパイラの吐いたコード見て調べるしかないと思います。
no.
コード見ただけで、キャッシュや、遅延分岐等の影響まで判断出来たら神。
実際に時間計るしかないってのが正解だと思われ。
もちろん言いたい事は解るし、他も概ね同意だけど。
0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNGイラク?
0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNG光のエフェクトはいうまでもなく建物のモデリング・シェーディングや
煙の物理計算も信じられないほどリアル。
0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNGCGの進歩というよりコンピュータの進歩
0643デフォルトの名無しさん
NGNG結果をint変数に引き取る場合、一般的に戻り値はintのほうがタイトなコードになる。
;int i = func();
call func
mov r1(as int i), r0(ret)
and r1, 0xff ;戻り値がBYTEの場合のみ必要
ただし、関数側でBYTEからintに拡張する場合は結果的に同コスト。
;in func
;return b;
mov r0(ret), r1(as BYTE b)
and r0, 0xff ;戻り値がintの場合のみ必要
return (to caller)
なお、一般的には関数から定数を戻す場合はintで戻すほうがいいが、
CPUによってはBYTE定数のほうがタイトなコードになる場合もある。
;in func
;return -1;
mov r0(ret), 0xffffffff
; mov r0(ret), 0xff ;イミディエイト値の幅の差で命令長が短くなる
return (to caller)
0644デフォルトの名無しさん
NGNGそんなことを言い出したら...
> 実際に時間計るしかないってのが正解だと思われ。
と言うのも怪しい。計る度に違うこともあるからね。
俺は、このスレ的には >>633 で正解だと思う。
0645デフォルトの名無しさん
NGNGパフォーマンスを損なう可能性があると言える。
漏れは、intより小さい整数型は構造体メンバか、ポインタが必要な場合にしか使わない。
0646デフォルトの名無しさん
NGNGめんどくさいんで勉強したくないんすが
できれば無視してじゃばに行きたんすが
0647デフォルトの名無しさん
NGNG先人たちのおかげで知らなくても生きてはいけそうです。
でも、かなり楽しそうな分野であることも間違いないです。
て言うか、アドレスとかビット演算とかって高級言語でも常識だから文法さえ覚えれば書けそうな予感。
0648デフォルトの名無しさん
NGNGバイナリのファイルを1バイトづつ読み込んで検証するプログラムを作ろうと思っています。
FILE *fp;
char buf = 0;
fp = fopen(file_location, "r")
while(fread(&buf, 1, 1, fp) != EOF) {
printf("%02X,",buf);
}
fclose(fp);
っていう感じでやろうと思ったんですが、これだとint型が僕の環境だと4バイトもあるので
bufの中身が4D000000みたいになってしまいます。(欲しいデータ4Dです)
でbufを1バイトのchar型にしたら少しうまく行ったのですが、
なんかおかしなやり方をしている気がします。
また、ファイルの終端の判断もおかしくて、一生終わりません。
終わり方はあとで考えるとして、1バイトのデータを読み込むためには
どのような方法がいいんでしょうか。
0649デフォルトの名無しさん
NGNGunsigned charってとこじゃないの?
0650デフォルトの名無しさん
NGNGfp = fopen(file_location, "rb")
とりあえずここはこうじゃないの?
0651デフォルトの名無しさん
NGNG関数マニュアル fread をよく読め。
戻り値は EOF じゃなくて成功した要素数。
0652デフォルトの名無しさん
NGNGこの2点、書籍でも確認できました。まず変更してみます。
必要に迫られて作ってるのですが、先が思いやられるです(^^;)。
0653デフォルトの名無しさん
NGNGそうですよね、やっぱり。第3引数が1だからきっと1以外で終了
なんだろうなあと思ったんですが、止まらなくなったので
いろいろ試してたです。がんばります。
0654デフォルトの名無しさん
NGNGこうしてみる。
fp = fopen(file_location, "rb");
// fp エラーチェックを入れる
while(fread(buf, 1, 1, fp) != 0)
1バイトずつ読むなら int c; while( (c = fgetc(fp)) != EOF ) で
いいと思うけども。
0655デフォルトの名無しさん
NGNGそうだね。1以外で終了ってことはつまり1で続行するから。
while(fread(buf,1,1,fp)==1) だね。
がんばって。
0656デフォルトの名無しさん
NGNGなるほど、fgetcでOKだったんですね。テキスト書類しか扱ったことが
なかったので、とりあえずfgetcとかchar型変数とか普通のやり方じゃ
だめなんだと思ってました。
とりあえず、unsigned charと終了条件の変更ですべてうまく行ったっぽいです。
"rb"に関しては変更しなくても何故かうまく行きましたが、とりあえず
ちゃんと変更しておきました。>>654さんのも今から試してみます。
ありがとうございましたー。
0657デフォルトの名無しさん
NGNG"rb"なんかにする必要があるのはへんなOSだけ。
0658デフォルトの名無しさん
NGNGそうですね、移植性も気にせずとてもいいお考えだと思います。
あなたの前途を祝して、乾杯。
0659デフォルトの名無しさん
NGNGバイナリはバイナリモードで開くと覚えておいて。
バイナリ指定をしないと、例えばバイナリで (0xD)CR (0xA)LF と
いうコードが出てきたとき、ライブラリが '\n' に変換する。
これはCでMicrosoftのテキストファイルを開くときに都合がいいけど
バイナリでこの処理されると困るから。
0660デフォルトの名無しさん
NGNGのですが、一つ下、一つ上のディレクトリの指定の仕方があるなら教えてください。
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNGC言語以前の問題ですがw
0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNG安いコーダーとしてなら使ってもらえるんではないでしょうか?
0667デフォルトの名無しさん
NGNGプログラムを組む人をプログラマーと言いますが何か?
0668デフォルトの名無しさん
NGNGすみません。教えてください。
C言語でAPIが呼ばれる毎に識別可能なメモリ領域を確保するには
どのようにしたらよいでしょうか。
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNG荒らすな
0672デフォルトの名無しさん
NGNG書き出すバイト数を決めておきたい場合(例えばsizeof(int))は、
int n=5;
fwrtie( &n, sizeof(int), 1, fp );
みたいに書くしかないんでしょうか。
0673デフォルトの名無しさん
NGNG何を期待しているのかわからない。っていうか引数の順番それでよかったっけ?
0674デフォルトの名無しさん
NGNG引数は正しい。
戻り値見てないとかは置いといて。
0675672
NGNGfprintfだとバイト数は指定できないからfwriteを使ったのだが。
それとも、fwriteの使い方間違ってる?
0676デフォルトの名無しさん
NGNG1: fwrite( &n, sizeof(int), 1, fp );
2: fwrite( &n, 1, sizeof(int), fp );
どっち使ってる?
戻り値チェックしないとして(w
処理系にもよると思うけど、関数内部で速度的な差とかあり?
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNGには突っ込まないのか?
0680デフォルトの名無しさん
NGNGsizeof struct×配列数を想定していると思われ、
処理速度等はディスクキャッシュとかに左右されるのでは?
あと、質問の例として出したコードに戻り値チェックしてないとか言うのは
揚げ足取り以外の何者でも無いですなw
0682デフォルトの名無しさん
NGNG関数内で size*n してるだけなので、
速度はまず変わらないと思われ。
0683デフォルトの名無しさん
NGNGファイルサイズ固定じゃなきゃいけないとか、
バイナリデータじゃなきゃいけないとか、
大きな値を格納するときに極力サイズを減らしたいとか、
簡単に見られちゃ困るとか、
そういった要請がないならテキストファイルにしとき。
つまり、fwrite(&n, sizeof(int), 1, fp);の代わりにfprintf(fp, "%d\n", n);な。
データが2次元的な構造なら
for (iy = 0; iy < height; iy++) {
for (ix = 0; ix < width; ix++) {
if (ix > 0) {
fprintf(fp, ", ");
}
fprintf(fp, "%d", data[iy][ix]);
}
fprintf(fp, "\n");
}
とでもすればcsvファイルとしてエディタでもExcelでも読み書きできてデバッグに便利だ。
0684660
NGNGHTML等と大体一緒なんですね。\\と2つ使うのを除いては。
・何も指定しないと今のフォルダ
・フォルダ名\\で今のフォルダにあるフォルダの中に入る
・..\\でそのフォルダの1つ上のフォルダに戻る
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNGCではエスケープして"dir\\file"とする必要がある。
ここで注意しないといけないのは、ShiftJisの2バイト目が'\\'と同じコードに
なる可能性があるのでディレクトリ区切りとファイル名の一部と区別がつけにくいこと。
某芝のMP3プレイヤのバグもこれが理由だった。
こんなOSいやだ。
0689デフォルトの名無しさん
NGNG>ShiftJisの2バイト目が'\\'と同じコードになる可能性があるので
べつに区切り文字がなんであろうと同じ問題が起きるだろ?
0690デフォルトの名無しさん
NGNGつーか OS の問題じゃねーだろ。
初期の DOS は忘れたけど、Windows になってからはそんな問題聴いたことがないよ。
問題があるのは、Shift-JIS に対応していないタコな処理系で日本語使おうとしているタコな >>688 だろ。
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNGあれ? 無いみたいだ 689のこと忘れてください・・・
0693デフォルトの名無しさん
NGNGディレクトリ記号をファイル名に使ってしまうOSなんて、DOS系以外知りませんが?
>>690
自前でフルパスを分解するような処理を書いたことないなら黙ってたら?
>>691
字は読める?
0694デフォルトの名無しさん
NGNG>>689のこと言ってたのか、すまん。
0696デフォルトの名無しさん
NGNGはぁ?
0697デフォルトの名無しさん
NGNGあきらかに君のレベルとは違う話してるので、気にしなくてよろしい。
0698デフォルトの名無しさん
NGNG> 自前でフルパスを分解するような処理を書いたことないなら黙ってたら?
普通 ライブラリか API 使うだろ。
自分で書いたとしてもたいしたことないけどね。
0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNGDOSやWindowsでも"dir/file"でアクセスできる。
0701デフォルトの名無しさん
NGNGバッファを設けるやつなんすか?
0702デフォルトの名無しさん
NGNG入力は'/'だけじゃなくて'\\'も受け付けないといけなかったりするもんで。
0703デフォルトの名無しさん
NGNGと、いうかプログラマが用意してやらないといけない。
その領域は少なくともクローズされるまでは確保されていなければならない。
0704デフォルトの名無しさん
NGNG入力として外部から与えられるならプログラム中に書くように '\\' と二つにする必要はない
(これはいいよね?)。
その他の場合も普通の API ならプログラマが特に気にしないといけない実装になってる方がおかしい。
もしそういうAPIの環境下なら適当なwrapperをかけてやるといい。
0705デフォルトの名無しさん
NGNG「標準ライブラリ関数の自作」ってどうやるんですか?
最初からC言語側で用意されてる関数を自作ってことですよね?
たとえば、printf()やscanf()等の自作はどうやるのでしょうか?
知ってるかた、教えてください。よろしくお願いします。
0706デフォルトの名無しさん
NGNGglibcというGNUライブラリで実装されているよ。
勉強になるから読んでみるといい。
(ニヤ
0707706
NGNG0708デフォルトの名無しさん
NGNGprintf/scanf 共に最小単位が一文字なんだから最後は(仮想的な)一文字入出力に行き着くのはわかるよね
そこまでは <stdarg.h> を使った可変長引数関数を作ることになる
そこから先の部分は(バッファリングの実装を含めて)環境依存になると思う
0709デフォルトの名無しさん
NGNGバッファに読み込んだ1行データはプログラムが読み出したときに
バッファから開放されるんですか?
それともデータはバッファに残ってて、バッファ内の読み出し位置を示すポインタが
次の読み出し位置をポイントするだけなんでしょうか?
0710デフォルトの名無しさん
NGNG普通後者
0711デフォルトの名無しさん
NGNG礼を言う
0712デフォルトの名無しさん
NGNG早く言ってよ。
0713デフォルトの名無しさん
NGNGI LUV U BABY
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG例題とかを公開してるページってないでしょうか?
知っていたら是非教えて下さい。
0716デフォルトの名無しさん
NGNGぐ ぐ れ
0717デフォルトの名無しさん
NGNG0718例題
NGNG0719難問
NGNG例えば↓で ? の部分に何を書いたら良いのか。
? hoge()
{
return hoge;
}
一応 void* でもコンパイルは通るが、↓のようなコードは通らない。
phoge = hoge;
for( cnt=0; cnt<10; ++cnt )
phoge = phoge();
0720デフォルトの名無しさん
NGNGphoge = phoge();
0721デフォルトの名無しさん
NGNG直接に定義することはできない。
汎用の関数ポインターを返す関数を 用意して、
ポインターを渡すたびに関数の型にあわせて慎重にキャス トを行う。
または関数が構造体を返すようにする。
その構造体は、そ の関数へのポインターだけをメンバーに持つようにする。
以上はC FAQの引用である
あと、void *に関数ポインタをいれてはいけない。
0722デフォルトの名無しさん
NGNGそれってエラー出ないの?
そういうコトが起きる可能性があるから
同名変数の2重定義とか気をつけるんじゃない?
0723デフォルトの名無しさん
NGNG何か勘違いしてませんか
0724デフォルトの名無しさん
NGNG無理矢理キャストすればなんとでもなりそうだけど。
ちなみにgccだけど、void * で
phoge = phoge();
は動いたよ。
0725デフォルトの名無しさん
NGNG関数ポインタをvoid *に変換することは移植性が高くない。(マシンによっては関数ポインタは非常に大きい。どのデータポインタよりも大きい)
しかしながら、すべての関数ポうん他派、呼び出す前に適切な型に戻す限り、互いに変換可能が保証されている。
だからどのようなものでよいからなんらかの関数型(普通はint (*)()かvoid (*)())を汎用の関数ポインタとして使えばよい。
オブジェクトへのポインタと関数へのポインタをかわるがわる保存する場所が必要なら、
移植性の高い解決策はvoid *と汎用の関数ポインタからなる教養態を使うことである。
これ嫁
0726デフォルトの名無しさん
NGNGこれの引用元は何?
0727デフォルトの名無しさん
NGNG失礼、これの引用もとは C FAQ
ただしオンラインのFAQでは欠番だった。
本で出ているほうが欠番も少ないし、一つ一つ細かく、ちゃんとコード例も多い
0728デフォルトの名無しさん
NGNGありがとう
0729728
NGNG0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNG| | ガガガガガッ .人
( ・∀・) | | 人 < >__Λ∩
と ) | | 人 < >__Λ∩Д´)/
Y /ノ .人 < >__Λ∩Д´)/ / ←>>730
/ ) .人 < >__Λ ∩Д´)/ / ←>>729
_/し' < >_Λ∩Д´)/ / ←>>730
(_フ彡 V`Д´)/ / ←>>730
/ ←>>730
0732デフォルトの名無しさん
NGNG本当にそう思うか?
ディスクフルがもうすぐ起こる状態で第 2 引数と第 3 引数を入れ替えて実験
した事は無いか?
0733デフォルトの名無しさん
NGNGどっちにしろ動きはOS依存。
0734デフォルトの名無しさん
NGNG1 の方が早い実装があると思うがどうよ
(いやもちろん作為的に逆には出来るけど)
覚えてたら後で実験してみる
0735デフォルトの名無しさん
NGNGfwrite( buffer, buffer_size, fp);
で別にいいじゃないのか?
0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNGだとするなら、fwrite関数はそれを意味するように呼ぶべきだよね
実行効率を気にするよりも
0738デフォルトの名無しさん
NGNGI/Oが単純なバイトストリームじゃない環境だと、動作が異なるという話を聞
いたことがあるような気がする。
そんなのもちろん使ったことないし、よく覚えてないが。
0739デフォルトの名無しさん
NGNGしてみたけど一緒だった。
考えてみりゃ早くなるなら早くなるように作るのが当然だわな
0740デフォルトの名無しさん
NGNGを文字列で取り出したいです。
可能なんでしょうか?
可能だとしたら、どのように指定すれば良いか教えて下さい。
宜しくおながいします。
0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNG即レス誠にありがとうです。解決です。
0743デフォルトの名無しさん
NGNG配列にする必要があるのでしょうか?ご教授お願いします。
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNGやってみます。
0746デフォルトの名無しさん
NGNGC言語ってなんですか?
0747デフォルトの名無しさん
NGNGしね
http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&q=C%8C%BE%8C%EA%82%C6%82%CD&lr=
0748デフォルトの名無しさん
NGNG(i++);
((s)=((a)+(d[((org((i)))+(i))])));
0749デフォルトの名無しさん
NGNG(i++);
((s)=((a)+(d[((org((i)))+(i))])));
0750デフォルトの名無しさん
NGNGi++ という式に括弧を付ける。
(i++);
(i++) というのは式なので、これに括弧を付ける。
((i++));
((i++)) とい(略。
春だからってイイ気分なのは構わんが、黙って ROM ってろ、ボケ。
0751デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNG0753デフォルトの名無しさん
NGNGそういう奴はLispでプログラム書いてろ
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNGLisp を貶めてるだけの馬鹿だと思われるので、Lisp 界に引きずりこまないでください。
0756デフォルトの名無しさん
NGNG0757制御屋さん見習中
NGNG(質)
組み込み系にCでプログラミングする際の
問題点等参考になるページありませんか?
特にタスク間のリエントラントについてなのですが。
お願いします。
0758デフォルトの名無しさん
NGNGリエントラントならまず大域的なりソースにアクセスしない。する場合は
1)排他処理をきちんとする
2)該当リソースを管理するタスクを用いてタスク間通信でやりとりする
といった方法を採択する、位か。
>>756
100ペリカげと(w
0759制御屋さん見習中
NGNGありがとう!
大域的なリソースとは何ですか?
externな変数?ですか?
0760756
NGNG> 100ペリカげと(w
外しちまったや(笑)。
>>759
> 大域的なリソースとは何ですか?
たしかにやってしまいがちな例は extern 変数だが、そうとは限らない。
例えば、君は制御屋さんみたいだからデバイスへのアクセスも行うことが
あると思うが、これも大域的なリソースだ。
というか、まずはググれ。ここで説明するよりも膨大な量の資料が
見付かるはずだよ。
0761デフォルトの名無しさん
NGNGそれはまぁ基本。排他もよく考えて使わないとロックする場合がある。
「見習い」ということでOJTみたいなことやってるなら多分スタックだけで
済むサブルーチンではないかと思うけど。
0762制御屋さん見習中
NGNG助かります。
確かに、761のいうとうりなのです。
が、それじゃあ面白くないので、
OJTと並行して(マルチタスク(笑))
知識も持ちたいんですよ。
実はリエントラントも知らなかった
超初心者。見習より丁稚ですね。
組み込み Cでググって色々出てきました。
0763デフォルトの名無しさん
NGNGOSの基礎本を買って読むとよろし。排他の必要性とかデッドロックの種類分けとか
ちゃんと載ってるから、それを踏まえておけば後は作るだけだ。
0764制御屋さん見習中
NGNGOSですね。
参考文献ありましたら、教えて欲しいです。
先日 CQ出版 リアルタイム/マルチタスクシステムの
徹底研究
という本を買ったのですが、かなり難しかったです。
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG0767スレ違いなので誰かいいスレ示してあげて
NGNGそれはきっと具体的なコードとか示してるんじゃない?
もっと概念的なのでいいと思うんだけど。
> ttp://www.yfcbookshelf.com/operatingsystem's%20books1.htm
うわ、8800円かよ…まぁ会社で買ってもらえ(w
でも自分で買った方が身につくとは思うけど
0768スレ違いなので誰かいいスレ示してあげて
NGNG1)指を折る
2)
unsigned l;
const char *p;
for (l = 0, p = "abc"; *p++; l++)
;
printf ("%u\n", l);
0769デフォルトの名無しさん
NGNGサンクスです。
0770デフォルトの名無しさん
NGNG0771スレ違いなので誰かいいスレ示してあげて
NGNG0772デフォルトの名無しさん
NGNGここはこう言うベキデス。
>>770
(・∀・)カエレ!!
0773デフォルトの名無しさん
NGNG$ cat t.c
int main()
{
printf("%d\n", sizeof("hello world."));
}
$ gcc t.c
$ ./a.out
13
0774デフォルトの名無しさん
NGNGみなさんの意見を聞くと邦訳版より原著版の方がいいと聞きます。
英検2級あれば原著版読めるでしょうか?
中学生で英検2級?
オミソレ。
0776デフォルトの名無しさん
NGNGと釣られてみるテスト
0777774
NGNG辞書で引ける範囲の単語だけだったら買うのですが・・。
0778デフォルトの名無しさん
NGNGほんとに13だったけど微妙だなあ
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNGとかよく使うけどな。
0781デフォルトの名無しさん
NGNG利点がわかりません
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNGchar buf[sizeof(KEY_WORD)];
とか?
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNGchar buf[] = "255.255.255.255";
じゃいかんのか?
0786デフォルトの名無しさん
NGNGそれはランタイム時に初期化コードを通る
0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNGそれするくらいなら、
#define MAX_IP_LEN 15
とかの方がマシだろ。意味分かんなくなるよ。
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNGはぁ?
buf[sizeof("255.255.255.255")] って書いてあるのと、
buf[MAX_IP_LEN] って書いてあるのとどっちが可読性がいいよ。
マクロの方にはコメントでも入れときゃいいじゃん。
0791デフォルトの名無しさん
NGNG15 だったら buf[MAX_IP_LEN + 1] じゃね?
でも sizeof 使うのはいくらなんでもキモすぎ。
0792デフォルトの名無しさん
NGNGに何故考えが及ばん…
0793デフォルトの名無しさん
NGNGというか、sizeof 使った方法なんて思い付かない。
0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNG1047275669.c: thread 内の `int main(int, char**)':
1047275669.c:>>794: 嘘(・A・)イクナイ
$
0796デフォルトの名無しさん
NGNG0797デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>776
0798デフォルトの名無しさん
NGNGそんな馬鹿な。まさか BCC5.5は・・・
エラー E2188 test.cpp 7: >>794 嘘(・A・)イクナイ (関数 main() )
*** 1 errors in Compile ***
** error 1 ** deleting test.obj
ほんまやぁ・・・
0799デフォルトの名無しさん
NGNG#include <stdio.h>
main(int argc, char **p){
printf("%s\n",*p = NULL);
/*
∧_∧
( ´∀`)< ぬるぽ
*/
}
% gcc null.c
a.c: In function `main':
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 /
% ./a.out
(null)
%
0800デフォルトの名無しさん
NGNG./a.out
8cm
0801デフォルトの名無しさん
NGNGa.exe
42.195km
0802デフォルトの名無しさん
NGNG./a.out
Segmentation Fault(core dumped)
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNG端末依存です。
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG|∀・) ダレモイナイ‥
|⊂ ナグルナラ イマノウチ
|
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>807
0810デフォルトの名無しさん
NGNG端末というか、端末の使用するフォントに禿しく依存。
0811デフォルトの名無しさん
NGNGだからDOSなどのテキストモードを使うやつなら全部同じにでるはず。
0812デフォルトの名無しさん
NGNGDOS/Vになった時点で・・・
0813デフォルトの名無しさん
NGNGDOSの頃から自前のソフトウェアフォントを使うアプリケーションはあったわけだが
0814デフォルトの名無しさん
NGNGだから、「テキストモード」に限定してあるのさ。
今時、そんなの使うOSなんてないかもね。
0815デフォルトの名無しさん
NGNG明日までになんとかできるでしょうか?
0816デフォルトの名無しさん
NGNGどんな事がしたいのか、ちゃんと書きましょう。
0817デフォルトの名無しさん
NGNG2バイト文字の中からあなたの好きな255文字を選んでください。話はそれからです。
0818デフォルトの名無しさん
NGNG2^n(k) 符号を使ってください。
基本は >>817 で、それをもっと高度にしたものです。
詳細は、電子情報通信学会の論文誌を読んでください。
0819デフォルトの名無しさん
NGNGお客様のお掛けになった電話番号は現在使われておりません。
ぽ ーという発信音がす る までしばらくお待ちください。
0821デフォルトの名無しさん
NGNGバイナリファイルを扱うコードを書いているです。
以前ここで教わって、読み込む変数はunsigned char型にしましたです。
理由は1バイトづつ配列に入れたかったからであります。
普通文字列を扱うときは配列の最終要素を\0にするようなので、今回は文字ではないものの
処理の都合上、最後に\0を付けようと思ったのですが、バイナリデータを配列に飛び飛びで
格納すると間に\0が入ってしまうことがあって、うまくありませんでしたです。
例えば、00000006という、ひとかたまりのデータがあって、これを
unsigned char buf[5]に入れる場合、buf[0]が\0になってしまうので終端と区別が
つきません。上記の場合は4要素と分かっていますが、読み込んでみないとデータのサイズが
分からない場合が多々あるので困っています。そこで終端に印をつけるのはあきらめて、
先頭にデータサイズを記述しておけばいいのではないかと思いました。
という訳で解決です。..って、あれ?そうじゃなくて、何だかこの方法はとても
スマートでないような気がしてならないので、ご意見を聞かせていただければと
思う出ス。長文すみません。
ときに、NULLと\0の違いがわかりません。どう実験しても同じように振舞います。
0822デフォルトの名無しさん
NGNG一定バイト数ごと処理するか、読み込んだバイト数を覚えておいてその分処理すればよいです。
0823デフォルトの名無しさん
NGNGなるほどです。ということは前述の方法で処理するほかないということですね。
どうもありがとうございます。
あと、もう一つお聞きしたいことがあるのです。
配列をcallocで必要サイズきっちりに用意すれば、おそらくsizeofでサイズが
わかると思うのですが、関数の引数で先頭のポインタだけを受け取って、
関数内でサイズを得る方法はありますか。
0824デフォルトの名無しさん
NGNGalloc系で確保したメモリのサイズを知る手段はない。
自分で管理するしかない。
それが面倒ならC++でvectorでも使えば楽ができる。
でもそのくらいのcプログラムは書けるようになっておいたほうがいい。
がんがれ。
0825デフォルトの名無しさん
NGNGでは、やはり前述の方法でがんがりがす出す。
本当にどうもありがとうございます。
0826デフォルトの名無しさん
NGNG> ときに、NULLと\0の違いがわかりません。どう実験しても同じように振舞います。
>>823
> 配列をcallocで必要サイズきっちりに用意すれば、おそらくsizeofでサイズが
> わかると思うのですが、関数の引数で先頭のポインタだけを受け取って、
> 関数内でサイズを得る方法はありますか。
C FAQ を読めば,目が覚めるでしょう.
0827デフォルトの名無しさん
NGNGファイル入力関数を呼び出した時なのか、ファイルをオープンした時なのか
教えて下さい
0828デフォルトの名無しさん
NGNGキャッシュ?
C言語の話かそれ?
0829デフォルトの名無しさん
NGNGfopenなんかの話?
いままで見た事ある実装は読んできた時バッファに貯めてる。
と言うか、そんな事気にするプログラムは書いちゃいけません。
0830デフォルトの名無しさん
NGNGありがとう
てことはfopen()を呼び出した段階では
バッファは空ということで良いんでしょうか?
0831デフォルトの名無しさん
NGNGその情報は一体何の役に立つのだろう・・・
0832デフォルトの名無しさん
NGNG先ほどの動的な割り当てメモリのサイズ取得は不可能と伺って青ざめてしまいました。
というのも下記のようなデータ構造を考えていたからです。
struct event {
byte *delta; // デルタタイム、後で動的に割り当てる
byte statas[2]; //ステータスバイト
byte *datas; // データ、後で動的に割り当てる
};
static struct chunk {
byte type[5]; // チャンクタイプ
byte length[5]; // データ長
struct event *events;//イベント、後で動的に割り当てる
} chunks[17];
これは実は音楽のMIDIデータの構造なんですが、chunk.eventsをcallocで割り当てるには
struct eventのサイズが必要なんですが、eventのメンバにはさらに動的なメモリ割り当て
を必要とするものがあるので、sizeofでサイズが取得できなければ、
そもそもchunk.eventsにメモリを割り当てることができなくなってしまいます。
このようなデータは構造体を使わずにもっとプリミテチブな操作をするしかないですか?
0833デフォルトの名無しさん
NGNGtypedef unsigned char byte;
でした。
0834デフォルトの名無しさん
NGNG必要ないだろ?
もうちょっとポインタについて勉強しろ。
0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNGreallocというのはナイスアイデアですね!!これを使う方向でも考えてみます。
0837デフォルトの名無しさん
NGNG一括して解放する方法を教えてたもれ。
0838デフォルトの名無しさん
NGNGミリ。freeするのが面倒だったらガベコレ使え。
http://www.hpl.hp.com/personal/Hans_Boehm/gc/
0839デフォルトの名無しさん
NGNGexit()
0840デフォルトの名無しさん
NGNGパソコンの電源を切れ
0841デフォルトの名無しさん
NGNGp1=malloc(1*sizeof(int));
if (p1==NULL)
goto hellzone0;
p2=malloc(1*sizeof(int));
if (p2==NULL)
goto hellzone1;
hellzone1:
free (p1);
hellzone0:
この調子でhellzoneが5個になったわけだが
setjmpとか使うのかのう?
0842デフォルトの名無しさん
NGNGif ((p1=malloc(1*sizeof(int))) == NULL) goto hellzone;
if ((p2=malloc(1*sizeof(int))) == NULL) goto hellzone;
……
hellzone:
free(p1); free(p2); free(p3); free(p4); free(p5);
0843デフォルトの名無しさん
NGNG今までfreeはぬるぽダメかと勘違いしてました
でも本見たら思いっきり何も起こらないだけだと
書いてありました
ppp=malloc(1*sizeof(int**));
*ppp=malloc(1*sizeof(int *));
**ppp=malloc(1*sizeof(int));
あとこういうのはどうしてますか?
0844デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←843
C FAQかなにかに規格に準拠していない古い処理系のためにぬるぽを渡すなと書かれていたけど、
そんなものまで面倒見切れないよね。
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG>>840
0848デフォルトの名無しさん
NGNG>>842 とやり方は何も変わらないが。
0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG0851仕様書無しさん
NGNGhttp://pumpkinnet.to/ranking/words/
0852851
NGNGでも投票してください。
0853デフォルトの名無しさん
NGNGそのファイルにrewind()を適用した場合の動作を教えて下さい
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNGワロタw 投票してやったよ。でも一位の1%にも満たねーじゃねーかヽ(`Д´)ノ
>>953
つーか man rewind。
0856デフォルトの名無しさん
NGNG'man' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
0857デフォルトの名無しさん
NGNGつーかM$ならMSDN嫁よ。
0858デフォルトの名無しさん
NGNG1 位には追いつかなくても、トップ 10 にはねじ込むべし!!
0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNG>2ch語、エッチ系、掲示板やサイトのローカルネタ、一般人に対する物、誹謗中傷等はお受けいたしません。
って書いてある割に2ch系ばっか。
0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNGM$以外はlinuxしか知らんのなら黙ってろ
0864デフォルトの名無しさん
NGNGだからなんだよボケ。
CYGWINとでもいいたいのか?
煽りたいだけならおまえが黙ってろ。
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNG0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNGぬるぽに投票してください。
http://pumpkinnet.to/ranking/words/
0869デフォルトの名無しさん
NGNG> Date: 03/03/26 11:54
>
> manはlinuxだよ。
0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNGfor(i=1;(int)i<10;i=i+0.1) printf("%f",i);
(iはdouble型)
↑のループが10.0まで表示されてから終わるのですが、
どうして9.9で終わらないのでしょうか?
また、iをfloat型で宣言すると数値が狂うのですが
これは変数の精度によるものなのでしょうか?
一応、コンパイラはBCC5.5です。
0872sage
NGNG0873デフォルトの名無しさん
NGNG私が857本人ですが、
linuxでもunixでも同じじゃん(このレベルでは)
system5もBSDも、red hotもslackwareも、manコマンドはあるだろうよ。
0874デフォルトの名無しさん
NGNG処理系を限定していないこのスレで、よくそんな言い訳が堂々とできるな。
0875デフォルトの名無しさん
NGNG2 進数での浮動小数点数は、0.1 ぴったりを表現できない。
その為わずかに誤差が出るので、そのような問題が発生する。
浮動小数点数の誤差について調べる事。
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNGそれは>>855に言ってくれw
フォローのつもりだったんだが・・・
とにかく調べリゃ一瞬でわかることを書くな、と。
それだけだよ。
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNGって今度は俺が釣られたよ。もうぬるぽ
0880デフォルトの名無しさん
NGNGぐぐって調べてみました。
「丸め」については二進数の感覚にまだ慣れてないせいで
わかりづらいところもありましたが、
9.9までで終わらない理由については納得できました。
ありがとうございました!
0881デフォルトの名無しさん
NGNGこんな過疎地で釣りかよ…。
0882デフォルトの名無しさん
NGNG-1^(0) * 1+(0.5033165) * 2^(123-127)
#include <stdio.h>
main(){
float f=0.1;
int sisuubu;
int kasuubu;
int fugou;
int *i;
void *p;
p=&f;
i=p;
fugou =( *i>>31) & 1;
printf ("fugou = %d\n",fugou);
sisuubu = (*i>>23) & 0xFF;
printf ("sisuubu = %d\n",sisuubu);
kasuubu = (*i)& ((1<<23)-1) ;
printf ("kasuubu = %d\n",kasuubu);
printf ("-1^(%d) * 1+(0.%d) * 2^(%d-127) =%f "
,fugou, kasuubu,sisuubu,f);
}
0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNGi=(int *)&f;
これで良かったのか
0886デフォルトの名無しさん
NGNG鬱だし脳
0887デフォルトの名無しさん
NGNG「お兄ちゃん、ボク妊娠しちゃううううぅっ!」
に投票してしまいました。
こんな僕をぬるぽしてください。
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNGバックスペースを「\b」に置き換えて、入力を出力に複写するプログラム
を書きたいのですけど、
#include <stdio.h>
main()
{
int c;
while((c = getchar()) != EOF){
if (c == '\b')
printf("\\b");
else
putchar(c);
}
}
と、したのですけど、うまくいきません。
タブを「\t」に置き換えて入力を出力に複写するのはできました
どうすればいいのでしょう?
0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNGキーボードからじゃなくてファイルから読んでみるとか。
0892デフォルトの名無しさん
NGNGかならずキーボードからの入力となります。
これから言語を学ぶ上で特に必要のない事なら、わからないままでいいかな。
とも思うのですが、やるせない感が強くて・・・
コンパイラの問題とかもあるのでしょうかね?ちなみにWinXPで、VC++です
0893デフォルトの名無しさん
NGNG別に勉強しなくても(コマンドプロンプトなら)プログラム実行するときに<を使ってリダイレクトすればファイルから読めるけど。
0894889
NGNG指導してくれた皆様、どうもありがとうございました。
0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNGさすがにそこまで馬鹿じゃねーだろ(藁
>>891みたいなのがこのスレに常時してると思うとあんま笑えねーけどな
0897891
NGNG0898デフォルトの名無しさん
NGNGいや、どっちかと言うと質問者のやりたいことの方が問題あるから。
0899デフォルトの名無しさん
NGNGをパイプでつなげ。なんかアホみたいだが。
0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNGダウト。
0.1は
>-1^(0) * 1+(0.5033165) * 2^(123-127)
ではなく
-1^(0) * (1+(5033165) / 2~23) * 2^(123-127)
にならないといけない。
ちなみに、(5033165) / 2^23 ≒0.6なわけだな。
この時点で、0.6 * 2^23 = 5033164.8なので0.2の誤差がある。
これを10進の桁数に換算すると高々8桁弱しか精度がないことがわかる。
0902デフォルトの名無しさん
NGNG2進数で仮数部の一番最初の桁の重みが2^-1で
最後のけたが2^-23だから
確かにその通りです
カッコの位置も完全におかしいし、
おかげで浮動小数点数がちょっとだけわかりました。
0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG・1の時処理1を行う
・2の時処理1と処理2を行う
・3以上の時処理1と処理2と処理3を行う
ということがやりたくて、以下のようにコードを書いたのですが明らかにスマートじゃない
ですよね・・・。ぜひ、模範解答をお願いします。
switch(X){
more:
処理3
2:
処理2
1:
処理1
break;
default:
goto more;
}
0905デフォルトの名無しさん
NGNGif (x >= 1)
処理1;
if (x >= 2)
処理2;
if (x >= 3)
処理3;
じゃダメなのか?
0906デフォルトの名無しさん
NGNGif (X>2){
処理3
}
if (X>1){
処理2
}
if (X>0){
処理1
}
でダメかな?
自然数だからいいんだけどdefaultのとこ
Xがintだったら負の数とか0の場合も突入しそうだしなんか変な感じ
0907904
NGNGこの場合Xは呼び出しコストが高い関数の戻り値として返されます。
素直に一時変数に落として>>905-906のやり方でやればいいんですが、このためだけに
変数宣言すると、あとで処理を追いづらくなりそうで。というか、変数名を考えたり
するのが面倒というのが正直なところか。(まぁ、こんな風に処理するほうが
追いづらいって話もありますが ^^;)
制御構文一個だとこれが限界ですかね?
0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNGdefault:
処理3
2:
処理2
1:
処理1
}
でいいじゃん。
0910デフォルトの名無しさん
NGNG00 d2 00 0b c0 e0 00 31 00 00 99 01 01 00 13 c0
e0 01 00 00 00 20 00 00 00 14 00 00 00 01 00 01
00 07 c0 e0 03 01 00 00 0a c1 01 01 00 01 20 01
01 00 08 01 03 00 01 85 00 00 08 01 03 00 01 85
最初の2バイトが全体のデータ長を表します(この場合210バイト)
次の2バイト(00 0b)が11バイトの一塊のデータ。つまり
00 0b c0 e0 00 31 00 00 99 01 01 というカタマリ。
次の(00 13)が19バイトで
00 13 c0 e0 01 00 00 00 20 00 00 00 14 00 00 00 01 00 01
というカタマリになっています。
こんなデータを検索し3行目の(00 0a)が見つかったら1バイト(c1)を飛ばし
(01 01)をチェックする。チェックした結果(01 01)であれば、また1バイト飛ばし
次の2バイト(01 20)を変数に代入という処理をしたいのですが、
毎回データが可変長で先頭から何バイト目という指定ができず困っています。
わかりづらい質問で大変恐縮ですが御教授いただけると幸いです。
よろしくお願い致します。
0911デフォルトの名無しさん
NGNG?
0912910
NGNGこれは(00 0b)の0bは10進数で11ですよね?
その数分のバイト数で00 0bの先頭から11バイトが
ひとつのデータのカタマリと表現したかったのです。
わかりづらくてすみません。
0913デフォルトの名無しさん
NGNG分かりづらいと言うか変と言うレベル。私は離脱します。スマソ。
0914デフォルトの名無しさん
NGNGデータへのアクセスを絶対アドレス?でできないことに困っているの?
別に先頭から順次読んでいけばよいと思うが。
LHAの実装で同じような処理をしたことがあるが、
そんな疑問、持ちもしなかった。
0915デフォルトの名無しさん
NGNG2+塊1の長さ+塊2の長さ+塊3の長さ
で出しておけばいいんじゃね?
1バイト飛ばして0101チェックはシラネーてか面倒くせー
c=getc();
while ((c=getc())==256){c=getc();}
とかでできんじゃね?
シラネーけど
0916デフォルトの名無しさん
NGNGデータ長やマーク(0101、c1など)を抜いて別の場所にコピーするコードを考えれば
解は自ずから明らかとなろう
0917デフォルトの名無しさん
NGNGでも,面倒くさい俺もパス
0918910
NGNGセチガレェヨヽ(`Д´)ノ ウワァァン!!
ウワァァァン━ヽ(`Д´)ノ━(ヽ`Д)━( ヽ`)━ヽ( )ノ━(ヽ )━(Д´ヽ)━ヽ(`Д´)ノ━!!!
0919デフォルトの名無しさん
NGNG関数の呼び出しコストが気になるなら、戻り値を変数に保存しておけばいいわけだが・・・
0920デフォルトの名無しさん
NGNGなんか知んないけど、データの先頭アドレスが unsigned char *p に入ってるとして...
unsigned short int GetLength(unsigned char data[]){
return (data[0] << 8) + data[1];
}
unsigned short int Result; /* 結果 */
unsigned short int TotalLength = GetLength(p);
p += 2;
/* 一行目 */
unsinged short int Length = GetLength(p);
p += 2 + Length;
/* 二行目 */
Length = GetLength(p);
p += 2 + Length;
/* 三行目 */
Length = GetLength(p);
p += 2;
/* 1バイトスキップ */
p++;
if(GetLength(p) = 0x0101){
p += 3;
Result = GetLength(p);
} else {
fprintf(stderr, "見つかんねーぞ、ゴラァ\n");
}
ぐらいでいいんじゃねーのか。
1〜2行目の処理をループにするなり、全体サイズをはみ出していないかチェックするなりは自分で考えてくれ。
0921910
NGNGマジデアリガ�dゴザイマス・・・
アナタハたぶん
神
間違いないです。
認定します。漏れの中で
920サソは神
0922デフォルトの名無しさん
NGNGレベルの低いPGしかこのスレにいないのか?
質問者の欲しい答えが返っていないような例を多数見るし、アホばっか?
って思うこと多数だYO!
やっぱ2chなんだなー。マ板とかは建前のない答えが来るからいいんだけどさ
0923デフォルトの名無しさん
NGNG可哀想・・・
0924デフォルトの名無しさん
NGNGゴメンネ
0925922
NGNGネタぽい質問の区別が出来るのはすごいね。
プログラムは経験で覚えていくって聞いたけど、俺はまだまだですね(1年1ヶ月)
)>>923の返事はちと意味わかんなかった。
2chを勉強の糧の一つとして過ごしている俺の現状が可愛そうてことかな?
そうだとしたらこれからこないことにすっかな。
・・・ってのは馬鹿のすることか。
必要な情報だけ取り入れられるようにこれからもがんばっていこっと
0926デフォルトの名無しさん
NGNGコテになって、質問答えまくって!!1
0927デフォルトの名無しさん
NGNGやっぱり可哀想・・・
0928デフォルトの名無しさん
NGNG居なくなるのが一番両者ともに嬉しいかと思われ
0929デフォルトの名無しさん
NGNG質問者はどんな情報でもありがたい。
ヒントとかキーワードとかでもそれを元にググったり出来るし・・
それが>>922にとってレベルが低かろうが知ったこっちゃない。
マジ、余計おせわと思う。
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNG>ヒントとかキーワードとかでもそれを元にググったり出来るし・・
それすらしない馬鹿がここを頼ってるんだと思われ。
少なくともまともに検索した奴は質問文にキーワード混ぜて検索したことアピールしてくるし
言ってることもしっかりとした基礎知識に基づき、論理的に正しい場合が多い。
0934デフォルトの名無しさん
NGNGman だと
If realloc() fails the
original block is left untouched - it is not freed or
moved.
となってますが
ptr=realloc(ptr,sz);
みたいな記述でreallocが失敗した場合
これってメモリリークするってこと?
いったん
ptr2=realloc(ptr,sz);
とかやってptr が失われないようにした方がいいのですかね
0935デフォルトの名無しさん
NGNGそのたうり
0936デフォルトの名無しさん
NGNGint my_realloc(void **memblock, size_t size)
{
void *p = realloc(*memblock, size);
if(p)
{
*memblock = p;
return 0;
}
return -1;
}
0937デフォルトの名無しさん
NGNGとっても。
0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG君よりは長生き
0941デフォルトの名無しさん
NGNG流石に20年は持たんだろう。
0942デフォルトの名無しさん
NGNGCOBOL もそんな事言われてましたが結局は・・・
0943デフォルトの名無しさん
NGNGはじっこの方に追いやられたな。
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNGCOBOL は2000年問題で復活して、最近 OpenCOBOL が活発になったらいいなぁ。
UNIX系OSには、2038年問題があるから、
少なくともC言語は、そのときに一時的にかもしれないが、流行るだろう。
0946デフォルトの名無しさん
NGNG早く薄めなきゃいかんな。
0947デフォルトの名無しさん
NGNGint型のa,b(またはc)が宣言,初期化されているとき.
for(i=1; i<a+b; i++);
というコードと,
c=a+b;
for(i=1; i<c; i++);
では,実行速度に差がありますか?
0948デフォルトの名無しさん
NGNG結局最適化の時点で同じにされそうだけどね。
0949デフォルトの名無しさん
NGNG削除されなくても、最適化によって同じやうなものになったり、ならなかったり。
初心者なら見やすい方書けばええよ。
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG即レスありがとうございます.
上に書いたほうが,早い(可能性がある?)ということですよね?
まことに初心者ですみません.
0953デフォルトの名無しさん
NGNG普通に考えると、前者が後者以上の速度を出す事は考えられない。
最適化によって、後者と同等のレベルのコードになる可能性があるという話。
0954947
NGNG0955デフォルトの名無しさん
NGNG後者は変数領域を確保するが、前者は確保する必要がないので
よりタイトなコードになる可能性がある。
0956デフォルトの名無しさん
NGNG後者が変数領域を確保するとは限らない。
つーか、それは速度とはあまり関係無い。
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNG勘違い?
0959デフォルトの名無しさん
NGNG今の最適化が進んだコンパイラはregister宣言を無視することが多い。
もしくは最適化の邪魔になってかえって遅くなることもあるそうな(伝聞)。
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNGready ・・・ set ・・・ start!
0962デフォルトの名無しさん
NGNG0963C言語二日目
NGNGある程度C言語を習得した気分ですが(w
実際は習得率なん%でしょうか?(20%いってる?)
習得率100%の基準は皆さん次第で。
あと、これからステップアップしてくためにはどんな本orサイトがお勧めですか?
0964デフォルトの名無しさん
NGNG0.2%
0965デフォルトの名無しさん
NGNG∧_∧
( ´∀`)< ぬるぽ
ぬるぽ募集中
http://pumpkinnet.to/ranking/words/
【ぬるぽに投票した人】
http://pc.2ch.net/test/read.cgi/prog/1048837306/l50
0966C言語二日目
NGNG逝ってきます!
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG思わず
「おかしいですよ!カテジナさん!!」
に投票してしまった・・・
0969デフォルトの名無しさん
NGNG1時間後はヨロシク。
∧_∧
( ´∀`)< ぬるぽ
0970デフォルトの名無しさん
NGNG無視するとともに勝手にレジスタに置くんだろ?
0971デフォルトの名無しさん
NGNG> 後者が変数領域を確保するとは限らない。
アフォ ? 変数領域を確保しないとも限らないんだよ ?
> つーか、それは速度とはあまり関係無い。
「全然」ではないよね。つまり、あんたの >>953 は単なる思い込みってことだ。
現実、前後の状況によって、どっちが早くなるかは様々だ。
>>947 では、a, b, c が int 型とまでは書いてあるが、例えば c が volatile int c と宣言されて射たりしたら、後者が遅いことは十分に考えられる。
0972デフォルトの名無しさん
NGNG煽りはスピードが命。
0973デフォルトの名無しさん
NGNG流石に volatile まで持ち出すのは行き過ぎではないかと。
0974デフォルトの名無しさん
NGNGカエレ!!
0975デフォルトの名無しさん
NGNG文章が支離滅裂だな
0976デフォルトの名無しさん
NGNGc に volatile付けないとイカン状況で>>947の前者みたいな
書き方するのもいかがかと。
0977デフォルトの名無しさん
NGNG春だなぁ。
0978デフォルトの名無しさん
NGNGなんか、総攻撃にあってるな
0979デフォルトの名無しさん
NGNG∧_∧
( ´∀`)< ぬるぽ
0980デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>971
0981デフォルトの名無しさん
NGNG(・∀・)ガッ
0982デフォルトの名無しさん
NGNG0983C言語やろう
NGNGint main()
{ printf....................
ていう書き方をみるけど
int main(void)
{printf......................
のように引数がないときは 、引数のない関数void型をつかわなきゃいけないん
じゃないの??
voidを使ってるのと使ってない差を教えてください
0984デフォルトの名無しさん
NGNG糖衣構文
0985C言語やろう
NGNG0986デフォルトの名無しさん
NGNG0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNGさんざん既出。
c++では同じ意味。
cではかなり違う意味。
「じゃないの?」と思うなら少しは自分で調べてみよう。
0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNGCでも同じだが・・・
0991990
NGNG0992デフォルトの名無しさん
NGNG返値みたくint型と評価されるとか言いたいんでしょうか。
じゃあ、
void hoge()
{
/*暗黙のint型の引数にどうやってアクセスすればいいのか?*/
}
int main()
{
hoge();/*引数の数が足りないのでエラー*/
}
0993990
NGNGvoid hoge(void);
int main()
{
hoge();
return 0;
}
void hoge()
{
}
0994990
NGNG0995デフォルトの名無しさん
NGNGint hoge();
// intを返す関数hogeのプロトタイプ宣言。引数なし。
int hoge(void);
0996さとし
NGNGとした場合は pa がポインタって言うのはわかるけど
*paっていううのは、変数じゃないしなんなんですか??
0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNGポインタpaを間接参照。
int a=8;
int *pa=&a;
/* *pa==8 */
0999デフォルトの名無しさん
NGNG黙れ春厨
1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。