C言語なら俺に聞け! Part 79
レス数が1000を超えています。これ以上書き込みはできません。
0001v(^o^i)d
NGNG質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だ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/
各種リンクは>>3-20あたり(誰か適当に貼って)
Cなら俺に訊け! Part 78
http://pc5.2ch.net/test/read.cgi/tech/1083651280/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
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/
【ライセンスや機能などに問題あり】
Microsoft 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
Intel C++ Compiler for Linux
http://developer.intel.com/software/products/compilers/clin/noncom.htm
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG#include <resolv.h>
main(){
int sd;
sd=socket(PF_INET,SOCK_STREAM,0);
return(0);
}
試しにこのようにして、Socket関数を呼び出して見たんですが、Linuxでは、コンパイル通るのですが、FreeBSDだと通りません。
/usr/include/resolv.h:104: error: field `nsaddr_list' has incomplete type
/usr/include/resolv.h:114: error: field `addr' has incomplete type
/usr/include/resolv.h:129: error: field `ina' has incomplete type
/usr/include/resolv.h:130: error: field `in6a' has incomplete type
エラーはこのように出ます。
FreeBSDの場合、他にヘッダファイルを指定しないといけないのでしょうか?
0009デフォルトの名無しさん
NGNGそんなものincludeディレクトリ内を検索して、該当するヘッダを見つければいいだけの話だろ。
なぜその程度の知恵すら無いんだ?
00108
NGNG0011デフォルトの名無しさん
NGNGsys/types.hじゃないの?
00128
NGNGどうもです
#include <sys/fcntl.h>
#include <sys/types.h>
でいけました。
0013デフォルトの名無しさん
NGNG盛者必衰の理をあらわす。
001413
NGNG0015デフォルトの名無しさん
NGNGこの本を最後まで終わらせるとどのくらいの技術が身に付くんでしょうか?
メモ帳くらいは作れるようになりますかね?
0016デフォルトの名無しさん
NGNG「標準ライブラリ」とは何か。調べてみてください。
0017デフォルトの名無しさん
NGNGやっぱりそうですか・・・
GUIは難しそうですものね。
でも、それならばどの程度まで身に付くんでしょうか?
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGそれが理解できれば、あとは応用していくだけって感じなんでしょうか。
0020デフォルトの名無しさん
NGNG難しいとかいう話ではなく
単にGUIはCという言語規格でまったくカバーしていないため
すべて処理系依存の独自ライブラリで処理することになる。
従って言語とは別に処理系に対する知識が求められるだけ。
0021デフォルトの名無しさん
NGNGその本全部読んだあたりでは凡人になれる。
その後ソーティング、サーチ、データ構造なんかのアルゴリズムを身に付ければ初心者だな。
そこからは果てしない道のりがまってるが、とりあえずポインタをしっかり分かれば大抵のソースは読めるようになるだろう。
GUIやりたいならJavaが簡単だよ。
でもきちんとやりたいなら、Cをある程度やったあとにC++に移行した方がいい。
あとは時代の流れをみつつ、な。
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG最初からC++でいいんじゃない?
無論、JAVAでも良い。C#は微妙。
0026デフォルトの名無しさん
NGNGいきなりC++だとどこから手付けていいのかわからなそうじゃん。
しかもC++の入門書ってあんまないし。VCならあるけど。
Cの入門書は出来がいいと思うのがあるから、意味ないとは思わないな。
いきなりC++出来るならそっちのほうがいいとは思うけど。
C#はありえないし、Javaだけってのもなんかやだ。
0027デフォルトの名無しさん
NGNG一応 Accelerated C++ がいきなりC++の入門書になるんじゃないかな。
http://www.amazon.co.jp/exec/obidos/ASIN/4894714221
まあCスレにふさわしい話題じゃなくなってきたが
0028デフォルトの名無しさん
NGNGスレ違いスマンが、アマゾンのレビューにもあるように、if文なんかの
基本事項は学べないみたい。
というわけで、Cを勉強中の人は安心してCに励んでください。
0029デフォルトの名無しさん
NGNGそういう時って、プログラムを組む前からどんな関数を作るかを
考えているんでしょうか?
それとも、作っていくうちにどんどん追加していくようなものなんでしょうか?
0030デフォルトの名無しさん
NGNGdouble型で15桁の数字の加算を繰り返していて
途中から1の位の値が正しく計算されなくなったんですが
long double型に変えたら正確に計算されるようになりました
何が原因なんでしょう
0031デフォルトの名無しさん
NGNGお好きにどうぞ。
0032デフォルトの名無しさん
NGNG精度
0033デフォルトの名無しさん
NGNG精度が違うから。
浮動小数点について、ググルなり本を読むなりして勉強しな。
0034デフォルトの名無しさん
NGNGあんまりグローバル変数使わず、使うならそのグローバル
変数を読む関数を作って、できるだけファイル内のものは隠せっ
ていわれたんですけど、どういう
感じの関数にするのが妥当でしょうか?
0035デフォルトの名無しさん
NGNG多分set/getをつくれということだと思う・・・
sub.c
static int n;
void set(int i){ n=i; }
int get(void){ return n; }
main.c
set(4); /* sub.cのnに4をセット */
i=get(); /* sub.cのnの値を得る */
0036デフォルトの名無しさん
NGNGありが�dございます
調べてみます
0037デフォルトの名無しさん
NGNG外部に公開する関数はある程度考えてから作ることが多いと思う
Cの範囲外だが、オブジェクト指向のクラスになればなおさらその傾向は強まる
static(ファイル内のみ)な関数は適当にポンポン追加されていく傾向が強い
適当に作った関数はstaticになる(するべき)って言い方でもまあ正しい
ある程度考えて作ってもあとで修正することが大半ってことも言っておく
0038デフォルトの名無しさん
NGNG「ことってある」んじゃなく、それがベース。
関数もプログラムだし、アプリもプログラム。
大きさの違いでしかない。
0039デフォルトの名無しさん
NGNG言語問わずSet*** Get***って名前の関数を使うのが慣習かな?
その関数の中で与えられた引数が有効範囲に存在するかどうかをチェックしてねん。
0040デフォルトの名無しさん
NGNG微妙に表現がおかしいような…
0041デフォルトの名無しさん
NGNG>long double型に変えたら正確に計算されるようになりました
君は一体何だと思って long double 使ったのかと。
0042デフォルトの名無しさん
NGNG有効範囲かどうかってのはどういうことですか?引数で指定した型よりもでかい
値かどうかってことですか?
それとグローバル変数が複数あるとき、一つ一つのグローバル変数に
対してget、set作ったほうがいいのでしょうか?そうするとそのset、get
はexternしないといけないわけで、なんかえらいことになってしまう気がします。
その辺の管理はどうなのでしょうか?
0043デフォルトの名無しさん
NGNG教えて下さい。お願いします。例えばopqrを入力してrqpoを出力する。
0044デフォルトの名無しさん
NGNG宿題は宿題スレへ。
ほんとうはCなんて全然わからないんでしょ?
0045デフォルトの名無しさん
NGNG有効範囲のことは、今は気にするな。別にそだけが目的でセッターゲッター作るわけじゃない。
で、ひとつひとつのグローバル変数に対してもちろん作る。
externしないといけないというのは意味わからん。
まさかヘッダーに書かずに、全てのソースにexternって書いてまわってるの?
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNGグローバル変数が多くなる時は設計を疑ってみるといいよ。
もしくは構造体を作って複数のグローバル変数をまとめて管理したほうがいい。
でも、はじめは難しく考えずに作ればいいと思うよ。
で、不満が出た時にその不満を解消する方法を考えるか探せばいい。
get/setを作らなくてもいいと思うなら、無しでいいじゃん。
馬鹿にする意味じゃなくて、それが経験になる。
0048デフォルトの名無しさん
NGNG>有効範囲かどうかってのはどういうことですか?
そのグローバル変数が取り得る値の範囲内にあるか?
と言うことだろう。
>それとグローバル変数が複数あるとき、一つ一つのグローバル変数に
>対してget、set作ったほうがいいのでしょうか?そうするとそのset、get
>はexternしないといけないわけで、なんかえらいことになってしまう気がします。
数が増えてえらいことになる、と言う意味だとしたら、
きちんと設計すれば、そこまで多くのグローバル変数なんてまず必要ない。
0049デフォルトの名無しさん
NGNGそういう理論抜きの行き当たりばったりなやり方が現場を混乱させるんだよ全く迷惑な話だな
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGたぶんあなたは文章を理解していない。
>>47は実際にやってみてその問題点を実感してからでも遅くは無いといっている。
恐らく>>34はまだ現場にはいないだろうという予想を用いて。
0052デフォルトの名無しさん
NGNG素直に後ろから順に表示していけばいい。
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGプロジェクトで決まってるとか
0055デフォルトの名無しさん
NGNG数あてゲームを作っているんですが、rand関数でだした乱数とユーザーが入力した数値が+-5で おしい! と出したいんですがどうしても方法が思いつきません・・・
どなたかいいアイデアがあれば教えてください。
お願いします
( 答えより小さければ 「それは小さい」 大きければ 「それは大きい」 とまではできたのですが。。)
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG実は1パスでやってるんですよ。わたしがそう設計したのですが。
0059デフォルトの名無しさん
NGNG誤爆か?
0060デフォルトの名無しさん
NGNG気安く「どうしても」とかいうな。
どうしてもってのは「あらゆる方法をためしたが」という意味だ。
もしほんとうにそうなら、おまえはぜったい思いつかないんだろう。あきらめな
0061デフォルトの名無しさん
NGNG&&だな。
±5でなら、abs(a - b) == 5
±5以下なら、abs(a - b) <= 5
006255
NGNGありがとうございます
abs()がまだ勉強していないのでわかりませんでした・・・
絶対値を返すんだかなんだかですよね
それをどう使うかが・・
>>60
おっしゃるとおりだと思います
すみませんでした・・・・
あらゆる方法というほどまだ知識がなく私なりのあらゆる方法でこうしてみました
else if( num == ans +3 || num == ans +2 || num == ans +1)/* 答えより+3以内なら*/
↑
マイナスの文もつけて
みなさんありがとうございました
PS。数あてゲーム2日目を超えて3日目に入りそうです(笑
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG君の言う「あらゆる」と世間の「あらゆる」は違うようだね。
処で、比較演算子'>'や'<'はご存知ないかね。
0065デフォルトの名無しさん
NGNGためになるっていうのあったら紹介してくだせ〜
ガイシュツだったらスマソ
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGgcc のソースでも読めばいいんじゃねのか?
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGシェルのソースは地獄だよ。
0071デフォルトの名無しさん
NGNGISO/IEC 9899:1999 - Programming Language C
0072デフォルトの名無しさん
NGNG前スレ終了直前のやつ
0073デフォルトの名無しさん
NGNGscanf("%c",&uho);
とで、2文字以上を入力したとき2文字目以降の文字達はどこに格納されるのですか?
また、それを調べる関数はありますか?
0074デフォルトの名無しさん
NGNGどない思います?
0075デフォルトの名無しさん
NGNG残りはバッファに残ってる。
007673
NGNG0077デフォルトの名無しさん
NGNGなんで?
007873
NGNGscanf("%c",&別の変数);
としたときに、前の入力が入り込んでしまうじゃないですか。
つまり、その残骸を初期化したいんです。
いい方法はありませんか?
0079デフォルトの名無しさん
NGNGもう一回scanfをしろ。scanf使いたいならな。
008073
NGNGというか、ほかの関数を使えということです?
0081デフォルトの名無しさん
NGNGwhile( getchar() != EOF );
本当はscanfを変える方がいいと思うがな。とりあえずはこれで。
0082デフォルトの名無しさん
NGNGC++なら予約語全て使ったと言うものなら
ただし非実用、ためにならないw
http://www.ksky.ne.jp/~seahorse/cpp/cppiroha.html
008373
NGNGEOFではうまくいきませんでしたが、
while( getchar() != '\n');
にしたら自分が望んでいる処理ができました。
ありがとうございました!!
0084デフォルトの名無しさん
NGNGwhile((c = getchar()) != EOF){
printf("%c\n", c);
fflush(stdin);
}
008573
NGNGしかし、入力したのを全部表示するのではなく、2文字目以降はなかったことにしたかったのです。
ですが、わざわざ考えてくださりありがとうございます!!
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNG???
008834
NGNG不覚ながら知りませんでした。
>>42
ヘッダに当然書いています。
>>50
どういう問題があるのでしょうか?
>>53
C++の環境は残念ながらないのです。
グローバル変数を直接使わずにset、getを使っての操作だとどう
いう利点(逆に言えばグローバル変数を使うことの欠点)があるんでしょうか?
0089デフォルトの名無しさん
NGNGどんな環境使ってるの?
0090デフォルトの名無しさん
NGNG例えば
char *a = "漢";
としてaの1バイト目をJIS漢字コードで比較しようとして
if((a[0] > 0x81 && a[0] < 0x9F) ||
(a[0] >= 0xe0 && a[0] <= 0xfc))
{
printf("漢字");
}
みたいな文をかいたのですが、うまくいきません。
どこがいけなくて、何が必要なのか教えていただけませんか?
009165
NGNGやっぱりw
そうだったらなんか一つつくってみよっかなーっとか
いやね使い物になるものを作るスキルはないっすけどw
>67
ちょっくらのぞいてみまーす
>68
すてき
>69
>70が言うようにきびしそー
モチベーションが続かないような気がします
>71
ちょっとHitしたかんじ
>82
すてきーファンになりそー
紹介してもらったものを手始めにいろいろと覗いてみようと思います。
有益な情報どうもありがとうございました。
0092デフォルトの名無しさん
NGNGSJISをいまどきベタで判定するのもアレだが
charは符号つきなのでSJISのコードはマイナスになっちゃうよ。
0093デフォルトの名無しさん
NGNG>getter setterの利点。
内部のデータ構造を隠蔽できる。
外部からは読み込み専用(やろうと思えば書き込み専用も)にすることが出来る。
変数が書き換えられた時に何らかの操作が必要になることがある。
そんなときに便利。(書き換えた後にこの関数を呼び出せでは忘れることがある)
引数が有効範囲にあるかチェックできる。(配列のオーバーアクセスをしていないかとか)
>getter setterの欠点
処理速度が遅くなる。
グローバル変数の問題点の根本部分は結局解決しない。
009493
NGNGとあるグローバル変数gはプログラム中の何らかの状態を表す。
その状態を変更する関数fooは実行されるとgの値を変更する。
メインの処理を行う関数ではgの値を条件分岐に用いている。
こんな状況は本当に危険。なぜならgは書き換え可能だから。
何らかの弾みでgの値を変更するコードを加えてしまうと原因の特定が困難なバグが発生する。
たとえば「gはプログラムの状態を表す」というコメントを見た別のプログラマーがgの値を変更すれば
プログラムの状態が変化すると勘違いをして変更するコードを書くかもしれない。
こんなときこそgは隠蔽して、その状態を取得する関数barを作る。これにて一件落着。
私が挙げられる最も分かりやすい例がこれです。
0095デフォルトの名無しさん
NGNG;
2次元配列を用意し、そこにEOFになるまで入力させるプログラムを書こうと思ったのですが、
VisualC++6.0でコンパイルするとEOFを検知できません。
Ctrl-dを押してもwhileループから抜けられません。
ちなみにVisualStudio.NETでも同じ結果でした。
しかし、Linux上のGCCではうまくいくのです。
なにがいけないのでしょうか。
0096デフォルトの名無しさん
NGNGDOS/WindowsではCTRL-Cですよ。
0098デフォルトの名無しさん
NGNG>なにがいけないのでしょうか。
scanf()を使うこと。
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG> としたときに、前の入力が入り込んでしまうじゃないですか。
> つまり、その残骸を初期化したいんです。
> いい方法はありませんか?
だーかーらー
「scanfを使わない」が正解だって
0103デフォルトの名無しさん
NGNGおまえあほか!
なんでカッコの前の空白いれてないのに、うちがわにはあけるんだよ!
0104デフォルトの名無しさん
NGNGそのあたりは第4章に、まさにそのものの例がでてる。読め!
0105デフォルトの名無しさん
NGNGくわしく教えてください
0106デフォルトの名無しさん
NGNG> ;
> 2次元配列を用意し、そこにEOFになるまで入力させるプログラムを書こうと思ったのですが、
だーかーらー! scanf使うなって、何回いったらわかるんだよ ぼけ!
0107デフォルトの名無しさん
NGNG> DOS/WindowsではCTRL-Cですよ。
ぼけ! Ctrl+Zだろうが。
(まちがってUnixでCtrl+Zしないように)
010873
NGNGいえ、これを判定しているときにすでにgetchar()で入力処理(?)しているようでうまく動きます。
>>102
今回はscanf使ってつくりました。他の方法も興味ありです。
>>103
完全にあほです・・・。なんで空白空けたんだろう・・・。普段空白は入れないでやっています。。。
0109デフォルトの名無しさん
NGNGsafari厨(=マカー)は死ね
0110デフォルトの名無しさん
NGNGその文字を場合によってはsscanfなどで数値に変換しる。
0111neko ◆MNerR0G.3U
NGNGmain(){
int a,s;
long far *tc=(long far *)0x0040006c;
s=1;
printf("\x1b[2J");
do{
if(kbhit()!=0){
a=getch();
if(a=='a'){
printf("\x1b[%d;1Hneko",s);
s=s+1;
}
}
*tc=0;
while(*tc<=6){}
}while(a!='s');
}
aボタンをしばらく押すと離してもしばらくneko」と表示される。
aボタンを離したらneko」と表示させないためにはどうしたらいいだろう?
0112デフォルトの名無しさん
NGNG○その文字列を
0113デフォルトの名無しさん
NGNGだーからー 使うなよ!
0114デフォルトの名無しさん
NGNGとにかくscanfはややこしくて初心者には使いにくいくせに、
それおぼえてもなーんのとくにもならんという、どうしようもないものだ。
0115デフォルトの名無しさん
NGNGsizeof(int)が4
sizeof(short)が2
sizeof(char)が1のとき、
typedef union {
int a;
short b;
char c;
} foo;
のsizeof(foo)は、いくつになりますか?
(1) 4
(2) 2
(3) 1
(4) 処理系依存
けっこう、これ知らないひと多いのよね。
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG一番大きな型のサイズになるでしょ。
0119デフォルトの名無しさん
NGNG構造体の穴ってやつだっけ?
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGEOF = ^Z (0x1A)
EOT = ^D (0x04)
0122デフォルトの名無しさん
NGNGあのー、^ZがEOFなわけじゃないです。
0123デフォルトの名無しさん
NGNG>>115
少なくとも最大のサイズのメンバを保持できるサイズ。処理系依存。
0124デフォルトの名無しさん
NGNGだと思うでしょ? ふつうに考えたら。
0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG放っておけばそのうち自動的に解放される(GC)。
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNGポインタを代入した変数にヌルポインタを入れる
そうすると、そのポインタの指す領域は開放される
0129デフォルトの名無しさん
NGNG氏ねボケカス
0130デフォルトの名無しさん
NGNG>128
それCでは無いだろ
0131デフォルトの名無しさん
NGNGelse return y; �@
-------------------------
return (x > y) ? x : y; �A
-------------------------
2つの数値を入力して大きい方を返すmax関数なんですけど、
�@と�A結果は同じです
こっちのほうが(・∀・)イイ!! などはあるのでしょうか?
初心者なもんでしょうもない質問だったらスマソ(;・∀・)
0132デフォルトの名無しさん
NGNG自分で見やすいと思った方に汁
0133デフォルトの名無しさん
NGNGで、どうなの?
0134デフォルトの名無しさん
NGNG返事ありがとうございます
見やすいほうでいいのですかー
いろんな書き方があってむずかすぃですな・・・・
0135デフォルトの名無しさん
NGNG>�@と�A結果は同じです
うそつき!
ちなみに漏れなら�@のelseなしにするかな
0136デフォルトの名無しさん
NGNGでは君に質問。
xとyが同じ値の時にはどちらを返すべきかね。
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNGつっても三項演算子にフローも糞もないわけだが。
俺は�Aだな。�@は冗長すぎ。
0139デフォルトの名無しさん
NGNGマクロにしろ
0140デフォルトの名無しさん
NGNGだから�@と�A結果は同じじゃないんだって気がつけよ。
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGどういう状況で異なる結果が出るのか教えて。
0143デフォルトの名無しさん
NGNG(X > Y)
0144デフォルトの名無しさん
NGNGどういう状況で異なる結果が出るのか教えて。
0145デフォルトの名無しさん
NGNG俺も131をチラッと見て、違うんじゃ?と一瞬オモタよ。
131が釣りでないのなら、もちょっと読む人のことをを考えてプログラムが書けるように頑張れ。
3ヵ月後の自分は他人と思え、ってよく言うじゃん。
131が釣りなら、2人ぐらいは釣れたみたいだよ。
0146デフォルトの名無しさん
NGNGC++なら==は真だが〜、がありえたね。
0147デフォルトの名無しさん
NGNGその場ででっち上げた言い訳にしても苦しすぎ
0148(1/2)
NGNGchar文 *str 内に、「○/○」と言う文字が格納されています。
この格納されている/以降の文字を「日付」として使いたいので、
この文字を「1」〜「31」の文字と比較し、
一致したら(適当な)引数flgを1として、
処理を進める、と言うプログラムを作成したいと思っています。
とりあえず試しに、
char *str;
char *judgment;
char *bundan;
judgment = strdup(str);
bundan = strtok(judgment,"/");
bundan = strtok(NULL,"/");
int k,l;
char reference[128];
for (k = 0; k < 32; k++)
{
reference[k] = k;
}
for (l = 0; l < 32; l++)
{
printf ("reference[%d] = %d\n",l,reference[l]);
if(bundan == reference[l])
{
flg1 = 1;
break;
}
}
0149(2/2)
NGNGどうやら下から5行目で「bundan」と「referenxe[l]」が、
char型とint型のため、比較出来ない様です(´・ω・`)
このreference[]配列の中にchar文を、1から31までを順に入れる方法、
もしくはこの様にchar文を、続き数字で比較するのに適した関数が有りましたら、
御教授を御願い致します。
0150デフォルトの名無しさん
NGNG,.-‐'''" ヽ
ノ ヽ
/ ,,,_,_ ヽ
{ ,vリjh!リjh!( ヽ, }
} / ,; ニ= =ニミ;、i {
{ j ,.ェュ , { rtェ 、 i ノ
{ Y ミ Yリ
!| y.-,_-)、 |ノ
'! ノ _, u 、ヽ !
! ''ニ' ' ! <体制を崩壊させるには、著作権侵害を蔓延させるしかない
ト、 _,,,,,, イ
/| −-- −' |ヽ, Winny製作者47氏(金子勇)
ー'''{ | ノ .| /''ー
0151148-149
NGNGif(bundan == *reference[l])
にすれば良かっただけだったのか……_| ̄|○
0152デフォルトの名無しさん
NGNG釣り?
0154デフォルトの名無しさん
NGNGいや、明らかに出来てないだろ。
0155デフォルトの名無しさん
NGNG突っ込み所満載だな
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGvoid (*pp[])() = { func1, func2, func3 };
int i;
for (i = 0; i < 3; i++) {
(*pp[i])();
}
の呼び出してる所、[ ]がある時点ですでに中身参照って意味じゃないんですか?
*pp[i]って、ポインタのポインタみたい。って思うんです。
0159デフォルトの名無しさん
NGNGもうちょっと質問の形にしてくれる?
何を答えたらいいか、わからんよ。
ちなみに呼び出し行は、
pp[i]();
と書いてもいいよ。
0160デフォルトの名無しさん
NGNGそれは「関数ポインタ」の配列
0161デフォルトの名無しさん
NGNGそう!それも分からんかったです。
void (*pp)() = func1;のときに、
呼び出すときに、(*pp)();でもpp();でも良いのは何でだろう?と。
あと、>>158のは、うーん、なんというか、
例えばa[5]とかくと、*(a + 5)と同じだと思うんですけど、
だから(**(pp + i))に見えるんですよ、*pp[i]って。
宣言の時アスタ1個しかついてないのに???ってなるんです。
*は中身参照だと教わったんですが、多分まだそれがいまいち理解できてないんだと思います・・・
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGポインタ配列へのポインタを使うのです
0164デフォルトの名無しさん
NGNGargv(mainの第二引数)と同じ
0165デフォルトの名無しさん
NGNG中身を参照しただけじゃ関数は呼び出せないから。
呼び出すには()が必要。
[]で配列から要素(関数ポインタ)を取り出し、()で呼び出す。
0166165
NGNG関数ポインタはちょっと特殊で、何度間接参照してもOK。
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNGどれが?
0169デフォルトの名無しさん
NGNGGCCです
0171デフォルトの名無しさん
NGNGftp://core.ring.gr.jp/pub/GNU/gcc/
0172167
NGNGCの勉強がしたいのでとりあえずコンパイルできる環境がほしいのですが
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNGiMac買えば最初から入ってるよ。
ccもviも、
apacheもemacも
rubyもperlもsendmailもxmllintも!
0176デフォルトの名無しさん
NGNG> if(bundan == *reference[l])
空白あけろよ ぼけ
0177デフォルトの名無しさん
NGNGiMacってLinuxのパクりOSなんですね。
0178デフォルトの名無しさん
NGNG(
bundan
==
*
reference
[
l
]
)
0179デフォルトの名無しさん
NGNG>iMacってLinuxのパクりOSなんですね。
>iMacってLinuxのパクりOSなんですね。
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNGばーか
0183デフォルトの名無しさん
NGNGに入ってるOSは違うの?
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGそれは空白ではないですね。
0186デフォルトの名無しさん
NGNGiMacでMS Office買って入れると、Virtual PCがはいるんだけど、
Aquaのウィンドウと、
Windows XPのウィンドウと
Xのウィンドウが
混在して、楽しいですよね。
ちなみに、そのままでccが使えないのはWindowsのウィンドウだけです。
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGなので、買ってすぐにCの勉強できていいよね。
0189デフォルトの名無しさん
NGNG君には負けたよ。
0190デフォルトの名無しさん
NGNGGCC(1) GNU GCC(1)
NAME
gcc - GNU project C and C++ compiler
SYNOPSIS
gcc [-c|-S|-E] [-std=standard]
[-g] [-pg] [-Olevel]
[-Wwarn...] [-pedantic]
[-Idir...] [-Ldir...]
[-Dmacro[=defn]...] [-Umacro]
[-foption...] [-mmachine-option...]
[-o outfile] infile...
Only the most useful options are listed here; see below for the remain-
der. g++ accepts mostly the same options as gcc.
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNGいまどきWinアプリをCで作るやつなんていないからな。
0193デフォルトの名無しさん
NGNGC、C++、Javaが
3:5:2ぐらいだね。
10万人ぐらいつれてきたら、3万人以上はいる。
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNGccが入っていないWindows君は、当然C++もJavaも入ってないのです。rubyもperlも! awkさえない!
0196デフォルトの名無しさん
NGNGCは社会に出てからっていう人が多い。
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGばーか
VBS, CMD, C#, JScript, C#, VB.NETとか入ってるだろ。
そんな古臭い糞ツールはいまどきはやらないんだよ。
0199デフォルトの名無しさん
NGNGプ
0200デフォルトの名無しさん
NGNG改行も空白の一種だが。
0201デフォルトの名無しさん
NGNGなぜ、「C#」だけ二度も出てくる?
そんなに「C#」を強調したいのか?
0202デフォルトの名無しさん
NGNGきっと isspace() を使ったことないんだよ
0203デフォルトの名無しさん
NGNGWindows2000 AdvancedServerにはPerlが入っている。
0204デフォルトの名無しさん
NGNGisspace()とisblank()、歴史が古いのはどっちでしょう?
また、どっちがより範囲が広いか知ってますか?
(10秒以内に答えられたら500円あげる。
0205デフォルトの名無しさん
NGNG手持ちの解説書には『右辺の変数を左辺の変数にデータ型変換して代入』と
書いてあるのですが、以下の場合の右辺と左辺はどれになるのかわかりません。
てか、(BBB *)って何をしてるのでしょう・・・
stpBBB = (BBB *) cpAAA;
(※stpBBB,cpAAAは構造体で、エリアポインタセーブとして宣言されています)
いくらぐぐってもこんなキャストのやり方でてきません_| ̄|○
0206デフォルトの名無しさん
NGNGはいってませんよ > Windowsに
0207デフォルトの名無しさん
NGNG=の左か右か
0208デフォルトの名無しさん
NGNG> stpBBB = (BBB *)cpAAA;
右側が右辺
左側が左辺ね
って、もしかして箸を左手でもつほうですか?
0209デフォルトの名無しさん
NGNGおそらく(BBB *)cpAAAしか注目していない。
0210デフォルトの名無しさん
NGNG>てか、(BBB *)って何をしてるのでしょう・・・
「BBB *」型に型変換をしている
0212デフォルトの名無しさん
NGNGその手持ちの解説書とやらに書いてあるじゃないか
0213デフォルトの名無しさん
NGNG藻前、プログラムに向いてないよ
0214デフォルトの名無しさん
NGNGいつのWindowsの話をなさっているのでしょうか…
0215デフォルトの名無しさん
NGNG向いていないのはわかっています。
ですが、向いていないからやらないというわけにはいかないのです。
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNGスルーしたつもりはないのですが失礼しました。
>>209
>>210
「BBB *」型に型変換をしている
*の指す意味がよくわかりません。
0218デフォルトの名無しさん
NGNGBBB *型は、BBB型のポインタ型
0219デフォルトの名無しさん
NGNGBBB型のポインタ型ですか・・・
ぐぐってみたら色々出てきましたので見てみます。
ご親切にありがとうございました。
0220元プログラマ
NGNG(BBB *)はキャスト(cast)を行っている。
機械語でいえば、どちらもアドレスを格納しているのだから
同じ語長(バイト数)となる。(near , farは考慮せずに言えばだが・・・)
つまり、アセンブラなら例えば、move a , b といった感じで
書けるわけだ。
だが、C言語には型があり、文法でエラーとなる。
そこが高級言語の窮屈なところでもあり、いいところでもあるわけだが。
でも型が違っても、語長は同じだし、機械語レベルで言えばアドレスと
いう値であるから、同じといえば同じなんだな。
それをC言語で文法チェックで代入できないところを、同じものなら
代入できるようにしてあげよう!なんて親切な機能がキャストだ。
わかったかな?
でも、ついでにいえば、キャストというのはアドレス
でなくても、無理矢理変換できてしまうから、変なことしていると
落ちてしまうのだ。
だが、そういう落ちてしまうようなシステムを作るのはC言語プログラマ
としては3流だから、無視することとして(おれの作った組み込みは
ハードが壊れないかぎり絶対に暴走はしないと自信がある!)
まあ、おれさまのようなちょー一流プログラマになれば
キャストがあったらいろいろ便利につかえるのだ。
と、DQNなおれだが、たまには自慢させてくれ。
以上。
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG自分も同じで「エリアポインタセーブ」が何だか聞きたいんだけど。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG>おれさまのようなちょー一流プログラマになれば
>DQNなおれだが
己のDQNさを自覚しているのも質悪いな。
キャストの説明も間違ってるし。
0226デフォルトの名無しさん
NGNG開発環境は初めからほとんど揃ってる。あとは欲しい言語をダウソして終わりだ。
0227131
NGNGすみません 少し考えたんですがわかりませんでした・・・
>>145
本当に釣りではないですよ(笑
おっしゃるとおり読む人のことを考えたらどっちがいいのかなぁ?と
思ってレスさしてもらいました
�Aがいいようなのでこれからそうしたいと思います
あと他にこんな書き方のほうがいいぞ!ってあれば教えてください
お願いします&返事ありがとうございました(>Д<)ゝ
0228デフォルトの名無しさん
NGNG文字化けしてるぞ!
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG#define MAX(x,y) ((x)>(y)) ?(x) :(y)
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG△△△△1
△△△22
△△333
△4444
55555
って表示させるにはどうすりゃいいんだ!
ifを使えってさ!あと△はヌルだってさ!
途中まで考えた!
int i,j;
for(i=1;i>6;i++){
for(j=1;j>6;++)
printf("%d" ←ここらから分かってない。
if(j>i
助けてくれ!マジで!
0233デフォルトの名無しさん
NGNGとりあえず最初のforループの判定に失敗するがいいのか?
0234デフォルトの名無しさん
NGNGC/C++の宿題をやらせて、お兄ちゃん 22代目
http://pc5.2ch.net/test/read.cgi/tech/1083050221/l50
0235デフォルトの名無しさん
NGNGうわ!そんなところから違うのか!ぎゃおす
>>234
誘導ありがとうございます。そちらに逝かせておもらしします。ありがとうごまします
0236デフォルトの名無しさん
NGNG>あと△はヌルだってさ!
表示しろってか?
0237デフォルトの名無しさん
NGNGスペースだってさ!もう少しっていうかかなり勉強してくるぜ!誘導先に!
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNGありがとうございましT。
0243デフォルトの名無しさん
NGNG標準Cのみでは不可能。
環境スレに行け。
0244デフォルトの名無しさん
NGNGVC++あります。
スレ違いになりそうなので移動しますね
0245デフォルトの名無しさん
NGNGどうすればいいのでしょうか?キャストか何かで出来ないでしょうか?
char a[100][1000]; ←このメモリをmalllocで確保したい。
a[20][30] = 'a';
0246デフォルトの名無しさん
NGNGムリ
#define Dim(name,x,y)((name)[(y)*100+(x)])
char *a;
a = calloc(100,1000);
Dim(a,20,30) = 'a';
こうやって誤摩化すか、構造体使え
0247デフォルトの名無しさん
NGNGtypedef (*array_type)[1000];
array_type a;
a = (array_type)malloc( sizeof (char [100][1000]) );
a[20][30] = 'a';
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG激しくスレ違い
0250デフォルトの名無しさん
NGNGc++でもcは使えますか?
0251デフォルトの名無しさん
NGNG>c言語を使いたいのですが無料のソフトありませんか?
>>2
>c++でもcは使えますか?
OK
0252デフォルトの名無しさん
NGNGそういや>>2だけみると無料だってことが分からないな
0253デフォルトの名無しさん
NGNG即レス感謝です。
0254デフォルトの名無しさん
NGNGunsigned aa : 1;
unsigned bb : 3;
unsigned cc : 1;
} test;
こんな感じのをみました。初めて見たのですがこれはどういう意味ですか??
0255デフォルトの名無しさん
NGNGうん
0256デフォルトの名無しさん
NGNGビットフィールド
0257デフォルトの名無しさん
NGNGありがとう!ビットフィールド unsignedとかで検索したら出てきました。
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNGPSDKとか、DirectX SDKも無いと駄目なんでしょうか?
こんなのを作るならこれがいる、って情報を見つけれませんでしたので質問させてください。
コンパイラはBorland C++を使ってますが、VC++の最近出たフリーのやつもインストールしました。
Cに関する知識は
ttp://www.amazon.co.jp/exec/obidos/ASIN/4797306513/ref=pd_bxgy_text_2/249-2197940-1452313#product-details
↑の本を大体理解できてる程度なので、まだまだ初心者の域を脱せませんが、
足りない知識はコード書きながらでも勉強して補います。
0260デフォルトの名無しさん
NGNGスレ違い
0261259
NGNGここで大丈夫な内容だと思ったんですが…。
他あたって見ます。
0262デフォルトの名無しさん
NGNGこれくらいはマスターしろ
http://www.amazon.co.jp/exec/obidos/ASIN/477411328X/qid%3D1075418279/249-4232193-4290742
0263デフォルトの名無しさん
NGNGプププ
>>247
ゲラゲラ
main()
{
char (*const p)[1000] = (char (*)[1000])malloc(100 * sizeof[1000]);
p[20][30] = 'a';
free(p);
}
0264259
NGNG2冊目、ってのは考えてたんですが実際にアプリを作りながらでも良いかな?って思ってたんですよ。
甘いってことですね。
紹介してくださったのも含めて、本屋で立ち読みしてステップアップによさそうなのを探してみます。
0265デフォルトの名無しさん
NGNG>>247
0266デフォルトの名無しさん
NGNGおまえ、そーとー頭悪いんだな。
0267デフォルトの名無しさん
NGNGみたいだな
mallocの引数で脳味噌腐ったらしい
吊ってくる
0268デフォルトの名無しさん
NGNGwindowsの電卓プログラムみたいに、絵を出すにはどうすればいいか
さっぱりわからん。演算処理は自分でなんとかできそうなんで。
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG> ムリ
こいつかなり低能だな。
ろくにC知らないくせに、えらそうに答えるな ぼけ
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNGさすがに私はあれぐらいわかったが。
0273デフォルトの名無しさん
NGNGFILE *fp;
fp = fopen("test.txt","a+");
fgets(b,256,fp);
エラーで落ちてしまうのはなぜでしょうか?
char配列じゃないとダメ?
0274デフォルトの名無しさん
NGNGああん? 俺の環境じゃ落ちねえなあw
0275デフォルトの名無しさん
NGNGfp = fopen("test.txt","a+");
とかぜったいにかくな!
必ずif文の中に書け
0276デフォルトの名無しさん
NGNGfopenの返す値をちゃんとチェックするようになったら、
エラーの原因(fgets)のほうもおしえてあげる
0277デフォルトの名無しさん
NGNG// ぼけ
fp = fopen("test.txt","a+");
// とかぜったいにかくな!
/* 必ず */ if //文の中に書け
(fp)goto hell;
0278デフォルトの名無しさん
NGNG「*b」はどこを指すんだ?って話だ。
0279デフォルトの名無しさん
NGNGfp = fopen("test.txt","a+");
if ( fp == NULL ) {
;
}
とかじゃだめなの?
0280デフォルトの名無しさん
NGNGfgets(b,256,fp);
て感じ?
0281デフォルトの名無しさん
NGNGbを配列にね!
0282デフォルトの名無しさん
NGNGif (fp == NULL) {
/* ... */
}
だろ
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNGb=(char *)malloc(256);
か
char b[256];
でメモリ確保しようよ。。
0285デフォルトの名無しさん
NGNG0286273
NGNG0287デフォルトの名無しさん
NGNGhoge()と&hoge()とでどちらにするのが良いでしょうか?
どちらでも動くんですが、どちらかが正しいというのがあったら聞きたいです。
宗教的な話になってしまいますか?
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGCで使う分には問題にならないと思う。でもC++でメンバ関数を呼ぶときは&を
付けないとエラーになります。とりあえず&を付けとけば安全?
あんまり自信ないです。
0290デフォルトの名無しさん
NGNGだめ。ださすぎ
0291デフォルトの名無しさん
NGNG空白あけろ! ぼけ
空白あけるな! ぼけ
空白あけるな! ぼけ
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG空白あけろがひとつ足りない! ぼけ
0294デフォルトの名無しさん
NGNG猫でもわかるC言語
100回目通して来いボケが
0295デフォルトの名無しさん
NGNG0296295
NGNG本当に間違えた(;´Д`)くそうくそう
最強のボケは漏れ
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNGfseek(fp,length+5L,0);
この5Lってどっから出てきたの?
0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNG> これらをSEEK_SET, SEEK_CUR, SEEK_ENDという定数で 表すこともあります。
「も」ってなんだよ。普通そうするし、そうすべきだろ。Perlじゃあるまいし。
0301デフォルトの名無しさん
NGNGそれがどう関係してるやら…
0303298=301
NGNG0304デフォルトの名無しさん
NGNG> 最初の5バイトの所に レコード番号を記録するようにする
と書かれているから、そのレコード番号の次にファイルポインタを進めたいんじゃないの?
0305デフォルトの名無しさん
NGNGあ、なるほど…
orz
0306436
NGNG0307デフォルトの名無しさん
NGNGレコードならRだろ?
0308デフォルトの名無しさん
NGNGば〜か。
ジョーク書くならもっと面白いものかけ。
レコードならRだろうが。
0309デフォルトの名無しさん
NGNGびっくりした…
0310デフォルトの名無しさん
NGNGおすすめ「C言語辞典(辞書)」なんかあったら教えてくらはい
俺はこんなの使ってるぜーみたいなのあればよろしくお願いしますー
0311デフォルトの名無しさん
NGNGISO/IEC 9899:1999 - Programming Language C
0312デフォルトの名無しさん
NGNG変数に値を代入するとき、二進数の形で代入することは出来ないんでしょうか?
あと、
flgの値が0だったら-1、1だったら1を代入するというのを、
ifやswitchなどの制御文、除算、乗算などを使わずにするのはどうすれば?
0313デフォルトの名無しさん
NGNGひとつめは、できないとおもう。
ふたつめは、配列つかえばいいとおもう。
0314312
NGNG>ひとつめは、できないとおもう。
そうですか・・・ありがとうございます。
>ふたつめは、配列つかえばいいとおもう。
ビット演算とかでは無理でしょうか?
色々考えたんですが、思いつかなくて・・・やっぱり配列使うしかないですかね。
0315デフォルトの名無しさん
NGNGreturn ans[flg];
0316デフォルトの名無しさん
NGNGCだと伝統的には
宣言 int (*printf_ptr)(const char*, ...);
代入 printf_ptr = printf;
呼出 (*printf_ptr)("hello, world\n");
でしょ。
Cの関数については「アドレスを取る」ことと「呼ぶ」ことしか出来ないから
*だの&だのをつけたり付けなかったり*を何個つけても同じだったり
するけれど、&つけたりすると、ANSI以前のコンパイラだと動かないことが
あるかも知れない。まああまり自信は無いが。
0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNG何でそんなことしたいのかよく判らんが
answer = (input << 1) - 1;
でどうだ?
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG>変数に値を代入するとき、二進数の形で代入することは出来ないんでしょうか?
char *p;
long val;
val = strtol( "0101", &p, 2 );
>flgの値が0だったら-1、1だったら1を代入するというのを、
>ifやswitchなどの制御文、除算、乗算などを使わずにするのはどうすれば?
三項演算子と言う手もある
→val = (flg==0) ? -1 : 1;
0324312
NGNGおお!なるほど!思いつきませんでした。
今回は速度の面から配列を使うことにしましたが、
そういう演算の仕方は覚えておきます!ありがとうございます!
>>320
最初はメモリ節約のために、なるべく変数を減らそうとしていたんですが、
可読性は大事ですね。
0325デフォルトの名無しさん
NGNGn = (flg==0)?-1:1;
で十分
0326デフォルトの名無しさん
NGNGlong val;
val = strtol( "0101", NULL, 2 );
で十分
0327デフォルトの名無しさん
NGNG0328312
NGNGあー、なるほど。
strtolというのは使ったことがなかったので知りませんでした。
ここは本当に勉強になりますね。
他の皆さんもありがとうございます。・゚・(ノД`)・゚・。
0329デフォルトの名無しさん
NGNG>319のような計算に最適化してくれるけどな。
マシンコード的には他にもやりようが有るし。
それから本当に配列の方が速いかどうかは環境に拠るぞ?
0330デフォルトの名無しさん
NGNGWindows環境でマウスをちょろっと動かしただけで一体どれぐらいの
コードが動いてるかまじめに考えるとぞっとするぞ。
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG#include<stdio.h>
void roop(int i);
main()
{
int i=0;
roop(i);
}
void roop(int i)
{
while(1){
printf("%d\n",i);
i++;
roop(i);
}
0333デフォルトの名無しさん
NGNG何がやりたいんだ?
スタックオーバーフローするまで無限にネストするだけやんか
0334312
NGNGゲーム製作技術で訊くべきなのかもしれないのですが、
あちらは人が少ないですし、C言語ベースなので、こちらで訊かせていただきました。
メモリ節約、可読性、速度、全てを考慮しながらのプログラミングは難しいですね。
スレ違い話すみません。
0335デフォルトの名無しさん
NGNG高速化省メモリ化の定石はともかく可読性の高くちゃんと動くものを作ってから
遅い部分、メモリを食ってる部分を調査・改善していくこと。
今回の配列みたいに局所的な字面にこだわっても効果は上がらないよ。
高速化されるかどうかは実際に遅い部分を書き換えて実験して初めてわかることだ。
0336312
NGNG仰るとおりです。
初めから完成型に持っていこうとしすぎていました。
少しずつ少しずつ良い形にしていけばいいのですよね。
それでは本当にスレ違いなのでこの辺で。ありがとうございました。
0338デフォルトの名無しさん
NGNGどーでもいいがループのスペルはloopだぞ。
だからと言ってroopという関数を作ってはならない、ということには
ならないが。
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG「ほとんど」って時点でただの戯れ言に成り下がったな
ポインタが苦手な言語障害者による
定量的な評価ができないがゆえの勝手な決めつけにすぎない
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG保守性と可読性は確実に配列のほうが上だろ。
速度は配列のほうが最適化の余地が多いし、
多くのCPUには配列にアクセスするためのアドレッシングモードが存在する。
まあ、「だいたい」早くなる罠。
0343デフォルトの名無しさん
NGNG多々早くなる
しばしば早くなる
0344デフォルトの名無しさん
NGNG可読性、保守性、拡張性(笑)とかは配列のほうが上ってのは前提で、
速度に関してだけ。
単純な計算式である flg*2-1なら、その配列用のアドレッシング機構で
1命令で算出できてしまう(例: >>322)という最適化もあるよね。
この場合配列アクセスするよりまちがいなく速いかと。
もちろん処理系次第だが。
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNG一般的に速いといえるかどうかは分からん。
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNGだから、その「確実に」を証明しろよ
条件を特定しないあんた流に則って
ptrdiff_t Malloc(size_t);
char *p = 0;
ptrdiff_t i = Malloc(10 * sizeof(char)) / sizeof(char);
Strcpy(p, 0, "konnnamon", 0);
i = Realloc(p, i, 15 * sizeof(char)) / sizeof(char);
Strcat(p, strlen(p), "tukatterareruka", 0);
Puts(p, 0 * sizeof(char));
Free(p, 0 * sizeof(char));
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG言い切る根拠がないことを認めたわけだな
よっしゃよっしゃ
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNGcolor.cってファイル名はコンパイルできないんでしょうか?
できれば確認してもらえませんか、お願いします。
0354デフォルトの名無しさん
NGNGもう寝ろよ。
0355デフォルトの名無しさん
NGNGまってくれ・・・本当なんだ、お願い確かめてみて...orz
それとも下のプログラム間違ってます?
---ここから
#include <stdio.h>
int main(void)
{
printf ("hello!");
return 0;
}
---ここまで
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGBorland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
color.c:
Turbo Incremental Link 5.00 Copyright (c) 1993, 2000 Borland
C:\>
---
コレだけです。
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNGそれ以上何を期待してるんだ?
0360デフォルトの名無しさん
NGNGいやきっと>>357は
「コンパイルは正常に終了したよ。実行してね!」とでも出力して
欲しいのでは。
0361357
NGNGC:\>color
C:\>
0362357
NGNGコマンドプロンプトのコマンドにcolorってのがあるからでした・・・。
C:\>color.exe
hello!
とやればちゃんとできました。
変な事書いて不快にさせてしまったようで申し訳ないです。
0363デフォルトの名無しさん
NGNG途中まで笑って読んでたけど、最後のオチで笑えなくなった。
だって俺がそれにハマらないとは限らないから。
コマンドプロンプトで動かす簡単なユーティリティやテストプログラムをよく作るから。
0364デフォルトの名無しさん
NGNGハマるよね。
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNGcmd.exeとかのシェル内蔵のコマンドが最優先というだけ。
0367デフォルトの名無しさん
NGNGarray const* f( array* p ){ return p; }
このソースをコンパイルすると、
: In function `f':
:2: warning: return from incompatible pointer type
という警告がでます。
T* から T const* への変換なのですが、なぜ incompatible と言われるのでしょうか?
コンパイラは gcc (GCC) 3.3.1 (cygming special) です。
ちなみに、同じソースをC++としてコンパイルすると警告は出ません。
0368デフォルトの名無しさん
NGNG戻り値の型が違うから
そのままじゃん
0370デフォルトの名無しさん
NGNGパッと見の印象だけど、それは確かに解せないね。
const char *に char *を渡してもwarningはでない、んでしょ?
んなのでwarning出るようじゃlibcの多くの関数でwarning出まくっちゃうからね。
それと同じ変換だと思うんだけどね。
0371デフォルトの名無しさん
NGNGCFAQの11.10見てみ。
367は問題あるけど369は問題ない理由が分かるよ。
0372367
NGNG???
array const* は int const(*)[1] であり、 int const** ではないので、
その話とは違うのではないですか。
ためしに、
array const* h( array* p ){ return (int const**)p; }
こうしてみましたが、同じ警告がでました。
0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNGTへのポインタを、const Tへのポインタに代入することはできる。
ただし、このTはint型やdouble型はいいけれど、intへのポインタ型や
intの配列型とするといけない。
367の関数は、constなintの配列へのポインタに
intの配列へのポインタを代入できない。
369の関数は、constなintへのポインタに、intへのポインタを代入できる。
0375367
NGNG> ただし、このTはint型やdouble型はいいけれど、intへのポインタ型やintの配列型とするといけない。
「配列型とするといけない」という根拠はないのでしょうか?
int** から int const** への変換ができないという話なら、納得できます。
それと、ポインタと配列で結果は違います。
typedef int* pointer;
pointer const* i( pointer* p ){ return p; }
これだと警告は出ません。
0376デフォルトの名無しさん
NGNGひどい官製談合の日米半導体協定という国際協定を名目にした
半導体の製造と販売に関する悪事(主としてメモリのビット単価の維持と、日本がアメリカ製
CPUを買わざるを得ない数値目標の押しつけ)を取り決めた際の
担当者が、あの十和田雅子だった。
これがために、消費者は馬鹿高いメモリを買わされ続け、メモリ容量
の増大のトレンドカーブが人為的に凍結され、いつまでも16ビットアドレス
の枠をPCが超えられず、OS/2は製品として失敗し、日本の半導体メーカーは
談合で価格が保証されているので、経営のリスク感覚が完全に麻痺し、
技術開発への投資、特に技術系人間への投資が手薄になった。そうして
油断しているうちに、協定の範囲外だった韓国と台湾の台頭を許し、
マイクロプロセッサに関して言えば、TRON以外にも国産のCPUは
日本製メモリ製造の生贄として抑圧され、さまざまに阻害された。
インテル製CPUの輸入が減ると、アメリカ政府の強制した数値目標
が達成出来なくなるので、通産は米国政府といっしょになって、
メーカーのCPU開発を妨害し続けた。うまい思いをしたのは、
専ら通産省の役人である。半導体メーカーに大量に天下りをした。
そうして規制に過保護されて甘やかされた日本のメモリを中心とする
半導体メーカーは、内部から腐っていき、気がついてみたら、歩留まり
向上のノウハウはみな日本からインテルなどの米国メーカーに流失
してたし、経営陣はみんなで横並びで行動する習性が協定が廃止された
後も止まらず、いたずらにピッグサイクルを繰り返すばかりだった。
「十和田雅子」は「小和田雅子」の間違いと思われ。
0377デフォルトの名無しさん
NGNG適当なフォルダ作れ
0378デフォルトの名無しさん
NGNG自分で考えるのが好きなようだから、ヒントだけ。
「配列型への型修飾子は、配列型ではなく要素型への型修飾子として扱われる」
2、3日ゆっくり考えてみてください。
0379デフォルトの名無しさん
NGNGint array[tate][yoko] を確保するのに、
int **array; として、
tate と yoko を入力してもらって、
array = (int **) malloc(sizeof(int *) * tate);
for(i = 0; i < tate; i++)
array[i] = (int *) malloc(sizeof(int) * yoko);
と言うのは、正しいのでしょうか?
よく使ってしまうんですが。
0380デフォルトの名無しさん
NGNG←機械寄り 人間寄り→
実アドレス ポインタ 配列
これでも「証明しろ」なんて言うのなら主観評価実験が必要なんだが、
そんなことわざわざやりたくないし、やる必要も無いし、やる金も無い。
0381デフォルトの名無しさん
NGNG正しいよ。
0382デフォルトの名無しさん
NGNGやろうとしていることによる。
つまりポインタ配列が本当に必要で介在させているのか、
二次元配列が使えない未熟が理由の無能な醜態か、
口先では何とでも言えるが本音がどっちかによる。
因みに俺は[][]と**を混同したがる者を後者ではないかと強く疑う。
>>380
別にさー
機械寄りが嫌いな人にPGやれだなんて誰も頼まないだろ
心配するな、人それぞれ向き不向きがあるのさ
人間寄りが好きなら管理職でも目指したらどうだ?
あ、そうそう主観評価実験って官能検査のことか?w
0383デフォルトの名無しさん
NGNGポインタ配列が本当に必要な場合とは、、、
文字列の配列を作るときとか?
0384デフォルトの名無しさん
NGNGint tate = 10;
int yoko = 20;
int a[][] = malloc(sizeof(int) * tate * yoko);
これ、出来ないし。
0386デフォルトの名無しさん
NGNGそのtate, yokoは変数であるという条件ってこと?
少なくともyokoが定数でいいんなら >>247 式にできるが。
(tateが変数だとmallocの中の計算が変わるが)
C99だと変数でも
int a[tate][yoko];ができるのかな?
0387デフォルトの名無しさん
NGNGで、roopって何語だよ! ぼけ
0388デフォルトの名無しさん
NGNG何語だよ!
0389デフォルトの名無しさん
NGNGいいえ。ポインターのほうが読みやすいし保守しやすい
0390デフォルトの名無しさん
NGNGおまえの所属するプロジェクトに携わっているやつらはかわいそうだ。
時々いるよな。「こっちのほうが速い」とか言ってコードを保守不能にする奴が。
結局速くなったのは1nsとかで、セキュリティーホール満載に書いておいて、
「俺って出来るんだぜ、かっこいいだろ」って思ってるんだろ。
時代は抽象度をどんどん上げていく方向に進んでいると言うのに、悲しきCOBOLERだこと。
>>382
途中にconstとかvolatileとかがついている場合は必要だよね
あとは行間の入れ替えが多く発生する場合とか
0391デフォルトの名無しさん
NGNGできるにきまってるだろ! おまえCのセンスなさすぎ
0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNG変数と言っているじゃないか。
C99ならできるけど。
0394Error@MSN
NGNGそれとも別のものでしょうか?
0395デフォルトの名無しさん
NGNG別のものと思った方がいい。
0396デフォルトの名無しさん
NGNGCのサブセットがC#
Cと違って構造体が使えない。
0397デフォルトの名無しさん
NGNG別の物
0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNG> Cと違って構造体が使えない。
うそですね。
C#はむしろJavaの亜流
0400デフォルトの名無しさん
NGNG> 変数と言っているじゃないか。
だから変数でもできるだろ? おまえセンスねーな
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNGVB.NETにむしろ似てるな
0403Error@MSN
NGNGたとえば
ローカルでは
print "hello";
サーバーでは
print header;
print "hello";
のように。
0404デフォルトの名無しさん
NGNGCGIの仕様の話で、言語は関係ない。
0405Error@MSN
NGNGただ
printf("hello\n");
のようにすればいいのでしょうか?
0406Error@MSN
NGNG0407デフォルトの名無しさん
NGNGだからC99ならできると言っているだろうが。
たまたまお前の使っているコンパイラがC99に対応しているか、GCCみたいに独自拡張されているだけなんだろ。
0408デフォルトの名無しさん
NGNG標準出力へ、プロトコルにかなった文字列を吐き出せばいいだけ。
0409デフォルトの名無しさん
NGNG#include <stdlib.h>
int main()
{
printf("Content-Type: text/plain\n\n");
printf("QUERY_STRING = %s\n",getenv("QUERY_STRING"));
return 0;
}
0410デフォルトの名無しさん
NGNG保守できない誰かさん1人のために使用できる技術を限定されるチーム全員-1がかわいそうだ
ポインタ使ったからセキュリティホールだって? 興味深い新説だな(プゲラ
何度も言ってるだろ、抽象度が高いパートを担当したい人の職業選択の自由は尊重すると
誰かさんみたいに特定の職業を馬鹿にするような態度はとらないよ
途中にconstかあ
セルは書き換えオケーで行単位の書き換えだけ禁止ってことか
さっき抽象度とか言っていたようだが頭元気か?
0411デフォルトの名無しさん
NGNGポインターもtypedefするのはやめてほしい
0412デフォルトの名無しさん
NGNGいーや。Cならできる
0413デフォルトの名無しさん
NGNG空白あけろよ ぼけ。
0414デフォルトの名無しさん
NGNGポインタのtypedefは見つけると本当にがっかりするが
配列のtypedefはサイズを#defineするより合理的な場合があるぜ?
たとえばjmp_bufとかそーなってんべ
0415デフォルトの名無しさん
NGNG相手の人格にケチをつけることと、そいつの主張の間違いを指摘するのは全然別のこと。
人格を否定することを反論することだと勘違いしていたり、
いちいち相手の人格にケチをつけないと、そいつの主張の瑕疵を
指摘できないってのは情けないと思わんのか?いい年した大人がさあ。
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG打たれ弱いんだね
0418デフォルトの名無しさん
NGNG確認だが、
int tate = 10;
int yoko = 20;
のようにtate, yokoが変数の状態で
int a[tate][yoko];
とできるって話なんだけどな。
規格上、C99で初めてできるようになったんだが。
0419デフォルトの名無しさん
NGNGただぼけはぼけだと言っているだけなのだから。
0420デフォルトの名無しさん
NGNGなどの変数定義をプログラムの最初に書くのが一般的ですが、
プログラムの中ほどで定義するのは問題でしょうか?
よろしくお願いします。
0421デフォルトの名無しさん
NGNG古いコンパイラーではエラーになるかもしれない。程度です。
0422デフォルトの名無しさん
NGNGブロックの最初にまとめて書くひとが多いけど、そうしなくてもいいってこと。
関数定義の外だったら、まあ、古いコンパイラーでも、もともとどこに書いてもいいのだ
(使う前なら)
0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG{
int a, b;
a = b = 10;
printf("%d %d ", a, b);
int c, d;
c = d = 10;
printf("%d %d ", c, d);
}
なーんにも問題なし、常識です。
0426デフォルトの名無しさん
NGNGだからC99ならできると言っているだろうが。
たまたまお前の使っているコンパイラがC99に対応しているか、GCCみたいに独自拡張されているだけなんだろ。
0427デフォルトの名無しさん
NGNGは?
> だからC99ならできると言っているだろうが
こいつばか
0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNGそんなのはCでできないよ。
C89ならできるが? たまたまおまえの処理系がそれに対応してるだけだろ?
Cの話題をしてるんだよ!
0432デフォルトの名無しさん
NGNGインクリメントの前置き?
そんなものはCでできるわけねーだろ?
そりゃC79ではできるかもしれんが、そんな特殊な話をしてんじゃねーよ!
たまたまおまえの処理系が拡張されてるだけだろ?
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNGC69ならできるかもしれないが、おれはふつうの体位でしかやらん!
0435デフォルトの名無しさん
NGNG標準規格のCにきまってるだろ! ぼけ
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNGセンスはセンスだろ。わざわざ日本語に訳さないといけないのか?
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGつまらない。
0440デフォルトの名無しさん
NGNG0441390
NGNGふぅ・・・。いつのまにか漏れはポインタを使えない人間になってるんだなぁ。
あなたの主張ではポインタはできる限り使わないって主張する人はポインタが使えない人なのね。
じゃあgotoは使うなって主張した人はgotoが使えないのでしょうか。(怖くて使えないとか?w)
>誰かさんみたいに特定の職業を馬鹿にするような態度はとらないよ
いつ誰が馬鹿にしたんだよ…。保守性が高いって言っただけだろ。
>セルは書き換えオケーで行単位の書き換えだけ禁止ってことか
そうだね。セルだけを処理対象とする関数の引数はそういう型を使うだろうね。
結局あなたは自分の弱いところを言っちゃってるんだよね。ちゃんと理解できてるじゃん。
最初にキミはポインタが使えない言語障害者がどうのこうのとか言ってたよね?そういうこと。
0442デフォルトの名無しさん
NGNGおまえCのセンスなさすぎ
0443デフォルトの名無しさん
NGNGいつのまにかじゃなくて、最初からそうなのでは? ;)
> じゃあgotoは使うなって主張した人はgotoが使えないのでしょうか
そうです。
0444390
NGNGそりゃあ漏れだってポインタをがりがり使って最適化したこともあるさ。
とある組み込み系のプログラムでね。
でもそれが保守性が高いなんていえないと思うがね。
不思議なんだけど、何でこういう主張をするとポインタが使えない人になるの?
0445デフォルトの名無しさん
NGNGあなたは無能ですね ;)
0446デフォルトの名無しさん
NGNG当然なるだろう。
そんなことで保守性はさがらないのに(むしろあがる)、そんな主張をするってことは
ポインターがちゃんとわかってない証拠。
if (a == 0)
b = 0;
じゃなくて、
if (a == 0)
{
b = 0;
}
にしろとか主張するやつは、if文使えないひとです。
0447デフォルトの名無しさん
NGNG> if (a == 0)
> {
改行するなぼけ
0448デフォルトの名無しさん
NGNGそれってつまりそのひとはif文使えない人ってことでしょ?
それと同じぐらいあなたは「ポインター使えない人」なんです。
0449デフォルトの名無しさん
NGNGバカにされたとおもって粘着暴れするのでは?
めくら、や、つんぼ とおなじ。
ちゃんと「ポインターに不自由な人」といいなさい。
0450390
NGNG言っておくけど漏れは特定条件でのgoto使用容認派だぞ。
だから何で例に挙げた主張を漏れの主張と捉えるの…。
>>446
ついにコーディングスタイルにまで口出しですか…。
もういいです。はい。さようなら。
0451デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNGちっとも「ついに」ではないですね。
ようするに、gotoがなぜいけないか、どういう場合はOKかがわかってないやつほど
「goto使うな」というのと同じ。
ふつうは言わない(いわなくてもめったに使う用事でてこないので)。まっとうな人間なら、
たまにだれかが不適切なgotoを使っているのをみかけてとがめる場合でも、
「gotoはつかうべきではないから」という本末転倒の言い方はしない。
ポインターと配列についても同じだな。それらをちゃんり理解していれば、
どっちかにかたよることはありえない。
0454デフォルトの名無しさん
NGNGそれとは別に書いてある内容が問題
まぁ、読みにくいのを書いてる側も能力低し
読む側に能力を求めるのは間違ってるし
0455デフォルトの名無しさん
NGNG話なの!
中括弧の位置や空白のあけかただけが「コーディングスタイル」だと思ってるやつは おおぼけ!
0456デフォルトの名無しさん
NGNGお前頭悪すぎー
0457デフォルトの名無しさん
NGNGいいえありません。
まぬけな人間の「よみやすい」にあわせるとろくなことはない。
0458デフォルトの名無しさん
NGNGその通りだ。
ひらがなだけのぶんしょうがよみやすいとしゅちょうしてるひとにあわせるのはまったくいみがない
0460デフォルトの名無しさん
NGNGgotoは多重ループを抜ける時なんかには使った方がいい。
それをgoto以外で実装するとなると、flagたてなきゃならんくなって読みづらい。
0461デフォルトの名無しさん
NGNG漏れはおまえの言っていることに大賛成だが、
おまえがここでgoto論争を開始しようとしていることには大反対だ
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNG>改行するなぼけ
>>447 = 改行が使えない人
0465デフォルトの名無しさん
NGNGそんなものはない。
コーディングスタイルは、コーディングスタイルの意味しかない。かってに狭義をつくるなよ ぼけ
0466デフォルトの名無しさん
NGNG0467お
NGNG良いのでしょうか?昨日書店で、Hなんとかマイコンの解説本を最初だけ
読んで見たんですが、面白そうなんです。
0468デフォルトの名無しさん
NGNGC言語で文法覚えたんだけど、次、ジャバアプリケーションの勉強やるのは
いかほどでしょうか??ネットワーク系にあんまり興味ない自分なんですが。
0469デフォルトの名無しさん
NGNG>>310
好きにしろ。
312 :デフォルトの名無しさん :04/05/15 16:46
>>310
べつにネットワークじゃないことやればいいんじゃない?
0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG空白あけるなぼけ
0473デフォルトの名無しさん
NGNG0474お
NGNG0475お
NGNG0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNGえー !? 「言語」はぜひやめてくれ。
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNGfgetpos()でおぼえておいて
fsetpos()で戻る
のが正しいやりかた、のはず。
「行」と言うからにはテキストを扱ってるんだろうが、
テキストとバイナリの区別があるシステムでテキストモードを
使ってる場合は、fseek()は要注意。
0481デフォルトの名無しさん
NGNGでたー
「訳に立たない本を読んだあと症候群」
そんな質問をするってことは、「けっきょく身になってない」証拠よ。
0482デフォルトの名無しさん
NGNG1行読む前に場所を覚えておく。
pos = ftell(fp);
fgets(buf, sizeof(buf), fp);
fseek(fp, SEEK_SET, pos);
0483デフォルトの名無しさん
NGNG○ 身についていない。
○ 実になっていない。
0484デフォルトの名無しさん
NGNGそうでなくてもreadとwriteの間はseekを挟め!
っていうか、テキストファイルをいろいろ扱うのに、fseekなんか使おうっていうあたりでだめだめ。
そんな「いちばんだめなほうほう」をだれがおしえた? まさか本か何かに書いてあったとかいわないよな?
もしそうなら、本の名前言えよ! どうかんがえてもそれは「ダメ本」だ。
ダメ本リストに追加しなきゃいけないから、早く本の名前言え!!
# FYI: 通常は連結リストを使います。
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNGfgetpos/fsetposを使えよ。
0487デフォルトの名無しさん
NGNGいや、巨大なファイルを扱う可能性があるページャのようなものを
作ろうというのであれば、行リストを作っておいてfseek()で
ページングしようとするのは素直な発想だと思いますですよ。
0488デフォルトの名無しさん
NGNGfseekやftellを、fgets/fputsや、fgetc/fputcとは「絶対に組み合わせるな!」という
王道を小学校でおまえは習っていないのか? だめすぎ。
0489デフォルトの名無しさん
NGNGお前何も分かっていない。だめすぎ。
0490デフォルトの名無しさん
NGNGNODE *prev;
NODE *next;
size_t pos;
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNGへんな空白あけるな ぼけ
0493デフォルトの名無しさん
NGNGFYI (For Your Information)【エフ・ワイ・アイ】
最終更新日: 2002/04/19
「for your informaion(参考までに)」という意味を表す略語。ちょっとしたお知らせや、メモのような情報を伝える場合に使われる。
例えばメールの件名の文頭に「FYI:今週の新刊情報」などのように付け、非常に重要というわけではないが、
知っておくと有用な情報などを伝えたりする
Copyright (C) 2000-2003 Digital Advantage
だってさ。
0495デフォルトの名無しさん
NGNGftell/fseekと
fgetpos/fsetposの違いっていうか、使い分け方をわかっていなさすぎ!
脳味噌たりなさすぎ!
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG>>488
freadもfwriteもfgetcもfputcもfgetsも低レベルのread/writeと
違うセマンティックス持ってる点では同じだろ。ユーザがfreadに
1バイト読めと指示しても、stdioはBUFSIZ分は読もうとするから、
これは結局getc()と同じことになるんだぜ。
それと、はずかしいからfrwiteはやめれ。
0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG反省せよ。
0504デフォルトの名無しさん
NGNG○口の利き方
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNGfseekもfgetposも基本だろ!
0507デフォルトの名無しさん
NGNG聞いてどうする! ぼけ
0508デフォルトの名無しさん
NGNGれ で す
れ
0509デフォルトの名無しさん
NGNGむしろfgetcと同じだろ。
それに、たまたまバッファリングのことしってたから知ったかぶりしたかったんだろうけど、
この話題とバッファリングするかどうかはまったく無関係。
むりに自分の知ってる知識(しかも狭い!)に話をつなげようとする姿がみっともなーい!
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG必要ないもん。
そんなん必要になるプログラムなんて、設計が糞。
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNG「そんなん必要になるプログラムなんて、設計が糞」
と言いきるかね。
いや確かにgets()とかはいらないが……
むしろ、fseek(), ftell()よりはfgetspos(), fsetpos()だろ。
0517デフォルトの名無しさん
NGNGなら「何が問題」なのか話してみてごらん、おじさん聞いてあげるから。
0518デフォルトの名無しさん
NGNG> 「そんなん必要になるプログラムなんて、設計が糞」
> と言いきるかね。
getsとscanfに関してはそうだな ;-)
っていうか、いまどき「ANSI」とか言うほうがよほどはずかしい。ANSIのどれだよ!
0519デフォルトの名無しさん
NGNGビル君の環境にはテキストモードってのがあったんだね。
もう20年も使ってないからそんな環境のことは忘れてたよ。
0520デフォルトの名無しさん
NGNG516ではないけれど、言うと思った。
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNGアスキーで日本語化されたやつね。
0523デフォルトの名無しさん
NGNGそれよりもなによりも標準関数ではなく、Latticeから引き継いだ、
int86関数とintdos関数が好きでした。
特に前者は、LIBRARY関数のクセに自己変更コードになってるあたりが
そそりますよね。
0524デフォルトの名無しさん
NGNGいいえ。日本語化などはされませんでした。
日本語文字はもともと通るし、逆に、「ソ」や「表」が文字列にあると化ける現象は
そのままでしたから、オリジナルのままです。
0525デフォルトの名無しさん
NGNGfgetpos(), fsetpos()は、UNIXのストリームモデルに沿ってないシステムの
ために後で追加されたインタフェースだからな。
ま、非常に単純な処理以外のことをやりたいんなら常にバイナリモードを使う
ってのも手だ。というかそっちのが個人的には健康によろしい。
0526デフォルトの名無しさん
NGNGマニュアルがね。
0527デフォルトの名無しさん
NGNGあれを訳したのは俺だ!
0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNGその後、仕事がMSに移ってからは訳したのは某氏らしいがな。
0530デフォルトの名無しさん
NGNGセンスないな
0531デフォルトの名無しさん
NGNGコンパイラも絶対必要なのか?
0532デフォルトの名無しさん
NGNGインタプリタなら必要ない。
0533デフォルトの名無しさん
NGNGもう20年も前だよ…
TurboCはお茶も飲めないのにMSCはカップラーメン作れたなぁ。
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNGたいしたこと無い青春だったけど、現状よりはましだったから。
0536デフォルトの名無しさん
NGNGまさに一瞬で実行できた。
0537デフォルトの名無しさん
NGNG止まったようだが?w
0538デフォルトの名無しさん
NGNG>じゃあgotoは使うなって主張した人はgotoが使えないのでしょうか。(怖くて使えないとか?w)
ピンポン、正解
使うかどうかの判断ができないアフォほど教条主義的に金切り声でわめくのさ
>いつ誰が馬鹿にしたんだよ…。
え? おまえ自覚なかったの??
まあそうでなきゃ、あれだけの暴言吐いといてとぼけ通せるとは思ってないだろうな
>そうだね。セルだけを処理対象とする関数の引数はそういう型を使うだろうね。
ばーか、使わねーよ
mallocからどうやって代入すんだよ?
初期化でもするつもりでいたのかこのカスは (核爆
んで
>ふぅ・・・。いつのまにか漏れはポインタを使えない人間になってるんだなぁ。
太古から :-p
0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNG0543デフォルトの名無しさん
NGNG神仏とかワケワカ言ってる
香具師には言われたくないなw
0544デフォルトの名無しさん
NGNG最初から一行づつ読み出し、消したい行だけスキップしてテンポラリファイルに書き込み
もとのファイルを消し、リネームして終わり。
0545デフォルトの名無しさん
NGNG熱い
0546542
NGNG0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGこの馬鹿VBスレにも同じこと書いてるよ。(あっちではシカトされてるが)
しかしんなことして何が楽しいのかねえ。。まともじゃねえな。
0549デフォルトの名無しさん
NGNGどうしたらいいんですか?
0550デフォルトの名無しさん
NGNGCでどーやってグラフを作成したのか説明しろ。
エクセルに出力、を説明しろ。
0551デフォルトの名無しさん
NGNG0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNGだーかーらー、連結リストにしろ! って何度も言ってるだろ! ぼけ
話をきいてないから、そういうぼけなことを言うはめになる。
0554デフォルトの名無しさん
NGNG0555555
NGNG0556デフォルトの名無しさん
NGNG「作ってわかるCプログラミング」/技術評論社
P311: 10.2 行データの追加や削除
P327:
p = c->next;
c->next->prev = c->prev;
c->prev->next = c->next;
free(c->buf);
free(c);
return p;
0557デフォルトの名無しさん
NGNGこれ、端のあるリストでしょ?
ポインタのチェックぐらい汁
if(c->next) c->next->prev = c->prev;
if(c->prev) c->prev->next = c->next;
0558デフォルトの名無しさん
NGNGいいえ「そういうださいことはまっとうなプログラマーはしない」そうです > 教科書によると
つまり「端はない」ので、
そういう不細工なチェックは必要ないんです。
0559デフォルトの名無しさん
NGNGstatic LINE list = {&list, &list, NULL};
これが「行がない」状態。
0560デフォルトの名無しさん
NGNGそんな「端のない」ようにやるのは、常識中の常識だろ!
そんなんはだれでもしってんだよ! えらそうに言うんじゃねー!
基礎の基礎だ!
0561デフォルトの名無しさん
NGNGそんな基礎さえしならいひとも約1名いたようですが ;-)
0562デフォルトの名無しさん
NGNGnp->next = c;
np->prev = c->prev;
c->prev->next = np;
c->prev = np;
return np;
いかにもCらしいコードというか、Cのポインターの本領発揮! という感じの
プログラムって、こうじゃなきゃ! っていうノリの典型っていうかんじー
よね。
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNGチェックしたり、
最後の1行を削除するときだけ特別な処理をしたり、
最初に1行足すときだけif文が1つ必要...な設計は、たしかにダサイよね。
0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG本の名前も出版社も書いてあるだろ? ろぐ嫁!
0567デフォルトの名無しさん
NGNGその本は怖いので(^^;
それ以外の本で、ひとつよろしく(^^)/
0568デフォルトの名無しさん
NGNGねーよ!
まともな計算機科学の入門書にならあるが、おまえのほしがってるのは、
Cのへぼい初心者用の本でってことだろ? だったら、そこに名前が出てたvoid本以外では
みたことないな。
> その本は怖いので(^^;
どこがこわいんだよ! あんなへぼい本。しょせん初心者本だぞ?
0569デフォルトの名無しさん
NGNG著者名が! ;-)
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG先頭や最後の行を削除しようとしたら access violation か。
おめでてーな。
こんな輩が現場に紛れていることを考えるとゾッとするね。
0573デフォルトの名無しさん
NGNGバイナリに変換するプログラムを作ろうと思い、
いろいろ探していたら、過去に他人が作ったプログラムが見つかりました。
しかしながら中身がいまいち理解できません。
1文字目は(対象文字 - 0x37) << 4
2文字目は上記よりシフトを抜いて処理。となっていました。
シフトしてるのはわかるんですが、なんで0x37でひくと
うまく処理できるのかわかりません。
入力できるのは00−FFまでの255パターンと限定してるので
0x37でひくのに意味があるのかなと思っているのですが、、
どなたかご教示ください<m(__)m>
ほかにこんな方法を使うともっといいというのがあったら重ねてお願いいたします。
0574デフォルトの名無しさん
NGNGもっとも a-f や A-F では別の値を引かねばならないが(w
0575デフォルトの名無しさん
NGNGinclude <stdio.h>
int main()
{
func(){puts("a");}
func();
retun 0;
}
これgccでコンパイルしたら通ったんだけど、
こういう関数内関数ってANSI準拠?
0576デフォルトの名無しさん
NGNGとおんねぇYO!!
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNGint main()
{
int func()
{
puts("FUNC");
}
func();
return 0;
}
0579デフォルトの名無しさん
NGNGgccの拡張。
>>573
例えば'A' - 0x37 は、10になる。恐らく、'0'-'9'のときは0x30引いてるんだろ。
0580デフォルトの名無しさん
NGNGやっぱマのひとって実際に会うとみんな目立たないけど良い人なんだよね。
0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG> おめでてーな。
こいつ頭わるすぎ。こんなのがまぎれてる現場とかも、たまにあるんだよねー。
幸いいまのところはいないが。
0583デフォルトの名無しさん
NGNG二進数で入力された値をintegerにする関数作りますた
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1084589792&res=2
にはってあります。
ちょっと改造すれば>>312さんの要望を満たすと思います。
ただ、32bitで入力してMSBが1のとき負数表示されてしまいます。
よかったら原因をおしえてください。
0584デフォルトの名無しさん
NGNG>>326 があるのにわざわざ作ったのか。
負数になるのは "%ld" だから。符号つきlong int指定じゃん。
あとなんでwhile(1)を2重にしてるんだ? breakでもループ先頭に戻すためとか
コメントついてるが、 continueでいいじゃんか。
0585583
NGNG「新C語入門 ビギナー編」という本を買ってきて初めて作った関数なんです。
continue文の使い方を知りませんでした。
んで、誤った操作をした時にどうやったら最初に戻れるかを考えていて、
whileで2重ループにしてbreak使ったらいいじゃん!
って思いついたんです。
0586デフォルトの名無しさん
NGNGオレの知ってる限り、初心者入門本で、連結リストをわかりやすく解説しているのは
この2冊だけだ。
『作ってわかるCプログラミング』日下部陽一/技術評論社
477411328X (2001/11) 2,289円
『C言語データ構造とアルゴリズム―配列とリストの処理で学ぶプログラミング手法』手塚忠則/カットシステム
487783091X (2003/10) 2,310円
0587デフォルトの名無しさん
NGNGそういうクソ本でおぼえるから、そういうおかしなコード書くようになるんだよ! ぼけ
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNGできるだけ大勢の、色んな香具師のコードを見ろ
スタイルも癖も知能程度も玉石混交だが
異口同音に言わんとするところが見つかるはずだ
他人から教わることなどその程度と心得ろ
どちらかと言うと、嫌いなタイプでも大抵の香具師の
コードに付き合ってやれる対応力を鍛えておけ
それ自体が貴重な資産だし、善悪の垣根を越えて
技術を盗みかき集めることにもなる
0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNG正直、うざい。
0592デフォルトの名無しさん
NGNGもうおわかりとおもいますが、このスレ常連程度のレベルでも君を罵倒する
には事欠かない知識が得られる。
真面目な君なら、そういう(>587みたいな)低レベルな人間程度の知識はすぐ
に得られますから、へこまず、頑張って下さい。
プログラミングは、もっと知的で、楽しい。あなたのようなチャレンジの
積み重ねこそが重要なんです。
0593デフォルトの名無しさん
NGNGいや、クソ本は何冊買ってもだめなものはだめ。
いい本は1冊で十分。
ようすに冊数は無関係だということだ。
0594デフォルトの名無しさん
NGNGああ、これはウソ。だめなコードは(少なくとも初心者のうちは)みないほうがいい。
最初のうちはとにかく、いいのだけをみろ。いいのが少なければ、べつにすくなくてもいい。
本物だけみて育てば、にせものはぱっとみでわかるようになるが、
数ある偽物をいっぱいみたところでセンスはそだちません。
江戸時代の両替商の子供は、赤ん坊のころから、本物の小判をおもちゃが代わりに
育てられます。ずっと本物の手触りに親しんで育つと、大人になって偽物小判は
触るだけで、もしくは臭いだけで一瞬でわかるようになったそうです。
逆に、数ある偽物小判もふくめていろいろ最初のうち触ってると、けっきょくセンスは
そだたないそうです。
キタナイコードは実務になればいくらでも見る機会はあるんだから、ある程度しっかりした
センスがそだってから見ればいい。
0595デフォルトの名無しさん
NGNGなにごとにつけ、そういう無謬性の信奉というのは却って大きな無知に捉われている場合が
ほとんどですので気をつけて下さい。
本は、あくまで本です。字面だけでなく、読む人のそのときの認識や環境など、全てがひとつ
となって知識を形づくるのです。ましてや、全てにおいて妥当な内容の本など、ないと思った方が
正しいでしょう。
0596デフォルトの名無しさん
NGNG正直、うざいぞ ぼけ
0597デフォルトの名無しさん
NGNGけっこう多いね。ようするにふだんからダメ本しか見てないから、
「せいぜい良くても部分的、すべてにわたって'よい'本など存在しない」なーんていう
まぬけなことを思うようになるわけだな。
0598デフォルトの名無しさん
NGNGまっとうな現場で働いている人だったら、あり得ない。
0599デフォルトの名無しさん
NGNGC++ぐらいになると一冊じゃ足りない気がするな。
0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNGようするに石田晴久のウンコ訳はハナから無視、と(w
0602デフォルトの名無しさん
NGNGまあ、begin と end を繋いでも出来ないことは無いけど。
0603デフォルトの名無しさん
NGNGふつうつなぎません。おまへはバカか?
かつ、端も作らない。
常識!
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNGここまでヒントを書いても、(というか以前の発言でほとんどコードまででてるのだが)
まだ理解できないのか?
初心者本でも出直してこいよ!
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG最初に1行つくるときに条件判断が必要になるだろ! ぼけ
それぐらいわからんのかよ。
端をつくらないってのが、どういうことかまだわからんのか?
0609デフォルトの名無しさん
NGNG0610デフォルトの名無しさん
NGNGstd::listはdouble linked listでかつイテレータ対応ね。
0611デフォルトの名無しさん
NGNG横から口出して悪いかもしれんが、私答えかいていい?
いつまでもやられてもうっとおしいので。
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNG× うっとおしい(←変換できない)
○ うっとうしい(鬱陶しい)
答えるのは歓迎(笑)
0614デフォルトの名無しさん
NGNGケチつけるんだったら、教えてあげません。
0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNG日本語勉強してから来い
0617デフォルトの名無しさん
NGNG>>556みたいなので削除ができて (1行めや最終業でも特別あつかいせずに)
>>557 みたいなので追加ができればいいんだろ?
>>562 みたいな間抜けなif文いれなくてもすむような構造ってわけだ。
おれはCとか詳しくないし、この答え知らなかったが、考えたらすぐわかったぞ?
おまえら頭悪すぎるのでは?
先頭と末尾をつなげれば「先頭」や「末尾」を扱うときに特別扱いはほとんどしなくていいが、
それでも、最初に1行を追加する場合や、最後に残った1行を削除する場合に特別扱いが生じて
しまうので却下。
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNG直訳っぽいし。そもそも英語でもいまはその言い方しない。
0620デフォルトの名無しさん
NGNGまさかそんなことで引っ張っているわけ無いよな。
0621デフォルトの名無しさん
NGNG今は何て言うんですか?
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNGもったいぶるから、なんか他にあるのかと思っちまった。
0624デフォルトの名無しさん
NGNGまだ1行も行を読み込んでいない状態と、
すべての行を削除したあとは、まあ同じ状態ですが、
その状態がリスト上でどう表現されているか
0625デフォルトの名無しさん
NGNGこれと
> くだらん、そんな事で優越感に浸っていたわけか。
これは、
かなりまけおしみっぽいっていうか、ガキのいいわけっぽくてはずかしいよね。
0626デフォルトの名無しさん
NGNG「わざわざ言うから、もっとむずかしいのがあるのかとおもったよ!」
とかいうあまりにも恥ずかしいいいわけを書きそうなやつらだ ;-)
0627デフォルトの名無しさん
NGNGお前も今最高に恥ずかしい。
0628デフォルトの名無しさん
NGNG予想をうらぎらない人たちですね...。
なんでこういう人って、「おやくそく」に律儀なんだろう (^^;
0629デフォルトの名無しさん
NGNGかかなくてよかった。
0630デフォルトの名無しさん
NGNGなんで、そんな基礎の基礎を知らないやつがえらそうにかいてるんだよ。
0631デフォルトの名無しさん
NGNGいったもん勝ち、否定したもん勝ち。
自演と区別もつかないから反論ととかしても意味無いし。
反論するも反論に反論するも、アホ。
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNGバカがバカさらすのはともかく、意味無く煽るやつは減るだろ。
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNGで、その2冊以外におすすめはないでしょうか?
連結リストで。
あ、Cでおねがいします。C++は使いそうにないので。
0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNGその2冊じゃあなんでダメなんだ?
0639デフォルトの名無しさん
NGNG本読んだって書いてあることは大して変わらん。
自分で行き詰まりながら解決していくのが一番勉強になる。
0640デフォルトの名無しさん
NGNG> 本読んだって書いてあることは大して変わらん。
何とくらべて「たいしてかわわない」のでしょうか?
自分で書くために、参考になる本がほしいのですが?
0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNGっていうか、とりあえずその2冊のうちどっちか買って試してから、きけばいい! と
いってらればいいじゃん。
で、おまえならどっちをより薦めるよ?
0644デフォルトの名無しさん
NGNGどの本を読んでも大して変わらないって事です。
>>641
ま、反論しても意味無いからな。
お前の行為もただの妄想だということに気がついてな。
0645デフォルトの名無しさん
NGNGおまえの本には載ってないのか?
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNGで、それを検証していけばいずれ正解に辿り付く。
他力本願イクナイ
0648デフォルトの名無しさん
NGNGでも、ここかなりレヴェル低いぞ。
いいかげんなこと書くやつ多いし。
それとくらべて本も「おなじようなもの」だと本気で思ってるやつは、
きっと、ふだんろくな本を読んでいない証拠だ!
わたしの意見としては「まっとうな本」を読んで、自分でコード書いてためせということだ。
2chなんか読んでちゃだめ。
0649デフォルトの名無しさん
NGNGいい加減、見苦しくなってきたぞ。
0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNGどこから「ばかりにたよって」なんていうのがでてきたんでしょうか?
連結リスト、なんてのはならわないと知らなかったわけです。
自分で試すのは「とうぜん」やっているわけで、何をどう試すかの基本的な知識
の参考になる本がほしいのです。2chではさすがにだめそうなので(かなり
知ったかぶりの人が多いし)
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG試してどうだったの?
0655デフォルトの名無しさん
NGNG0656デフォルトの名無しさん
NGNG何がダメで何がいいのか大体分かってくると思うがな。
0657デフォルトの名無しさん
NGNGグラフの半順序集合のトポロジカルソートとかは学習したのか?
b-treeやバイナリーtreeを配列で実装するほうほうは学習したか?
JavaやC++はそのへん楽できるから逆に仕組みを理解しないままクラスを使っちゃう
やつもいて、いまそいつらのせいで困っているところだが、
Cの場合は、自分で勝手にへんな構造を作り出すやつがむかしいたなあ。
まあ、ああならないためにも、基礎の学習はがんばってくれたまえ。
0658デフォルトの名無しさん
NGNGだからそのための参考書がほしいのです。
0659デフォルトの名無しさん
NGNGwebで「連結リスト」を検索して、それみて書いてみるだけでもいいと思うけど。
最初から正解を書こうとしないで色々やってみるんじゃダメなの?
0660デフォルトの名無しさん
NGNGなぜ本じゃだめなのですか? webや2chのほうがいい?
0661デフォルトの名無しさん
NGNGそれと同じことを本でやろうと思っているだけなのですが。
なんで本だと「最初から正解をもとめる」ことになっちゃうんでしょうか?
ふつう本を読んでそれを参考にあれこれ自分で試すわけだよね?
なんで本だとだめなの? webや2chだとなんでいいの?
0662デフォルトの名無しさん
NGNGいきなり正解を覚えるよりは勉強になる、という考え方も出来なくは無い。
0663デフォルトの名無しさん
NGNGあなたの財布がへるわけじゃないでしょ?
> いきなり正解を覚えるよりは勉強になる、という考え方も出来なくは無い。
だからなんで本だと「いきなり正解」なんでしょうか?
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNG2chはレベルが低くて玉石混交だから。
少なくとも専門書籍のほうが正解までの道のりは簡単だと思うよ。
ちがう?
0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNGこのスレ的には実際にやってみて分からない部分を聞いてくれればいいんだが。
0668デフォルトの名無しさん
NGNGどうしてですか? 「正解」なんていうものがあるわけじゃなく。
本はただの参考にするものでしょう。
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNGだからやってみたいので、参考書を教えてください。
0671デフォルトの名無しさん
NGNG本の話題は推薦図書のスレへどうぞ
0672デフォルトの名無しさん
NGNG失態をごまかすために、話題をそらそうと暴れているように見える ;-)
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNGなるほど。
0676デフォルトの名無しさん
NGNGdoublyなふつうの連結リストを与えて、
それを「ソーティング」するにはどうしますか?
たとえば、Cの標準関数のqsortを使いたいのですが、その場合のやり方を教えてください。
0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNGどうしてもqsortじゃないと駄目かね(笑)
0679デフォルトの名無しさん
NGNGようするに「簡単に」やるほうほうが知りたかっただけです。
qsortでは無理なんですか?
0680デフォルトの名無しさん
NGNG標準関数のqsortは配列に対するポインタ操作を前提としているから、普通にやったら無理。
リストはデータ構造が違うから。
0681デフォルトの名無しさん
NGNG無理。qsortは配列相手の交換処理を中でやってしまってるから。
doubly linked listはその交換処理が違うからね。
素直にquick sortを別途実装するしか。
0682デフォルトの名無しさん
NGNGそれにqsortって中味はquick sortじゃないですよね?
で、qsortを使わなくてもいいので、
やり方の概要を教えてください。
0683デフォルトの名無しさん
NGNGC ソート アルゴリズム
とかでググれば色々でてくる
0684デフォルトの名無しさん
NGNG(2) qsortに食わせる
(3) リストを再構成する
じゃだめ?
0685デフォルトの名無しさん
NGNGソート自体はね。
交換部分だけリンクリスト用に直せば良い
0686デフォルトの名無しさん
NGNGいいえ、googleでは1件もみつかりませんでした > リストのソーティング
0687デフォルトの名無しさん
NGNG色々問題はあるがそれでも出来る(笑)
0688デフォルトの名無しさん
NGNGは、リストが何であるかさえわかっていない低能。
なのに、話題に参加したいぼけ
0689デフォルトの名無しさん
NGNGC++使えば?
もしくは、STLのソース見て std::list::sort 辺りを参考にするとか。
0690デフォルトの名無しさん
NGNGどんな問題があるか教えてください。
また、リストを直接ソーティングするのとどっちが速いですか?
0691デフォルトの名無しさん
NGNGC++だとリストもソーティングできるのかー
でも、C++を使いたいわけではなく、
Cのリストのあつかいを学習したいのです。
0692デフォルトの名無しさん
NGNG回りくどいし、メモリを倍使う。
0693デフォルトの名無しさん
NGNG速度的にはどうですか?
0694デフォルトの名無しさん
NGNG行のテキストの内容の部分まで2倍にもつわけじゃあないから、
メモリー的にはたいしたことないはず。
0695デフォルトの名無しさん
NGNG0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNG回りくどくはないだろ
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNG配列構造でデータ操作効率を上げるのに苦労する香具師も居る。
適材適所ってだけの話なんだがな。
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG>>680 や >>612 のような
「常識だから」端を作らないとか
特定の解答を論点先取するような
アドバイスは聴く(≠聞く)のは構わんが
発言者の知能程度には懐疑的でいろ
アルゴリズムが適切か不適切か判断するには証明か反例が必要だし
性能的に有利か不利か判断するには実測が肝心だ
バブルソートだって分野によっては速いことがあるし
端の処理が例外になったら何が悪いのかを説明もせずに
公理のように振りかざしてくるインチキ論法に騙されるな
真面目に設計する気持ちまでからめ取られたら元も子もないぞ
0702デフォルトの名無しさん
NGNGぼけ
0703デフォルトの名無しさん
NGNGぼけ
0705デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNGだから、STLはソースの中身見れるから、リストのソートのコードも読める。
参考にして勉強したら?
0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNG意味不明
Cコンパイラーの事か?
そりゃいろいろあるよ。
0713デフォルトの名無しさん
NGNGlist_add()
list_for_each()
list_entry()
list_del()
を使ってる私はボケボケですか?(=゚ω゚)ノ
0714デフォルトの名無しさん
NGNGlist_add()
list_del()
は1要素単位の追加削除なのか?
list_empty()
は空かどうかを調べるのか?空にするのか?
list_entry()
は何だ?
list_for_each()
はgetNextみたいなもんか?
...命名がダメダメだな
0715デフォルトの名無しさん
NGNG教えてください。
{
int n;
printf("数字を入力して下さい。\n");
scanf("%d",&n);
if( n == 0 )
printf("0ですね。\n");
else if ( n > 0 )
printf("正数ですね。\n");
else ( n < 0 )
printf("負数ですね。\n"); //この行のprintfの前に";"を入れろとでます。なぜでしょうか?
}
0716デフォルトの名無しさん
NGNG0717715
NGNG0719デフォルトの名無しさん
NGNGageたら何が悪いのか説明もせずに
公理のように振りかざしてくるキモヲタの好みに合わせる必要はないぞ
自分の質問を大勢に見てもらいたければ
誰にも遠慮はいらん堂々とageろ
0720デフォルトの名無しさん
NGNGunsigned int a = -50;
printf("%d", a);
とすると-50と表示されますが
unsinged として宣言している変数になぜマイナス値を表現できるんでしょうか?
0721デフォルトの名無しさん
NGNG"%d"だから。
0722デフォルトの名無しさん
NGNGちなみに%dにはint型のデータを与えなければならない
そこもとがしているようにunsigned int型のデータを与えるのはオフスペックだ
なぜ、そんなことをしたのだ!? 答えろったら答えろ!!
・・・そこもとの苦言の中に、この問題の本質が隠されていることを予言する・・・
0723デフォルトの名無しさん
NGNG?
0724デフォルトの名無しさん
NGNGじゃああなたの考えるナイスな命名をどうぞ。
0725デフォルトの名無しさん
NGNGis_empty()
add_back()
add_at()
del_at()
みたいなかじでどうやろ。
entry() は、ほんとに何するのかわからん。
0726720
NGNG定数部-50は16進数で,80000032と表現されて
それが符号部無しのaに代入され
aの値は十進数で21474836898と表示されると勘違いしてるんですが
どこから間違ってるでしょうか
0727デフォルトの名無しさん
NGNG>721 yome
0728デフォルトの名無しさん
NGNG・関数のプロトタイプ宣言とは何か?
・printf は与えられた引数の型をどうやって見分けるのか?
を小一時間考えれ。
0729デフォルトの名無しさん
NGNGはこの際関係ないと思われ
0730デフォルトの名無しさん
NGNG>>関数のプロトタイプ宣言
>はこの際関係ないと思われ
何故関係無いと思うのかを小一時間・・・
0731デフォルトの名無しさん
NGNG0732720
NGNG変数のaのビット列は16進数で80000032ですが
フォーマット指定子%dは最上位ビットを符号フラグとしている
とうこうでしょうか?
0733デフォルトの名無しさん
NGNGそういうこと
0734デフォルトの名無しさん
NGNGprintf("%d", a);
と書かれた時、printf 側は a を「何型」として
受け取っているのか、理解していると思っているのか?
0735720
NGNG0736デフォルトの名無しさん
NGNG優先してしまう。とうことだな。
unsigned int a = -50; については、負定数 -50 のビットパターンをそのまま unsigned int 型変数に格
納している。だからキャストなどしない限り、a は符号なし整数であり、式の中でも負数とはみなされない。
問題の例では、たまたまprintfが、変数型を見ていないから、負数として判断してくれただけ。
0737デフォルトの名無しさん
NGNGところで-50が0x80000032になるのか。
0738720
NGNGそこがわかって無かったです
0739720
NGNG明快な解説有難うございます。
0740728=730=734
NGNG俺なら納得できないがな(w
0741デフォルトの名無しさん
NGNG↓これで分からないのはアフォのもまえだけだ
>書式指定は、対象の変数の型がなんであろうと、書式で指定された型のほうを優先
0742720
NGNGsigned int b = -50;
a == bとはならないと思っていました
そういう人は少ないですか?
0743デフォルトの名無しさん
NGNGそれ以前にunsignedに負数を代入するのも不自然だけどね。
0744デフォルトの名無しさん
NGNGん? 正しいぞ
a == b には暗黙変換が含まれているが
変換の対象となる値が、変換後の型で表現できない場合、結果は未定義
未定義とは地球が爆発しても知らんと言うくらい何でも起こりうることを言う
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNGsigned int b = -50;
printf("%d , %d ,(%d)", a, b, (a==b));
結果は、-50 , -50 , (1) だよ。
0747デフォルトの名無しさん
NGNGだから未定義だっちゅーの
わかんねーやつだなw
0748デフォルトの名無しさん
NGNGえ? でもイコールだったよ。
とか言ったら頭から火吹いて倒れちゃいそう。
0749デフォルトの名無しさん
NGNGバグプログラムも半減しただろうに。
0750デフォルトの名無しさん
NGNG大抵はプロセッサのレジスタに符号の概念がない(命令側で使い分けてる)し、
符号付きと符号無しで比較する命令なんてないから、746のような結果が出るわけで。
もしプロセッサがこれに対応していたら、イコールにならないとみた。
0751デフォルトの名無しさん
NGNGsigned int b = -50;
signed int c = -40;
printf("%d , %d (%d)\n", a, b, (a==b));
printf("%d , %d (%d)\n", a, c, (a==c));
-50 , -50 (1)
-50 , -40 (0)
0752デフォルトの名無しさん
NGNGmovl$-50, -8(%ebp)
movl-4(%ebp), %eax
cmpl-8(%ebp), %eax
jne.L2
.
.
0753デフォルトの名無しさん
NGNGそれが正しいと言い張っているのと同じだぞ
おまいらの議論は
0754デフォルトの名無しさん
NGNGstrlenのreturn
ってなんですか? 念のため言うと、純粋に知らないので質問しています。
0755デフォルトの名無しさん
NGNGだと思うのだが、結果的には 比較している値は正しいし、true
にもなるわけだろ。その辺ちゃんと説明しろよ。
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNGunsigned int型のaに代入するためにint型の-50が型変換される。
int->unsigned intの場合、未定義じゃなくて、ある決まった正の数になる。
> a==b
bはunsigned int型に変換される。するとbはある決まった正数(上と同じ数)になる。
だから必ずa==b。
0760デフォルトの名無しさん
NGNG>int->unsigned intの場合、未定義じゃなくて、ある決まった正の数になる。
ダウト!
0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNG教えるなよw
魚血してたのに
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNG未定義は処理系依存に含まれる
未定義と処理系定義は互いに排他的な集合
0765デフォルトの名無しさん
NGNGどんな方法ですか?
>>699
この話題とは無関係ですよね。
0766デフォルトの名無しさん
NGNG説明無しでも
みなさんご存知かと思いましたよ(*´Д`)
0767デフォルトの名無しさん
NGNGだからそういうwarningも用意されている。
無視したきゃしてもいいけど、どうなっても知らんぞという意味。
0768デフォルトの名無しさん
NGNGってのと
> 端の処理が例外になったら何が悪いのかを説明もせずに
これはまるっきり無関係なので、ようするに、「なんとかこじつけよう」としている
姿勢がみえみえで、みっともないだけだと思うぞ ;-)
0769760
NGNGすまそ
0770デフォルトの名無しさん
NGNG>
> if( n == 0 )
3: scanf使うなよぼけ
5: 空白あけろよ ぼけ
5: 空白あけるなよ ぼけ
5: 空白あけるなよ ぼけ
0771デフォルトの名無しさん
NGNG背中を足すのかな?
0772デフォルトの名無しさん
NGNGJavaならね
0773デフォルトの名無しさん
NGNG符号付き整数型A ⇒ 符号無し整数型B
・Aが負
Aの型サイズ ≦ Bの型サイズ : A + (Bの型の表現しうる最大値+1)
Aの型サイズ > Bの型サイズ : (Bの型の表現しうる最大値+1) - (-A値 % (Bの型の表現しうる最大値+1))
ってのがあった。
未定義になるのは、
浮動小数点型 ⇒ 汎整数型
小数部は捨てられます。
整数部の値が汎整数型で表現できない場合は、その動作は未定義となります。
となっていたが、まちがっているのか?まじよくわからん。
0774デフォルトの名無しさん
NGNGこいつはぼけだ。scanfにかぎらず、呼ばれた関数側で型がわかるわけねーだろ!
0775デフォルトの名無しさん
NGNGぼけな知ったかぶり君だな。
なんで「プロセッサ」に依存するんだ ;-)
0776デフォルトの名無しさん
NGNG> 未定義と処理系定義は互いに排他的な集合
「処理系定義」が意味不明だ。勝手に言葉作るなよぼけ
0777デフォルトの名無しさん
NGNGでも、あれは端はないだろ?
0778デフォルトの名無しさん
NGNGmain()
{
char *p, *q;
printf("文字列を入力>");
p = gets(q);
printf(p);
}
これなんですが、どうしてこれでいいのか分かりません。
p = gets(q) の部分なんですが、 *p = gets(*q) なのではないかと思ってしまいます。
あと、printf(p)もprintf(*p)に。
「*p」、「*q」というのはそれぞれアドレスp、アドレスqの内容のことだから、
「アドレスqの内容をアドレスpの内容とする」ってことにした方がいいような気がするんです。
漏れのポインタに対する概念が間違ってるんだと思うんですが、どこが違うんでしょうか?
0779760
NGNGこの場合「ぐぐる」のは調査方法として邪道
googleではなくisoかjsaを訪ねろ
0780760
NGNGアドレスは&
おまえさんの読み方は思いっきり逆
0781デフォルトの名無しさん
NGNG同一人物とアピールする意図はない
0782デフォルトの名無しさん
NGNGgets使うなよ ぼけ
0783デフォルトの名無しさん
NGNG本文にレスしろ ぼけ
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNGこういうぼけにエサを与えないという効果があるだけだ
0786デフォルトの名無しさん
NGNGはい。こちら本文。
0787デフォルトの名無しさん
NGNGわかるまで立ってろ! ぼけ
0788デフォルトの名無しさん
NGNG打撃・.290 去年(2流) 今年(3流以下)
HR 26本 (1流) 今年(2流)
走塁 盗塁0 (3流以下)
守備 ・・・・
人気・威圧感 (超1流)
0789デフォルトの名無しさん
NGNGてにをはを間違えるな ぼけ
0790778
NGNGそんで、そのアドレスの中身(データ)は*で表す、と考えているんですが、
これで合ってるでしょうか?
0791デフォルトの名無しさん
NGNG> おまえさんの読み方は思いっきり逆
いや、
> 「*p」、「*q」というのはそれぞれアドレスp、アドレスqの内容のことだから、
この部分はあってるだろ? 言ってることのこの部分に関しては。(そのあとがいけないだけで)
まちがってるのはむしろ780
0792デフォルトの名無しさん
NGNGあっているが、778の文面ではそれができていない
0793デフォルトの名無しさん
NGNG> そんで、そのアドレスの中身(データ)は*で表す、と考えているんですが、
そこまでは合ってます。
で、「アドレスを渡すのは何のため?」ってのを少しは頭使えばいいだけ ぼけ
0794デフォルトの名無しさん
NGNGというか、780はアドヴァイスとしてとても不適切。
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNG「数値としての」ってのがついてるあたりが怪しいな。
そこを削除すれば合ってるが。
0797デフォルトの名無しさん
NGNG「で、そのアドレスを何を指示するために渡しているんだ?」だな。
5分以内に答えろ。
0798デフォルトの名無しさん
NGNGみんな気持ち良く議論するために、分末に「ボケ」を必ずいれることにしないか? ボケ
0799デフォルトの名無しさん
NGNGぼけ
0800798
NGNG>799 指摘 & ご賛同ありがとう。 ボケ
0801778
NGNGなってしまうんじゃないかと思うんです。
だから*qを使ってqの中身に代入すればいいと思ったんですが、どうでしょうか?
0802デフォルトの名無しさん
NGNGへんな空白使うなぼけ
へんな空白使うなぼけ
0803デフォルトの名無しさん
NGNGはいここでだめね。
そんなことはどーでもいいから、おれの質問に答えろよ ぼけ!
こういうぼけってのは、ようするにひとのいうこと聞いてないんだよな。
本や説明が悪いわけじゃなくて。
自分でかってに妄想に走るから理解ができないわけだ。
とにかく答えろ!
「そのアドレスは何を指示するために渡しているんだ?」
0804デフォルトの名無しさん
NGNG"hello"は配列
hello\0 は"hello"の内容
q="hello"; は
q=&"hello"[0]; の省略形
このあたりの話は些細な言葉のあやが
致命的な誤りにつながるから
十分に気をつけれ
0805デフォルトの名無しさん
NGNGqとかpとかいう変数名が「あそのアドレスの内容」だとおもっていて、
"hello"とかいうのが物理的な番地につけるわかりやすい名前であるところの「アドレス」だと
思っているところだろ?
まったく逆だよ ぼけ
"hello"ってのが、入る「内容」
変数の名前ってのは、アドレスに対応しているもの、つまり特定のアドレスにつけられた
名前なわけ。qとかpとかいう場所があるわけだ。
で、ポインター変数ってのは、そこに入る「内容」も実はアドレスだという特殊な変数なだけ。
0806デフォルトの名無しさん
NGNG> q=&"hello"[0]; の省略形
いや、それは大うそだ。
0807デフォルトの名無しさん
NGNGほほー
_"hello"ってな一意な外部名が生成されるってかw
0808デフォルトの名無しさん
NGNG> 致命的な誤りにつながるから
などと言っておきながら
> hello\0 は"hello"の内容
などと書くのが、こいつがかなり低能な証拠だな。
教えられるほうは7文字あるのだと思い込んでしまう危険性大
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNG0811778
NGNG入力されたデータをどこに代入するか、でしょうか?
なんかもうアドレスぼけしてきますた
0812デフォルトの名無しさん
NGNGで、どこにってのは
そのアドレスの場所には、それを入れるだけの場所はあるのか?
なんであるとわかるんだ?
それをまず考えろよ。
で、具体的に何番地に入れろと、どこで指定している? それをよく考えろ!
0813デフォルトの名無しさん
NGNGとしておけば、1234番地に入るわけだ。
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNGスタックぼっこわしていくだろが・・・そこはいいのか?
配列と、ポインターの違いがわかってないからどうでもいいのか・・・
0816デフォルトの名無しさん
NGNG教えたい気持ちはあるところが逆に始末が悪い。
>778さん。周りにリアルで聞ける人はいないの? ぼけ
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNGもしかして大事なデータがはいってたりしないのか?
で、もし1234があいてたとしてもとなりの1235番地はどうなんだ?
で、どれだけ連続であいてれば、それが入るんだ?
で、そもそも、その場所をつかっていいって誰が許可したんだ?
おれはしてないぞ?
ってことだ。少しは頭を使え ぼけ
0819デフォルトの名無しさん
NGNGおれが一番教えるのうまいな。
0820デフォルトの名無しさん
NGNGぜんぜんちがうだろ...
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNGいたいとこツカレテそのままかえす辺りがあおいわ、ぼけ
0823デフォルトの名無しさん
NGNGそう入門書に書いてあっただろ?
あるていど以上よくできた入門書なら、おまえみたいな妄想君 (ひとのいうこと
ぜんぜんきいてなくて自分で勝手におもいこんでしまい、そのせいで理解できないぼけ)が
よんでも、誤解しないように書いてあるもんなんだよ。
そうなってないってことは、その本がよくないってことだ。
まず、読んでいる本の名前を白状しろ! ぼけ
0824デフォルトの名無しさん
NGNG文字列を入れる場所ではない。文字列を入れる場所は、
char buff[32]; p=buff;とか、 p=malloc(100); などとして用意する。
これでわかったか? ぼけ
0825778
NGNGchar *p, *q
によってp、qそれぞれ先頭1バイトのアドレスが確保される。
p = gets(q)
は、「入力されたデータをアドレスqに確保して、それをアドレスpに代入」
printf(p)
でアドレスpの中身が表示されるのは、配列と同様だから。
あー、なんかしっくりこないぞぼけ
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNG> 文字列を入れる場所ではない
言ってることは正しいが。教え方がまったくだめ!
正しいことを言うことが目的なんじゃなくて、ぼけをうまく「誘導」して正しい考えに
みちびくためなんだから、それの正しい定義を言うのは逆効果。
ぼけなやつが思い込んだ1つ前のわかれみちまでたちもどらせて、正しい道を選択
させるようにするべきだ。
この言い方ではよけいに混乱する。
0828デフォルトの名無しさん
NGNGp="hello"; の直後の *p は "hello"[0] だっていえば許してもらえるのか? ぼけ
0829デフォルトの名無しさん
NGNG> によってp、qそれぞれ先頭1バイトのアドレスが確保される。
されません。こいつがこういう勘違いしたのは、824の説明のせいだよなあ。やっぱりよそう通りだ。
pとかqには、「アドレス」格納する分の大きさしかとられない。
文字列の1文字がそれにはいるかどうかは保証されない
(たいがい2〜4文字分のおおきさはあるものだが、ここではどうでもいい)
0830デフォルトの名無しさん
NGNG空白あけろ ぼけ
0831798
NGNGさすがです。あなたはきっと良い教師(=優秀なプログラマ)ですね、ぼけ
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGプログラム片に全角文字使うなよ ぼけ
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNGどれがそう?
0836デフォルトの名無しさん
NGNGきみ。
0837デフォルトの名無しさん
NGNG0838778
NGNGていうか、よく見たら>>778のプログラムは間違った例として出されてました。
「正しくありません。gets()を呼び出すときに指定する引数は、実際の配列へのポインタでなければなりません。」
と解説してあります。
でも正常にコンパイルできるし実行も問題ありません。なんなんでしょか?
>>829
>pとかqには、「アドレス」格納する分の大きさしかとられない
これはつまり、確保はしないけどスタート地点は決めておく、ってことでしょうか?
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNGダメ本じゃん...
> でも正常にコンパイルできるし実行も問題ありません。なんなんでしょか
コンパイルエラーにならないからこそ、わざわざ解説してあるんだろ ぼけ
> これはつまり、確保はしないけどスタート地点は決めておく、ってことでしょうか?
全然ちがう。
「アドレス」の値もまた、メモリー上に格納されるべきものであるということだよ。数値や
文字と同じように。
0841デフォルトの名無しさん
NGNGそろそろおぼえとけ。
0842デフォルトの名無しさん
NGNG>でも正常にコンパイルできるし実行も問題ありません。なんなんでしょか?
たまたま問題ないように見えるだけです。
char *p, *q;
では、どこともつかない、使ったら何が起こるかわからない場所を指したポインタが
二つ用意されます。
まず最初にp, qには実際に使って良い場所を指すように初期設定しなくては
いけませんぼけ
0843デフォルトの名無しさん
NGNG訳がいけないわけではなく、原書からしてだめ。
たとえば今回のような「初期化していないポインターを参照」するような誤りを
説明するのに、その例は実際によくある例ではあるが、むしろ人工的な例で説明したほうが
わかりやすい。
(たとえばgets()でやらずに *p = 10; みたいな)
入門書の大原則、「正しい例は実際にある自然なものを」「正しくない例は、実際に
よく見かける間違いではなく、あえて人工的に」をはずしているところばかりある。
まるっきりうらがえしなんだよな。
あの本。
0844デフォルトの名無しさん
NGNGここでは「場所」といわずに、あえて「アドレス」という言葉をつかって解説して、
さっきの解説との関連を持たせないとだめ!
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNGそこで「初期設定」とか意味不明のことばをつかうからいけない
そこは一般用語で言うべきだ。
0847デフォルトの名無しさん
NGNG0848778
NGNGchar *p, *q ,buf[32],def[32];
p=buf;
q=def;
としても動きました。というかこれが正常なんですね。
あー、これならなんだかわかった気がします。
ちょっとだけぼけから開放されますた
0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNGそんなことは、ここでさんざん言われてるだろうが! ぼけ
0852デフォルトの名無しさん
NGNGこう、ドバーンっとわかって、ガガーーンとくるようなやつ。
0853デフォルトの名無しさん
NGNGいや、そもそもpやqは何のために準備したんだ? それを考えろ!
pやqに代入せず、bufやdefを直接与えろよ! ぼけ
0854デフォルトの名無しさん
NGNGその本を擁護するつもりはないが
今このスレには不純な動機で特定の本のみ推薦したがっている
著者または親衛隊が常駐しているようなので
特に推薦図書については言われたことを鵜呑みにしない方がいい
0855デフォルトの名無しさん
NGNG0856デフォルトの名無しさん
NGNG『作ってわかるCプログラミング』日下部陽一/技術評論社
0857デフォルトの名無しさん
NGNGしてるじゃん。おもいっきり
0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNG空白あけろ ぼけ
0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNGあれは著者の技量が低すぎだな。
騙されて買う人間も少ないとは思うのだが...。
0863デフォルトの名無しさん
NGNG説明にgetsつかってる時点で、あきらかにだめだろ.
0864778
NGNGchar buf[32],def[32];
printf("文字列を入力してください: ");
buf = gets(def);
printf(buf);
エラー E2277 a.c 8: 左辺値が必要(関数 main )
左辺値って、bufがあるのに・・・
なんでだみょーーーーーー
0865デフォルトの名無しさん
NGNGgetsの戻り値をなんでひろってるんだ?
それを考えろよ。
エラーチェックしてないんだろ?
だったら、なんでわざわざ変数に入れる?
printfに直接わたせよ ぼけ
0866デフォルトの名無しさん
NGNGgetsを捨てろ。
0867デフォルトの名無しさん
NGNGbufを定義した場合のメモリ消費量を総額で答えよ
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG定数は却下
a = b; や
a = 0; はOKだけど、
5 = b; がだめなのはわかるだろ? それと同じだ。ぼけ
0871デフォルトの名無しさん
NGNGアドレスが左辺値だってよ
int a;
&a = 0;
氏ねよぼけ
0872デフォルトの名無しさん
NGNGなおるよ。
こういうぼけな質問するたつが、ほぼまちがいなく9割以上の確率で、
scanfかgetsを使っている事実をみるだけでも、それぐらいわかるでしょう。
つまりつかわなければ、自分で解決するようにできてるんです。
0873デフォルトの名無しさん
NGNGbuf = と何の関係があるんだよ? 早く氏んでね
0874デフォルトの名無しさん
NGNGぼけ「左辺値」ってのは、1段階参照レヴェルがずれるんだよ。
それぐらいおぼえてから出直してこい! しったかぶりめ
0875デフォルトの名無しさん
NGNGgetsは次の入力行を配列sに読み込む。このとき行末の改行記号は'\0'に置換される。
これで返されるのは, s(ファイルの終わりもしくはエラー発生時にはNULL)である。
0876デフォルトの名無しさん
NGNGほほー
ずれたら&a=が通るんかよ
必死だな >業者さん
無能だな >著者さん
0877デフォルトの名無しさん
NGNGそんなこともわからんのか?
fgetsにすれば、こういうまちがいには自分で気づくようにできてるんだよ。
したがって、こういう質問も発生しない。あるていどのぼけでも自分で「あ,そうか」と
気づくようにできてる。
なのではやくfgetsにしろ
0878デフォルトの名無しさん
NGNGsが配列だあ? 頭元気?
0879デフォルトの名無しさん
NGNGこいつ低能。
ずれるから&つけなくてもアドレスなんだよぼけ
「内容」ではなく
0880デフォルトの名無しさん
NGNGさあ、カニパン2版参照しただけ。
0881デフォルトの名無しさん
NGNGこの仕様が難物なんだよなあ。
0882デフォルトの名無しさん
NGNGああ、わからんね
fgetsにした場合のコードでも示したらどうなんだ?
0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNGじゃbuf=はずれないから「アドレスに代入」できるんだな?w
0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNG関係ねーのを自ら証明するから書かないだけだろ
間違いは間違いなんだよ さっさと引き下がれ
0887デフォルトの名無しさん
NGNGこいつ統計もボロボロだな
0888778
NGNGまあ、わからないのはポインタの部分なんで確かに関係ないんですが・・・
それにしてもgetsの戻り値ってどうなってるんでしょうか?
エラーが発生した場合は0が返されると書いてあったんですが。
左辺値はアドレスでなければいけないらしいですが、bufっていうのは
buf[32]で宣言した部分の先頭アドレスが入っているのではないのでしょうか?
0889デフォルトの名無しさん
NGNGはあ? おまえ頭だめすぎ。でなおしてこいよ。
できねーだろ > 代入bufをどうやって変更するんだよ!
0890デフォルトの名無しさん
NGNGいや、むしろgetsつかうのが本末転倒。
というのは、目的があってこそ手段があるのだから。
べつにgetsを使いたいがためにCをやってるわけではあるまい?
0891デフォルトの名無しさん
NGNGエラーが発生したら0.
じゃあ、エラーじゃなかったら、なんでしょう?
0892デフォルトの名無しさん
NGNG「左辺値」と「変更可能な左辺値」を区別しとけ
0893デフォルトの名無しさん
NGNG>できねーだろ > 代入bufをどうやって変更するんだよ!
それをおまえに聞いたんだよ
答えられないぼけは早く氏ねったら
0894デフォルトの名無しさん
NGNG0というかNULLだな。
> bufっていうのはbuf[32]で宣言した部分の先頭アドレスが入っているのではないのでしょうか?
ああ、その「入っている」っていう言い方がだめ。
入ってるのではなく、「〜で宣言した部分の先頭アドレスそのもの」だ。
入ってるだと、何か変数にいれてあるみたいにきこえるだろ?
a = 5; の aには「5が入ってる」とはいうが、
5とか3+2のことを指して「5が入ってる」とはいわんだろ?
a = 10; はOKでも、
5 = 10; や
3 + 2 = 10; ができないのはなぜかよく考えろ! ぼけ
0895デフォルトの名無しさん
NGNGいまさらごまかしても遅い ;-)
0896デフォルトの名無しさん
NGNG>0というかNULLだな。
#define NULL 0
プププ
0897デフォルトの名無しさん
NGNG> a = 10; はOKでも、
> 5 = 10; や
> 3 + 2 = 10; ができないのはなぜかよく考えろ! ぼけ
この部分だけわかるので、わたしに答えさせてください。
「それが左辺値というものだから」が答えですね。
0898デフォルトの名無しさん
NGNG問題は getsの戻り値はどこかに入っているというよりも、受け取るんだということを理解しろってことだ。ぼけ。
0899デフォルトの名無しさん
NGNGこいつぼけ。
「左辺値」の意味をわかってない...
変更できない左辺値ってなんだよ ;)
0900デフォルトの名無しさん
NGNGbufのどこがポインター変数だよ! ぼけ。よくコードを見ろ!
0901デフォルトの名無しさん
NGNGごまかしてんのはおまえだ
889が全然説明になってねーな (プゲラ
0902デフォルトの名無しさん
NGNGいいや、ちがう。
うけとったものをどこに入れるのかという問題だ。
0903デフォルトの名無しさん
NGNGごまかしかたがみっともないね。
ひっしだな ;-)
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNGわかってないのはおまえだ
bufは変更できてbuf=による変更ができない理由の
核心に触れる説明がきれいさっぱり抜けたままw
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNGできねーだろ ぼけ
0908デフォルトの名無しさん
NGNGぼけ
0909デフォルトの名無しさん
NGNG必死なのはおまえ
884に早く答えてね無能な879さん
0910デフォルトの名無しさん
NGNGgets(buf);
0911デフォルトの名無しさん
NGNGいーや おまえだろ。
ぼけなことを言ったのをごまかそうとひっしにからんでくるが
言った事実は消えない ;-)
0912778
NGNG*buf = gets(def);
エラー E2349 a.c 8: 移植性のないポインタ変換(関数 main )
*bufってのは、あくまでデータそのものであるから
代入なんてお門違いってことなんでしょうか?
0913デフォルトの名無しさん
NGNG> *buf = gets(def);
だーかーらー
まず、なんで戻り値を何かに代入しなきゃいけないんだ? ってところから考えろよ
まず、代入しようとなどおもわずに、
printfに直接渡せよ! ぼけ
っていうかprintfには、もどってきた値じゃなくて、もとのバッファーのアドレスを
渡してるんだっけ?
だったら、代入せずに、ほげほげ = をとってみろ
そこでまた考えろ!
0914デフォルトの名無しさん
NGNGbuf に何を代入しようとしているの?
0915デフォルトの名無しさん
NGNGなるほど、押し問答に持っていってドローを狙いたいわけね
いいよ別に、あんたを泣かしてもしゃーないし
追求されたくないんなら放っといてやるよ無能な879さん
0916デフォルトの名無しさん
NGNG渡すほうは確保した配列のアドレスを渡し、
うけとるほうは、ポインター変数にすればいいんだな。
0917デフォルトの名無しさん
NGNG答えかいちゃったら、いみねーだろ
0918デフォルトの名無しさん
NGNGなるほど、本音が出たね ;-)
0919デフォルトの名無しさん
NGNGおまえのな
0920デフォルトの名無しさん
NGNG捨てぜりふとしては、かなりおもしろみに欠けますね。
「ふ、きょうはこれぐらいにしといてやる...」と同じ程度。
0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNG追求されたいのか、されたくないのか、そんくらい言えよ
0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNGで、どっちをお望みなんだよ? 無能な879さん
0925デフォルトの名無しさん
NGNG0926778
NGNGでやったらちゃんとできました。
でも、gets(buf)の戻り値が何故代入できないのかがわからん・・・
0927デフォルトの名無しさん
NGNGa = 5; ができて
10 = 5; ができない理由はわかる?
a = b; ができて
10 = b; ができない理由はわかるの? >>926
0928デフォルトの名無しさん
NGNG返り値がポインタだからじゃないでしょうか? ぼけ
0929デフォルトの名無しさん
NGNGで、どっちをお望みなんだよ? 無能な879さん
追及する/[しない]
0930デフォルトの名無しさん
NGNGそれは浴びるものです。
0931デフォルトの名無しさん
NGNG正常処理時には、gets() の引数にわたしたbuf[] の先頭アドレス が戻り値として返される。
要するに gets は 渡されたバッファの中にデータを突っ込んで。その先頭を返しているだけ。
だから。
char buf[100], def[100];
buf = gets(def);
なんて書いたら、これはつまり、
buf = def;
って書いているのと同じこと。
0932デフォルトの名無しさん
NGNGお、まだあばれてごまかす気だ ;-)
いくらはずかしいのをごまかしたいからと言って、あばれすぎだよ。
0933デフォルトの名無しさん
NGNG言ってることは合ってるが、このあたりを理解できていないやつに対する説明としては
不適切。よけい混乱するか、そこまでいかなくても、
理解の助けにはならない。
0934デフォルトの名無しさん
NGNGまさか「戻り値って言って下さい。」とかいわないよね? ぼけ
0935デフォルトの名無しさん
NGNGデフォルトは見たよな 無能な879さん
0936デフォルトの名無しさん
NGNGこんな間抜けな質問をするってことは、
「じゃあ何て言えばいいんだ?」と思ってる証拠。
それぐらいの常識は身につけてからでなおしてこいよ。
0937デフォルトの名無しさん
NGNGそんな憶測はずれてるよ。
それより>930の意図を教えてくれよ。
0938デフォルトの名無しさん
NGNG>buf = def;
>
>って書いているのと同じこと。
の何がいかんのかが、わからなくて聞いてるんじゃないか?
0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNGいーや、あたってる。
0941778
NGNGp = gets(buf);
printf(*p);
gets(buf)がbuf[32]の先頭アドレスを返すってことなら、
これでpにそのアドレスを代入すればポインタで値が表示できると思ったんですが、
またもやダメでした・・・。もうぼけぼけです
0942デフォルトの名無しさん
NGNGだね。だから解説としては適切ではない。
0943デフォルトの名無しさん
NGNGおしい
0944デフォルトの名無しさん
NGNGCって何年前の言語だ? なんか別なの使えよ > おまえら全員。
0945デフォルトの名無しさん
NGNGなんでこうやろうと思うんだろう?
0946デフォルトの名無しさん
NGNGっていうか、何行めでエラーなのかの行番号ぐらいちゃんと見ろよ! ぼけ
0947デフォルトの名無しさん
NGNGソフトの進歩と言語は関係ないし。
0948デフォルトの名無しさん
NGNGはずれてるってば。
それより>930の意図は、「戻り値っていうんだよ。」ですよね。
はぁ〜。
0949778
NGNGにしたらできますたー。
printfって、直接アドレスを指定することもできるんですね。
0950デフォルトの名無しさん
NGNGいーや、あたってる
むしろ、
> それより>930の意図は、「戻り値っていうんだよ。」ですよね
この推測がおおはずれ。
自分の推測がおおはずれなくせして、
あいてが自分にたいしてまちがった推測をしているとおもいたがる(実際にはあたってるのに)のが
おお間抜けだ。
0951デフォルトの名無しさん
NGNGまぁ、普通はfputs とか使うんだけどな。
0952デフォルトの名無しさん
NGNGそれ、よした方がいい
試しに
%s
って入力してごらん
0953デフォルトの名無しさん
NGNGいいや。ちがう
「も」ではない。
アドレスを指定すること「しか」できない。
0954デフォルトの名無しさん
NGNGほかの分野は特許とかでせいぜい10年しか守られないのに、ソフトは
著作権で50年だか100年だか守られるんだろ?
どおりで進歩のない議論を繰り返すわけだ。
0955デフォルトの名無しさん
NGNGなんでgetsつかわなきゃいけないとおもいこんでるんだ?
あと5分以内にfgetsに変えろ!
0956デフォルトの名無しさん
NGNGいや、このスレを見ているなら、アホナ論争に著作権なんか関係ないことに気づけよ。ぼけ。
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNGべつ思い込んでないと思われ。
0959デフォルトの名無しさん
NGNGところでさ、シリコンウエハーが使われだしてから何年になるっけ?
土台になるものが変わらないからって、技術が停滞してることにはならんだろ
0960デフォルトの名無しさん
NGNG話をそらしてないで、いいかげんに>930で何が言いたかったのかハッキリ言えよ。
イライラさせるやつだなお前は。ねらい通りなんだろうが俺は気分が悪い。
0961デフォルトの名無しさん
NGNGあまいね。すっかり思い込んでる。
0962デフォルトの名無しさん
NGNGようは自我が未成熟な証拠だ。
0963デフォルトの名無しさん
NGNGおまえはくずだ。もう答えなくて良い。諦めたよ。
0964デフォルトの名無しさん
NGNGgetsのままだと、またハマるんだよな。
けっきょくgetsつかってるのがわるい。
0965デフォルトの名無しさん
NGNG無能な879よりマシに見えるが
0966デフォルトの名無しさん
NGNGこわがりすぎー
0967778
NGNGうわぁぁぁぁぁ(AA略
エラーになってしまいますた。他にも%dとか%pとかも、そのままでは表示されないんですね。
printfのフォーマット指定子とやらのせいですか。
>アドレスを指定すること「しか」できない
printf("わはー");
とかでも、アドレスを指定しているんでしょうか?
この場合、どこかにこの文字列を格納してその先頭アドレスを返しているってことなんですかね。
0968デフォルトの名無しさん
NGNG消防の作文よりひでーな
0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNGそれら2つの関数を学習する上で、ほかのよりつまずき安い箇所が多い。
しかも、そのつまずいた問題をのりこえる努力をしたとしても、その経験が
あとで生きないものばかりだ。
どうせなら、学習のときに、あれこれ悩んだものがあとあと訳にたつような関数を
使え
ぼけ。
0972デフォルトの名無しさん
NGNGランボー出現時以来の速さだな。
0973デフォルトの名無しさん
NGNGchar の配列は文字列として扱える。(要終端コード)
で、printf には文字列を表示するための書式指定があるだろ。
あとは、わかるな?
0974デフォルトの名無しさん
NGNGもうちょっとヒネれ
素材は悪くないが
それじゃ食いつきがいまいちだろ
0975デフォルトの名無しさん
NGNGchar buf[32],*p;
p = gets(buf);
printf(p);
を実行して200文字ぐらい入力してみ。
0976デフォルトの名無しさん
NGNG>その経験が
>あとで生きないものばかりだ。
プ
0977デフォルトの名無しさん
NGNG「扱える」が誤り。
0978デフォルトの名無しさん
NGNG間違って使わないためにもポインタ型を宣言する際はこんな風に宣言しろぼけ
0979デフォルトの名無しさん
NGNGいっそのことstaticとか (プ
0980デフォルトの名無しさん
NGNG知ってる単語ならべて知ったかぶりしようとしても無駄。
この話題とまったく関係ない
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNG間違って使わないためにもポインタ型を宣言する際はこんな風に宣言しろぼけ
間違って使わないためにもポインタ型を宣言する際はこんな風に宣言しろぼけ
間違って使わないためにもポインタ型を宣言する際はこんな風に宣言しろぼけ
間違って使わないためにもポインタ型を宣言する際はこんな風に宣言しろぼけ
0984デフォルトの名無しさん
NGNG> 間違って使わないためにもポインタ型を宣言する際はこんな風に宣言しろぼけ
こういうウソにだまされないように。
どんどんどんどんひどい方向にいくぞ。そういう方針にすると。
そうではなく「ただしい」方向にいけばいいだけ。
0985デフォルトの名無しさん
NGNGCではNULL == 0って決まりは無いよね
0986デフォルトの名無しさん
NGNGfgetsは改行がくっついてくるので
とるのがめんどくさい。
0987デフォルトの名無しさん
NGNGいや、staticの変数は0で初期化されるが、ポインターが0(NULL)にはならない。
0988デフォルトの名無しさん
NGNG> とるのがめんどくさい。
とらなきゃいい
0989デフォルトの名無しさん
NGNGstatic char *p, *q;
memset(&p, 0, sizeof p);
if(p == q) puts("sine");
で、うじねが出る保証ないらしいな
0990778
NGNGうほっ、エラーが出ますた。
やっぱりバッファちゃんが足りないんですかね。
いやー、なんかポインタが結構分かってきた気がします。
やっぱり勝手に思い込んでるだけじゃだめですね。
0991978
NGNG0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNGそう書かなきゃ視覚的にわかんない無能を恥じろ
0994デフォルトの名無しさん
NGNGだな。
0995デフォルトの名無しさん
NGNGstatic char *p, *q = NULL;
if(p == q) puts("sine");
で比較しろよぼけ
>で、うじねが出る保証ないらしいな
うじねって何だよぼけ
0996デフォルトの名無しさん
NGNG空白あけろよ ぼけ
ここあけないやつは、たいがいろくなコード書かない
0997978
NGNG初心者にはそう書いたほうがわかりやすいと言っているだけだぼけ
0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNGっていうか、ましな本買えよ。
1000デフォルトの名無しさん
NGNGおまいら全員ぼけ
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。