C言語なら俺に聞け(入門篇) Part 43at TECH
C言語なら俺に聞け(入門篇) Part 43 - 暇つぶし2ch2:デフォルトの名無しさん
09/01/24 19:35:18
C はひどい言語だ。これは、多くの平均以下のプログラマーが
使ってるためにさらに輪をかけてゲロゲロになっていて、どうし
ようもないゴミが簡単に生産されるようになってる。正直いって、
C++ を選ぶ理由が C プログラマーを追っぱらうため *だけ* だっ
たとしても、それ自体、C++ を使う強力な理由になりうる。

Linus Torvalds

3:デフォルトの名無しさん
09/01/24 19:40:24
この世界にはLinus Torvaldsが何人いるんだ

4:デフォルトの名無しさん
09/01/24 20:39:19
構造体ポインタを引数として関数に送って、
構造体ポインタを戻り値としたいときはどうすればよいのですか?

STRUCTURE player_entry(STRUCTURE ptr, int count)
・・・
 return ptr;
{
・・・
ptr = player_entry(ptr, count);
・・・

このようにしたらエラーになってしまいます。

5:デフォルトの名無しさん
09/01/24 20:56:51
STRUCTURE型の定義を見ないことにはわからないが、
たぶん、こう
STRUCTURE *player_entry(STRUCTURE *ptr, int count)

6:デフォルトの名無しさん
09/01/24 21:15:20
>>5
たぶんできました。ありがとうございます。
関数名に*をつける発想はありませんでした、、

7:デフォルトの名無しさん
09/01/24 21:22:03
関数名につけてるわけじゃねーぞw

8:デフォルトの名無しさん
09/01/24 22:30:04
void serch_name(LIST list)
という関数内で社員名を入力させて
その社員が構造体のメンバ(list->name)にあるかどうか調べたいんですが
どーすればいいか分かりません。

while(line != NULL){
・・・・
line = line->next;
}
この形で走査したいんですが
よろしくお願いします。

9:デフォルトの名無しさん
09/01/24 22:33:19
nameの型が何か知らないけどchar[]かchar*ならstrcmpを使え

10:デフォルトの名無しさん
09/01/24 23:29:50
━━━━━━━━━━━━━━━━━━━━
 
 そんなことよりyahooきっず「どんな''ジャンボ''が食べたい?」に投票しようぜwwwwwwwww
 ジャンボピーマンを一位にして餓鬼共を泣かせようwwwwwwwwww
 現在1位 yahooの工作開始までに2位のたこ焼きを突き放す

 URLリンク(kids.yahoo.co.jp)         _人人人人人_
                        >鶴職人募集中<
                         ̄ Y^Y^^Y^Y^ ̄

 ↓本スレ
 スレリンク(news4vip板)
━━━━━━━━━━━━━━━━━━━━

11:デフォルトの名無しさん
09/01/24 23:51:33
変数をNULLで初期化する利点は何ですか。

12:デフォルトの名無しさん
09/01/24 23:53:05
変数を初期化しないこと自体問題が多過ぎる。
初期化しない奴は初期化忘れによるバグを大量に発生させる。

13:デフォルトの名無しさん
09/01/25 00:02:25
>>11
初期化するかしないかは変数による
NULLでするかどうかも変数による

14:デフォルトの名無しさん
09/01/25 00:35:07
質問です。
たとえば、char *p="abc"というポインタ変数があって、
それには何かきまったアドレスがあるわけです。
そのアドレスを別のアドレスに変えるにはどうすればいいんですか。

15:デフォルトの名無しさん
09/01/25 00:37:15
>>14
p = でなんでも代入すりゃいいだろ

16:デフォルトの名無しさん
09/01/25 00:49:19
ポインタ変数のアドレスを変えたいなら別のポインタ変数を作って代入すればいいと思うよ。

17:デフォルトの名無しさん
09/01/25 00:54:26
>>ポインタ変数があって、それには何かきまったアドレスがある
「それ」は、ポインタ変数を指示しているので、pのアドレスのこと、つまり、値としては、&pである。
これを変えるのは、難しい。アセンブリレベルでコードを書き換えてからコンパイルするか。バイナリをハックするか。

18:デフォルトの名無しさん
09/01/25 00:59:42
>>17 (・∀・)ニヤニヤ

19:デフォルトの名無しさん
09/01/25 01:00:57
>>17
アセンブリの段階で変数とか消滅してるけどな

20:デフォルトの名無しさん
09/01/25 01:01:18
変数じゃなくて変数名p

21:デフォルトの名無しさん
09/01/25 01:06:56
何この糞な流れ

22:デフォルトの名無しさん
09/01/25 01:10:06
もっとがんばろうぜ

23:デフォルトの名無しさん
09/01/25 01:30:26
while(c<11){
a=strcmp(pnt[b],pnt[c+1]);
if(a>0){
b=c+1;
}
c++;
}
エラーは起きないのにこのwhile文にだけ入らないみたい。
なんで??
ちなみにC=0です。
これ以外のどこかがおかしいから入らないのかな?

24:デフォルトの名無しさん
09/01/25 01:32:10
とりあえずc==0なのか出力して確かめろよ

25:デフォルトの名無しさん
09/01/25 01:39:38
>>23
whileに挿れる前の、初めてのcが11以下なのか、どうなのか?チェキして

26:デフォルトの名無しさん
09/01/25 01:39:57
>>24
あー。
何かいけたかも。


27:デフォルトの名無しさん
09/01/25 02:50:04
小数点の計算なんですけれど
int a = 130;
int b = 100;
double c;

c = a / b;

こうするとエラーが起こります。
よろしくお願いします。

28:デフォルトの名無しさん
09/01/25 03:16:05
エラーメッセージ書いて

29:デフォルトの名無しさん
09/01/25 03:16:15
>>27
ちゃんとcは1になると思うが、どういうエラーが起こるんだ

30:27
09/01/25 03:48:53
>>28
>>29
申し訳ないです。
bの値が0であったためエラーが起きたみたいです。

31:デフォルトの名無しさん
09/01/25 04:08:27
>>27でどうしてbの値が0になるのか不思議だ

32:デフォルトの名無しさん
09/01/25 05:14:40
型の違いに対する警告じゃね?

33:デフォルトの名無しさん
09/01/25 05:16:05
>>27
cに代入した値は、何か別の場所で使ってる?

34:デフォルトの名無しさん
09/01/25 07:55:48
ヘッダーファイルをインクルードせずにコンパイルおよび実行できてしまったのですが
これは何でですか?

具体的には
int main(void)
{
printf("%f\n", sqrt(3));

return 0;
}
です。
stdio.h math.h をインクルードしないとエラーが出ると思ったのですが・・・

環境は cygwin gcc 3.4.4です。
コンパイルオプションなどは特に設定してません。

35:デフォルトの名無しさん
09/01/25 08:27:22
どのエラーを期待してるのかわからないが、-Wall をつければ
いくつか警告がでるはず。

一般的に必須なのは math.h
sqrt() の返り値が double であると宣言する必要がある。

ただし、gccはprintfのフォーマット演算子の解析しているので、
"%f"から double を類推できて、問題なく動いているのだと思う。

36:34
09/01/25 09:14:06
>>35
数年の記憶ではエラーが出たような気がして。

-Wall試してみました。警告出てきました。
ですが、エラーにならないならインクルードする必要がないってことになってしまいませんか?
それとも、このエラーにならないってのはgccの仕様であって、
C89やC99では認められてなかったりするのでしょうか?


37:デフォルトの名無しさん
09/01/25 09:15:15
数年前の記憶では
です。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch