C言語なら俺に聞け( ..
[2ch|▼Menu]
460:デフォルトの名無しさん
07/05/13 17:40:37
>>458
どこがどうわからないのかkwsk
学校とかのレポートなら解答出すわけにいかんし

>>459
>>457じゃないがおまえちゃんと>>457のリンク先見てみたのか?
簡単なデータペースやゲームの作り方も内容にあるだろ
それとも全部わかってるのかこの内容?

461:デフォルトの名無しさん
07/05/13 17:47:38
まぁ、猫が妥当かどうかは問題だがな。

462:デフォルトの名無しさん
07/05/13 17:48:44
ちゃんと見てませんでした。ごめんなさい。

463:デフォルトの名無しさん
07/05/13 18:10:29
URLリンク(www.geocities.jp)
のページにあるローレンツのプログラムをコンパイルしようとしたのですがエラーがでて出来ませんでした
開発環境に問題があると思うのですが、原因がよくわからないのでご教授願います
windowsXPでソフトは「C言語を始めよう!」、コンパイラはBorland C++ Compiler 5.5です
そのままコピペしてコンパイルするとエラーメッセージが(rktest.cはファイル名)
------ コンパイル開始 ------
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
rktest.c:
エラー E2140 rktest.c 17: ここでは宣言はできない(関数 main )
警告 W8057 rktest.c 57: パラメータ 't' は一度も使用されない(関数 f1 )
警告 W8057 rktest.c 57: パラメータ 'z' は一度も使用されない(関数 f1 )
警告 W8057 rktest.c 66: パラメータ 't' は一度も使用されない(関数 f2 )
警告 W8057 rktest.c 75: パラメータ 't' は一度も使用されない(関数 f3 )
*** 1 errors in Compile ***
------ コンパイル終了 ------
と出ます
スレ違いのような気がしますが、該当スレが見つからなかったのでここで質問させていただきました

464:デフォルトの名無しさん
07/05/13 18:18:13
>>463
そのコードはANSI Cに準拠していない。

FILE *output; の行を main 関数の先頭に持ってくるといいよ。

465:デフォルトの名無しさん
07/05/13 18:39:02
4つくらいのデータを1つのノードとして
そのノードを2二次元配列の1文字分のように扱いたいんですけど、
構造体を設定して
strcut ABC{
char
char
char
};
struct ABC data[][];とできますかね?

466:デフォルトの名無しさん
07/05/13 18:40:59
struct ABC data[ ][ ];です

467:デフォルトの名無しさん
07/05/13 18:41:17
なんでやってみないの?

468:デフォルトの名無しさん
07/05/13 18:42:18
いややったんだけどセグメンテーションエラーだから
無理なのかと。

469:デフォルトの名無しさん
07/05/13 18:44:16
>>468
コンパイルできないはずだけど

470:デフォルトの名無しさん
07/05/13 18:45:21
>>469
どういう意味ですか?

471:デフォルトの名無しさん
07/05/13 18:46:05
>>468
コード貼ってみろよ。中途半端に省略しないで。

472:463
07/05/13 18:47:21
>>464
回答ありがとうございました
警告は消えませんでしたが、エラーが消えて無事コンパイルすることができました
この警告は無視しても問題ない範囲なのでしょうか?
原因を把握していらっしゃるのでしたらお伺いしたいのですが

473:デフォルトの名無しさん
07/05/13 18:48:14
>>472
使ってない仮引数を教えてくれてるだけ。無視しても問題はない。

474:デフォルトの名無しさん
07/05/13 18:49:44
>464
コンパイラがANSI Cに対応してないんでねーの?

475:463
07/05/13 18:50:31
重ね重ねのご親切ありがとうございました

476:デフォルトの名無しさん
07/05/13 18:51:37
>>474
ANSI Cでは変数はブロックの先頭のみで宣言できる。
bccはANSI準拠。

477:デフォルトの名無しさん
07/05/13 18:54:07
struct ABC
{
char name[10];
char initial[10];
char home[10];
};と構造体を設定

struct ABC data[10][10];
int i,j;

for(i=0;i<10;i++){
for(j=0;j<10;j++){
strcpy(data[i][j].name,NULL);
strcpy(data[i][j].name,NULL);
strcpy(data[i][j].name,NULL);
}
}

一部ですけども、その二次元配列の中身の全ての各部門の初期化をしたいのですけど
この時点でセグメンテーション違反がおきるわけです。

478:デフォルトの名無しさん
07/05/13 18:55:21
strcpy(data[i][j].initial,NULL);
strcpy(data[i][j].home,NULL);です


479:デフォルトの名無しさん
07/05/13 18:57:10
馬鹿だろ。

strcpy(data[i][j].name, "");

480:デフォルトの名無しさん
07/05/13 19:04:35
>>479
ありがとさん

481:デフォルトの名無しさん
07/05/13 19:07:04
まあ
data[i][j].name = '¥0';
ってやった方がいいとは思うけど初期化だから別にいいか。

482:デフォルトの名無しさん
07/05/13 19:07:45
うわ。間違い
 data[i][j].name[0] = '¥0';
こう

483:デフォルトの名無しさん
07/05/13 19:54:50
大学でC言語を習っています。
ifやforといった基本的なことは理解しているつもりである程度プログラムは書けます。
今、アルゴリズムの授業を受けているのですがポインタや構造体が理解できません。
参考書に載っているソースを自分で打ち込んで実行したり、少し変えたりしているのですがどうも暗記っぽくなっています。
そのため「○○をポインタと構造体を利用して作れ」と言われても何からしたらいいかわからない状態で。
ポインタや構造体はC言語で一番重要と言われているので是非自分のものにしたいです。
皆さんはどうやってポインタや構造体を理解していきましたか?

484:デフォルトの名無しさん
07/05/13 19:57:33
サンプルコードをいくつか読めばそれで理解できた。

485:デフォルトの名無しさん
07/05/13 20:10:22
使ってりゃ理解できた

486:デフォルトの名無しさん
07/05/13 20:11:48
>>483
わからないところは図を描いて理解。
デバッガで全変数表示してつながり・変化を確認。

487:デフォルトの名無しさん
07/05/13 20:12:40
くそなげえプログラム書いてたら飯なんてどうでも
よくなって4時間経過w

488:デフォルトの名無しさん
07/05/13 20:30:41
さっき構造体での二次元配列はどのようにすればいいのかを聞いたものですけど
その二次元配列data[i][j]において
1行さすのはdata[i]でいいのはわかるのですけど
1列をさすのはどうおけばいいですかね?

489:デフォルトの名無しさん
07/05/13 20:44:39
基礎からやり直せ

490:デフォルトの名無しさん
07/05/13 20:46:59
>>488
列は無理。

491:デフォルトの名無しさん
07/05/13 20:47:08
>>488
メモリの配置を想像してみろ。
列は分断されていて連続したメモリとしてアクセスする方法はない。

492:デフォルトの名無しさん
07/05/13 20:57:08
>>483
ポインタのイメージがつかめない場合はその都度アドレスと中身を表にして書いて理解
ポインタpのpと*pと&pの違い,あるいは変数aのaと*aと&aの違いが
わかっていれば大丈夫のはず
なぜポインタが必要かっていう設計思想を知りたければアセンブラとかを
学んでみるといいいかも

>>488
他の言語なら実装されてたりするけど
C言語ではそういう便利な機能は基本的に用意されてない


493:デフォルトの名無しさん
07/05/13 23:12:11
転職してプログラマになりたいんだ。
そのためにCとC++をマスターしたいんだが…。

それで今は一応C言語の基礎を終わらせたんだけど
C言語で関数やアルゴリズムやAPIなども覚えてから
C++行ったほうがいいのかな?

それとも先にC++でオブジェクト指向とか把握してから
いろんなこと手を出した方が良いかな?

494:デフォルトの名無しさん
07/05/13 23:15:29
さっさとC++池
今時Cなんてほとんど使わないからC++からCのコードを利用する際の最低限の知識さえあれば十分。

495:デフォルトの名無しさん
07/05/13 23:16:05
ぶっちゃけ経験年数のが大事。
マの真っ当な評価なんてマ以外に出来るわけがないんだから。

496:デフォルトの名無しさん
07/05/13 23:22:16
あらためてアルゴリズムを考えてみると
その列であてはまるのは1つだから
列指定にしなくてよかった。


497:デフォルトの名無しさん
07/05/13 23:23:21
>>494
Cは使わないのか
じゃC++の勉強にいこうかな
まだCでコードとか書けないけど大丈夫かな・・・

>>495
年齢が30前後とかだと未経験じゃプログラマになるの難しいかな?

498:デフォルトの名無しさん
07/05/13 23:29:01
>>497
おまいさんはマ板にお逝き。

499:デフォルトの名無しさん
07/05/14 00:00:23
>>497
どんなプログラムの仕事がしたくてどんな会社かによる
なんか実用的(ゲームでもいい)なプログラムひとつでも組んでると
就職のときにアピールにはなる
とりあえずマ板へ池

500:デフォルトの名無しさん
07/05/14 01:50:07
プログラムの処理がどの程度完了しているのかを示すことを試みたのですが,
うまくいきませんでした.具体的には,以下のことをしました.

#include<stdio.h>

int main(){
int i, j;

for(j=0; j<10000; j++){
for(i=0; i<100000; i++){
}
if((j%1000)==0)printf("*");
}
printf("\n");

return(0);
}

j が10000ループされますが,1000ループごとに * を1つ出力し,
* が10個になったら処理完了を知らせるというものです.
上のソースコードのようにしてみたところ,j のループを出てから
* が10個同時に表示されてしまいます.

どのように書けばよいのでしょうか?お願いします.

501:デフォルトの名無しさん
07/05/14 02:02:37
>500
ちゃんとjのループの途中で*が表示されてるけど?
ただ、1000個ごとなら(i%j)==999だろう。

502:デフォルトの名無しさん
07/05/14 02:07:08
バッファフラッシュしなきゃいけないとかそーいう問題じゃないの?
環境は?

503:デフォルトの名無しさん
07/05/14 02:09:42
ANSI C準拠だったら整数の範囲って32767までじゃなかった?

504:デフォルトの名無しさん
07/05/14 02:16:56
>>500
for(i=0; i<100000; i++){

i 使って無いじゃんwwww
ワロタw

505:デフォルトの名無しさん
07/05/14 02:18:50
int に10000も入れれませんwww
基本からやり直せよwww

506:デフォルトの名無しさん
07/05/14 02:19:42
>>500
if((j%1000)==0){ printf("*"); fflush(stdout); }
という話か?

507:デフォルトの名無しさん
07/05/14 02:20:26
>>504-505
釣りにしても ひどい

508:デフォルトの名無しさん
07/05/14 02:22:24
C とC++ の違いを分かってない人がいっぱいいるので一応書いておく

Cの構造体には変数しか設定できないのですが
C++は構造体の中に関数を入れれます。それがクラスって呼ばれるものです

C++でヤリなされw

509:デフォルトの名無しさん
07/05/14 02:23:17
何かの処理の進捗状況を表示する部分について質問してるんでしょ。
単にその処理の部分は省略しただけなんじゃないか?

510:500
07/05/14 02:25:02
>>501-508
レスありがとうございます.

>>502さん及び>>507さんのもので,求めていた結果を得ることが出来ました.
これからfflushをググってみます.

>>504-505が釣りかどうかすら分からない自分が悔しいです.
勉強に励みます.ありがとうございました.

511:デフォルトの名無しさん
07/05/14 02:26:59
進捗状況ってさ

ソースに
printf("処理○○終わり");
って書いていけばいいんじゃないの?

完成したら消せばいいわけだし

512:デフォルトの名無しさん
07/05/14 02:28:26
だからfflushはだめだってw

513:デフォルトの名無しさん
07/05/14 02:30:15
ほかっとけ
初心者だぞ相手はwww

514:500
07/05/14 02:31:20
>>509
実際は処理内容が含まれますが,それとは別に処理内容を全部消したもの
>>500そのもののソースファイル)を作成して実行しても * が一度に出力された
ので質問をしにきました.

>>511
1試行で数分かかる繰り返し計算処理なので,何%終了したのかを概数でも
良いから表示させたかったのです.

>>512
駄目なのですか??

515:デフォルトの名無しさん
07/05/14 02:32:26
マロックにサイズオブ使わずそのまま数字書いてるとか
goto使いなんだろうよ



516:デフォルトの名無しさん
07/05/14 02:33:37
>>514
目的が達成できたんならそれで問題ないよ
環境依存だから、他の環境に持っていくことがあるなら問題だけど

517:デフォルトの名無しさん
07/05/14 02:34:10
つうかさ
関数の再帰使わなかったら 処理スピードなんか大して変わらんよ
何千万行でも数行でも・・・

518:500
07/05/14 02:37:48
>>516
今の環境のみで動かすものなので
これで大丈夫です.皆さん,ありがとうございました.

519:デフォルトの名無しさん
07/05/14 02:50:38



     お ま い ら 難 し く 考 え す ぎ


 

520:デフォルトの名無しさん
07/05/14 02:58:24
>>508
クラスの肝は派生できる事。
派生無しにクラスを語っても意味がない。

521:デフォルトの名無しさん
07/05/14 03:01:07
C++はスレ違い

522:デフォルトの名無しさん
07/05/14 03:05:30
>>516の言ってる環境依存ってfflushの事か?
確かに入力ストリームに対するfflushは未定義動作だが
出力ストリームに対しては正常に機能したと思うが違ったか?

523:デフォルトの名無しさん
07/05/14 03:08:10
お前ら 
もう質問者はいなくなったぞw

524:デフォルトの名無しさん
07/05/14 03:16:47
rand()で作った変数を
for()等でループにかけることって
実際問題 どうゆう場合ですか?

525:デフォルトの名無しさん
07/05/14 03:17:47
頭の悪い質問に頭の悪い回答者
このスレほんとゴミ化したな・・・

526:デフォルトの名無しさん
07/05/14 03:23:18
>>512
中途半端な知識でゴミ回答するんじゃないよ

527:デフォルトの名無しさん
07/05/14 03:30:23

じゃあ 頭のいい質問しましょw

関数のポインタと、配列のポインタ等の置き場が勝手に割り付けられると聞いたのですが

実際はどのように割り付けてるんですか?

出来ればコンパイル自体のソースをもちいて答えていただきたいと思います

528:デフォルトの名無しさん
07/05/14 03:31:25
>>524
質問の意味がよく分からんが
10体の敵がそれぞれランダムに動く場合とか?

529:デフォルトの名無しさん
07/05/14 03:32:34
>>527
メモリの話か?

530:デフォルトの名無しさん
07/05/14 03:33:24
>>527
ポインタの置き場って何?
コンパイル自体のソースって何?


531:デフォルトの名無しさん
07/05/14 03:34:03
おーい!機械語読める奴探してるらしいぞw

532:デフォルトの名無しさん
07/05/14 03:34:55
メモリの割付だおw

533:デフォルトの名無しさん
07/05/14 03:39:15
よーわからんな
関数が置かれるアドレスの話か? なぜそこでポインタが出てくるんだ?
配列も置かれるアドレス? なぜ普通の変数じゃなくてわざわざ配列?
ローカルとグローバルによっても違うし
もうちょっと問題を整理してくれんか

534:デフォルトの名無しさん
07/05/14 03:47:40
>>527
そんなもん環境依存だろ・・・

535:デフォルトの名無しさん
07/05/14 03:49:24
【内容】浮動小数点型(float、double等)を使用せず整数型(int)のみを使用し
「√」計算を行える計算機を作る
【どこが分からないのか?】全部wごめん
【どうして欲しいのか】代わりにソースを書いて欲しい

536:デフォルトの名無しさん
07/05/14 03:51:40
宿題は帰れ。

最近の学校は開平も教えないから困る。

537:デフォルトの名無しさん
07/05/14 03:53:53
開平ってなんですか?



538:デフォルトの名無しさん
07/05/14 03:55:44
ググれ

539:デフォルトの名無しさん
07/05/14 05:58:55
>>537
波平の双子の兄さんだよ。

540:デフォルトの名無しさん
07/05/14 06:53:39
>>537
灘、駒場、麻布と並ぶ名門です。

541:デフォルトの名無しさん
07/05/14 09:26:01
C >>>>>>>>>>>>>>>>> C++


C++は究極の中途半端言語

542:デフォルトの名無しさん
07/05/14 09:40:57
C++に挫折したそうです

543:デフォルトの名無しさん
07/05/14 13:59:59
>>535
intしか「√」内に入らないということでよろしいか?

544:デフォルトの名無しさん
07/05/14 14:01:04
>>543
お前意味が分からんw
整数しか入らないか?って聞けよwww

545:デフォルトの名無しさん
07/05/14 14:07:39
一番簡単な整数「9」を計算し「3」を出すプログラムを作りソースを書け
話はそこからだw

546:デフォルトの名無しさん
07/05/14 14:48:06
そのまえにルートがなんなのか学んだほうがいいw

547:デフォルトの名無しさん
07/05/14 14:58:35
>>535
確認だが正整数の間違いじゃないか?
そうでないとしたら複素数使わんと駄目だぞ

548:デフォルトの名無しさん
07/05/14 15:00:21
0でも問題ないだろ。

549:デフォルトの名無しさん
07/05/14 15:00:56
出題者がアホなのか質問者がアホなのか。
後者だろうけど。

550:デフォルトの名無しさん
07/05/14 15:01:52
宿題野郎にヒントなんて与えなくていいよ。

551:デフォルトの名無しさん
07/05/14 15:02:58
負数を与えたら死ぬようにすりゃいいじゃん。

552:デフォルトの名無しさん
07/05/14 15:03:41
>>548
おまえひょっとして-9は整数に入らないとか思ってないよな?

553:デフォルトの名無しさん
07/05/14 15:04:17
>>552
0は正整数に入らないと思ってる。

554:デフォルトの名無しさん
07/05/14 15:04:54
>>552
おまえひょっとして0は正整数入るとか思ってないよな?

555:デフォルトの名無しさん
07/05/14 15:06:58
負数が入っても絶対値の平方根に i つけりゃいいだけじゃん。

556:デフォルトの名無しさん
07/05/14 15:11:16
おk 言い直し 非負整数でおk

557:デフォルトの名無しさん
07/05/14 15:14:10
誤爆にレス付けてるアホどもってよっぽどやることがないんだね。

558:デフォルトの名無しさん
07/05/14 15:15:51
つか整数か非負整数いずれにしてもなんで出題者はそんなのに限定してるんだ?
実数じゃなにか問題があるのか?

559:デフォルトの名無しさん
07/05/14 15:17:35
ヒント:宿題

560:デフォルトの名無しさん
07/05/14 15:20:01
>>557
どのレスが誤爆なんだ?
ちょっとよく分からん

561:デフォルトの名無しさん
07/05/14 15:22:14
宿題スレのテンプレに似てると思ったんじゃないか?

562:デフォルトの名無しさん
07/05/14 15:30:15
宿題スレってはじめて見てみたがひどいな
写し放題じゃねーかwwww
先生は宿題スレもチェックしとくべきだなw

563:デフォルトの名無しさん
07/05/14 15:34:55
してるんじゃない?
そうでなくとも、まったく同じ答えが複数きてたらばれるだろう

564:デフォルトの名無しさん
07/05/14 15:38:04
教授からここの宿題スレを使うなと警告が来た例もあるらしいよ

565:デフォルトの名無しさん
07/05/14 15:40:44
そういうことするやつってそのへんは抜かりなくて少し変えてたりする
普段の態度や小テストで理解度見てたらだいたい自分でやったかどうか想像付くんだけど
さすがに人数多いといちいちチェックするのはめんどくさいw
院生に採点まかせっきりだったりもするからな

566:デフォルトの名無しさん
07/05/14 15:41:00
うざい

567:デフォルトの名無しさん
07/05/14 15:43:56
でも先輩友人の繋がりで写すのはどこでも常態化してるだろ。
それのネット版だ。
大してかわらんだろ。

568:デフォルトの名無しさん
07/05/14 17:37:23
char a[5] = "unko"

どこにNULLが入っていますか?
6個目?

569:デフォルトの名無しさん
07/05/14 17:38:08
何でデバッガ使わないの?

570:デフォルトの名無しさん
07/05/14 17:42:01
>>568 |壁|д゚) あのさ 教科書きちんと読もうよ
NULLと¥0と0の違いをきちんと理解しろw



571:デフォルトの名無しさん
07/05/14 17:43:59
>>568
先頭を一個目と数えて五個目にNUL文字が入っている。六個目は存在しない。

572:デフォルトの名無しさん
07/05/14 17:44:58

NULL 値アドレスなし、値0、ポインタの値として使用できる
\0 値アドレスなし、値0
0   値アドレス有り、値0

573:デフォルトの名無しさん
07/05/14 17:51:17
値アドレスって何ですか?

574:デフォルトの名無しさん
07/05/14 17:52:04
イミフな空白はなんですか?

575:デフォルトの名無しさん
07/05/14 17:54:28
>>572
あなたはなにをいいたいんですか

576:デフォルトの名無しさん
07/05/14 17:55:53
>>535
問題の趣旨を考えてみたw

10/3を計算すると3.33333333333333333・・・・と続くが小数点以下が増えていけば4という端数が発生する
COBOLでやれよと言いたいwなぜにcでww

577:デフォルトの名無しさん
07/05/14 17:57:07
URLリンク(www.psl.ne.jp)
ちっちっち、なんか勘違いしていないかね?NULLポインタとNULL文字とはまた別物だよ?

578:デフォルトの名無しさん
07/05/14 18:08:59
>>577
出力形式が、紙への印刷しかなかった時代が有ることを説明しないと無理でしょw


579:デフォルトの名無しさん
07/05/14 18:12:36
>>578
いやいや、そうじゃなくて、NULLといってもポインタと文字とは別物だってことなんだが?

580:デフォルトの名無しさん
07/05/14 18:13:10
>>572
正確に言えば
NULL=値無し、アドレス有り
¥0  =値0 、アドレス無し
0   =値0 、アドレス有り
だけどねw

581:デフォルトの名無しさん
07/05/14 18:13:58
何で初心者が回答したがるんですか?

582:デフォルトの名無しさん
07/05/14 18:15:13
>>580 イミフw
アドレス無かったら値入れれませんがw

583:デフォルトの名無しさん
07/05/14 18:16:35
文字配列をNULLポインタに指定するのと、文字配列の中にNULL文字を入れるのとでは
ぜんぜん意味が違うということさ。前者はまだ文字列を指定するアドレスが指定されいない
何もないところを示しているが、後者は文字列の中にNULL文字だけでも入っていれば
空ではあるが文字列(の先頭)を示すアドレスは存在しているよん。

584:デフォルトの名無しさん
07/05/14 18:17:23
>>580
志村ーーー、上の2つのアドレスありなしは逆逆w

585:デフォルトの名無しさん
07/05/14 18:17:37
あの・・・
かなり前に関数で配列の数を数えたいといった(内積を計算したいと)ものなんですが
NULLになるまでcount++するというプログラムならいけるかなと思いまして。
ぬるぽっていうのは、char型のアドレス限定ですか?

586:デフォルトの名無しさん
07/05/14 18:19:29
そもそも「¥0」ってなんだ?
好意的に解釈して「\(バックスラッシュ)0」の心算なんだろうけど、
'\0'と書かないと意味を持たない希ガス。

587:デフォルトの名無しさん
07/05/14 18:20:34
>>580
アドレスの有無ってなんだよ

いかなる値でも記憶領域に属していればアドレスはあるし、
そうでなければアドレスはないだろ。

588:デフォルトの名無しさん
07/05/14 18:21:49
#include <stdio.h>
int main(void) {
char *a=NULL,*b={"\0"},*c={"0"};

printf("%p : %s \n",a,a);
printf("%p : %s \n",b,b);
printf("%p : %s \n",c,c);
return 0;}

これの出力結果を見れば一目瞭然だよ

589:デフォルトの名無しさん
07/05/14 18:26:10
>>588マジレス乙

590:デフォルトの名無しさん
07/05/14 18:29:13
>>588を実行すると、異常終了して1行も出力されません。
どうしたら一目瞭然になるんでしょうか。

591:デフォルトの名無しさん
07/05/14 18:30:33
>>590
とりあえずaを表示する部分を消して下の2つは確認できる?

592:デフォルトの名無しさん
07/05/14 18:31:00
>>590
ゴメンよ なぜか知らんがコンパイルできて出力できてしまったよw

593:デフォルトの名無しさん
07/05/14 18:32:46
>>588の出力結果は、俺んとこ(WinXP , BCC使用)でやったら

00000000 : (null)
0040A128 :
0040A12A : 0

っと表示された。

594:デフォルトの名無しさん
07/05/14 18:33:23
(nil) : (null)
0x80484cc :
0x80484ce : 0

595:デフォルトの名無しさん
07/05/14 18:34:16
>>585
ガッ
いや、char型のアドレスだけじゃなく他の型でもNULLはある。
charとかchar[]はNULL文字と深くかかわってるけどNULL文字とNULLポインタは全く別物。
NULL文字は文字列の最後に終端記号として置かれる物。
NULLはポインタがどこも指してない事を示す記号として色んな型のポインタ変数に入れられる物。

596:デフォルトの名無しさん
07/05/14 18:34:37
0x0 : (null)
0x402000 :
0x402002 : 0


597:デフォルトの名無しさん
07/05/14 18:42:21
こういうアホ連中がそのうち社会に解き鼻垂れるのかと思うと
陰鬱な気持ちになるな・・・

598:デフォルトの名無しさん
07/05/14 18:43:38
ヒント
int main(void)
{
printf("てすつ");
return NULL;
}
やってみようw

599:デフォルトの名無しさん
07/05/14 18:45:45
>>598
> return NULL;
いっ、いぃ〜〜のか?

600:デフォルトの名無しさん
07/05/14 18:46:08
コンパイルとおりませんでした。

601:デフォルトの名無しさん
07/05/14 18:47:09
$ gcc -xc -
#include <stdio.h>
int main(void)
{
printf("てすつ");
return NULL;
} ^D
<stdin>: In function ‘main’:
<stdin>:5: 警告: return makes integer from pointer without a cast
$ ./a.out
てすつ
$ echo $?
0

602:デフォルトの名無しさん
07/05/14 18:48:01
>>597=>>286
とか上からものを言っているあほなお前がすでに社会に出ている方が怖い

603:デフォルトの名無しさん
07/05/14 18:51:37
ヒント
マは人格障害者の宝庫w

604:デフォルトの名無しさん
07/05/14 18:52:38
俺に聞け スレで 俺に聞くなよ って態度は何様だよ?w

605:デフォルトの名無しさん
07/05/14 18:55:06
ここは初心者さんのスレだから、イイのw
【1】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return NULL;
}
【2】
#include <stdio.h>
int main(void)
{
printf("てすつ");
return ;
}
【3】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return ;
}
それぞれやってみよう

606:デフォルトの名無しさん
07/05/14 18:57:22
>>605
> やってみよう
何が目的?何が言いたい?はっきりしろ、うっとうしい

607:デフォルトの名無しさん
07/05/14 18:57:37
そういう阿呆なこと教えるから、阿呆プログラマが量産されるわけだ。

608:せんしぇ〜 ◆cNsKLREitk
07/05/14 19:01:47
はい。
コンパイルのはじき方が理解できましたか?

609:デフォルトの名無しさん
07/05/14 19:02:46
我ら幼い人類に 目覚めてくれと 鼻垂れた〜

610:デフォルトの名無しさん
07/05/14 19:10:28
>>608
もしかして、そういうの面白いと思ってる?

611:デフォルトの名無しさん
07/05/14 19:11:49
ぜんぜん

612:デフォルトの名無しさん
07/05/14 19:12:05
605 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:55:06
ここは初心者さんのスレだから、イイのw
【1】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return NULL;
}
【2】
#include <stdio.h>
int main(void)
{
printf("てすつ");
return ;
}
【3】
#include <stdio.h>
void main(void)
{
printf("てすつ");
return ;
}
それぞれやってみよう

ここは初心者さんのスレだから、イイのw
ここは初心者さんのスレだから、イイのw
ここは初心者さんのスレだから、イイのw
それぞれやってみよう
それぞれやってみよう
それぞれやってみよう
それぞれやってみよう

613:デフォルトの名無しさん
07/05/14 19:25:59
>>608のが面白いとは思わないけど
>>612みたいなのも面白いとは思わない

614:デフォルトの名無しさん
07/05/14 19:28:09
>>613 自己擁護乙。お前つまんねっ、初心者を見ていらつくくらいなら
こんなスレに来るなよw お前みたいな気持ち悪い基地外に回答なんて求めてねーよボケ
俺は初心者じゃなくて回答する側だけどなw

615:デフォルトの名無しさん
07/05/14 19:29:07
んで、さっきっからこいつも何?せめて自分の使用環境くらい書けようぜぇ

600 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:46:08
コンパイルとおりませんでした。

590 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:29:13
>>588を実行すると、異常終了して1行も出力されません。
どうしたら一目瞭然になるんでしょうか。

616:デフォルトの名無しさん
07/05/14 19:31:21
んでさぁ、これって何の  ヒ  ン  ト  なの?なんについてのレス?
main関数の戻り値はintって指定してあるのに、NULL指定って何?ただのバカ?失せろ社会のクズw

598 名前:デフォルトの名無しさん 投稿日:2007/05/14(月) 18:43:38
ヒント
int main(void)
{
printf("てすつ");
return NULL;
}
やってみようw

617:デフォルトの名無しさん
07/05/14 19:31:27
>>614
どこがどう擁護してるのか分からないけど
言われて傷ついた?
そろそろwつけるの止めたほうがいいよ

618:デフォルトの名無しさん
07/05/14 19:32:40
>>617
はいっ、そうやって言い返さないと気がすまない=自分を自分で擁護して必死こいているのがバレバレ
なんすけど?擁護する必要すらない。お前みたいな奴は養護学校へ行けw

619:デフォルトの名無しさん
07/05/14 19:33:18
やっぱり最近ここ荒らしてるって
このwつけるやつだと思う


620:デフォルトの名無しさん
07/05/14 19:34:08
>>617
> 言われて傷ついた?
それお前だろ?お前が基地外だのこのスレには不要だのバカだの言われて
戦力外通告されて必死だな

621:デフォルトの名無しさん
07/05/14 19:34:26
>>618
面白くない

622:デフォルトの名無しさん
07/05/14 19:36:51
>>619=>>286 以下このスレの質問には無関係な自分の知識をひけらかして他人の無知を探ろうとしている奴
クソレスして他人の気分を害している  お  前  が  言  う  な  
>>605みたいなのがうぜぇ。本当にバカじゃね?何いきなり戻り値の話に持ち込んでんだよ?
NULLを使う場所間違ってんぞ
以後、ここで質問に関係ないレスをしている奴は、現実世界で友達のいない寂しがりやだと思って
見守ってやってください。ここではもちろん スルー でおながいします。

623:デフォルトの名無しさん
07/05/14 19:37:47
必死すぎだろ・・・

624:デフォルトの名無しさん
07/05/14 19:38:29
やっぱ荒れてきた
>>622
wつけるの止めたの?

625:デフォルトの名無しさん
07/05/14 19:39:18
必死すぎワロタ

626:デフォルトの名無しさん
07/05/14 19:39:55
誰か配列の大きさを調べる関数を書いてくれるとありがたし

627:デフォルトの名無しさん
07/05/14 19:41:03
>>626
大きさって何ですか?もっと詳しく!

628:デフォルトの名無しさん
07/05/14 19:42:52
>>622
>ここで質問に関係ないレス
>  お  前  が  言  う  な

>>626
Cでそれは無理ではないだろうか


629:デフォルトの名無しさん
07/05/14 19:46:04
さっきっからファビョって自分を擁護している奴って間違えた
>>580 と >>572か?まぁ、誰が誰をバカにしているかわからんが
答えるなら正確に調べてからレスするなり、参照できるページを使うのもありだぞ。
答えても相手が理解する能力がなければそれまでだしな。
けど、int mainの戻り値にreturn NULL;とかありえないから。
NULLに関するヒントとか何にもなってないし、明らかにint mainとしているだけあって
戻り値の指定が不適切ってことしか言えないから。関数の前に記述している型について
理解していないことをカミングアウトしなくて良いから、こんなスレで自分も初心者でぇ〜す
ってことをアピールしなくて良いから、ファビョらず黙っていてくれ。

630:デフォルトの名無しさん
07/05/14 19:46:57
>>628=間違ったヒントを出して赤っ恥かいているバカ
以後放置よろ

631:デフォルトの名無しさん
07/05/14 19:47:29
すいません
C言語でしか作れないプログラムはありますか?
Cの良さってなんですか?

付け加えて他の言語の良さ悪さを教えてください

632:デフォルトの名無しさん
07/05/14 19:49:27
>>630
じゃあ正しいヒントだせば?
でなきゃ>>628と同じ


633:デフォルトの名無しさん
07/05/14 19:51:28
>>632
ただしいヒントとかじゃなくて、何であんな無意味なヒント出したんだ?w
何が意図かはっきりしろって言われてんじゃん。なお、NULLポインタについては
すでにソース付きでレスがあるんであしからず。

634:デフォルトの名無しさん
07/05/14 19:52:32
>>628=>>632 他人を装ってしらじらしいんですけど。
>>605 >>598 なんすかこれ?

635:デフォルトの名無しさん
07/05/14 19:53:12
>>633
さっきから間違えてるんだけど
>>613より前にレスしてないし


636:デフォルトの名無しさん
07/05/14 19:53:49
趣味でハックしてる人はソースコードでハァハァってオナニーしているって聞きましたが

お金かからなくていいですね・・・・・・・・・
うらやましいです

637:デフォルトの名無しさん
07/05/14 19:54:24
っと、最後まで自分の間違いを隠そうと相手に必死こいて相手のボロを出そうとしている
赤っ恥さんがいましたとさ。以後放置よろ。

638:デフォルトの名無しさん
07/05/14 19:57:10
>>637
いろいろ必死すぎ・・・

639:デフォルトの名無しさん
07/05/14 19:57:54
つうか 過去レス探すのメンドクサイからHP作れよ!

640:デフォルトの名無しさん
07/05/14 19:58:14
>以後放置よろ
これみて思い出したけど前回荒れたときもこいついた

641:デフォルトの名無しさん
07/05/14 20:01:38
んで、みんな >>605 をそれぞれやってみた?
コンパイルエラーだの警告だの出たよね?だから何?としか言いようがないんすけど・・・
>>605は何をしたかったか、明確なレスを求む。

642:デフォルトの名無しさん
07/05/14 20:08:02
>>641
やってないし、やる気もない

643:デフォルトの名無しさん
07/05/14 20:10:06
>>642
やってないお前に聞いてないけど?だからそういうレスするなって。
NULLポインタのアドレスを表示するコンパイルもしてないくせに。

644:デフォルトの名無しさん
07/05/14 20:12:55
>>643
>みんな
>それぞれやってみた?
やった人間だけレスしろというなら最初からそう書け
お前は抜けてるんだよいろいろと

645:デフォルトの名無しさん
07/05/14 20:14:08
さっきっから何かと噛み付いてこないと気がすまない基地外がいるんだな。
わかりやすいね、そういう人間って。このスレには初心者が集まって
自分より知識のないやつが多いと思い込んで、浅はかな知識でレスしちゃっているんだろうけど
それが仇となってボロだしまくりで恥をかく奴。

646:デフォルトの名無しさん
07/05/14 20:14:17
>>643
そろそろ消えてください

647:デフォルトの名無しさん
07/05/14 20:15:22
>>645
いちいちレスするな
うざい

648:デフォルトの名無しさん
07/05/14 20:15:36
>>644
はぁ?抜けているのはお前。しかもお前には脳みそが抜けているようだ。
日本語がわからない?何他人に指図してんだよ?こっちはやれよとは言ってないが
やってみた?とは聞いたが?何これ?何俺に噛み付いてんの?さっきから基地外だよなお前はw
抜けているのはお前の脳みそ、な?理解しろ。
> 最初からそう書け
何命令してファビョってんだよ?わけのわかんねーソースを書いたNULLポインタ厨w

649:デフォルトの名無しさん
07/05/14 20:15:44
ん〜と、やってみてだから何?という人に早くレスしてあげてください。
さっさとね。

650:デフォルトの名無しさん
07/05/14 20:16:54
何言ってもこういう自分中心人間には効かないんだろうな
ある意味うらやましい

651:デフォルトの名無しさん
07/05/14 20:17:11
>>647=>>646=>>644 初心者叩きするのに失敗して赤っ恥ソースを出した厨房必死だなwwwww
何そこまで必死こいてんの?あっ、あのソースをコンパイルされて、自分がボロを出して
バカだということを露呈されるのが怖いんだぁ〜〜〜〜(^ー^)b
コンパイルした奴らにはあほだということがバレて大恥かいたもんなぁ〜〜〜君ってw


652:デフォルトの名無しさん
07/05/14 20:18:44
>>650
そうだね、わけのわからねーソースを出してreturn NULLしちゃっているぬるい奴って
>>598 >>605 < こっ、こここ、これは・・・すごい大ヒントだ!こいつがバカだってことがわかる大ヒントw

653:デフォルトの名無しさん
07/05/14 20:20:42
>>605
ほらほら早く説明しろよ。初心者さんがコンパイルして待ってまつよ。
ほら、涙目を拭いてさ。

654:デフォルトの名無しさん
07/05/14 20:20:46
こうゆうスレには 群がってくるんだな 
有る意味新鮮

655:デフォルトの名無しさん
07/05/14 20:21:01
>>590だけコンパイルできない(しょぼい環境)を使っていることがバレバレ
もしかして、OSはMS-DOSでつか?

656:デフォルトの名無しさん
07/05/14 20:22:24
608 名前:せんしぇ〜 ◆cNsKLREitk 投稿日:2007/05/14(月) 19:01:47
はい。
コンパイルのはじき方が理解できましたか?
↑しかもこれがあのヒントの答えだろ?だから何?コンパイルエラーを誘うなら
別にreturn NULLじゃなくても通らないソースを書けばおkだろ?
NULLの取り扱いについてなんら説明になってないから。

657:デフォルトの名無しさん
07/05/14 20:25:05
>>631
以前他のスレで似たような質問があってその回答だけどどうぞ。
スレリンク(tech板:539番)


658:デフォルトの名無しさん
07/05/14 20:25:31
オレ、このスレのこと一生忘れない

659:デフォルトの名無しさん
07/05/14 20:25:34
しつけ〜

660:デフォルトの名無しさん
07/05/14 20:30:26
ってか俺も言っててわけわからなくなったw
return NULL;だけを持ち出したらそれはそれで問題とならないが
あれがその前の流れからして何のヒントなのか?それが知りたいw

661:デフォルトの名無しさん
07/05/14 20:35:07
おわった?

662:デフォルトの名無しさん
07/05/14 20:37:58
ヒント
#include <stdio.h>
int main(void){
int x=NULL;
printf("%d \n",x);
return 0;
}
さぁ、int型のxに代入された値はなんだった?俺んとこは0。
ただ、これはNULLポインタとは話は別なんで、あしからず。

663:デフォルトの名無しさん
07/05/14 20:39:12
環境依存

664:デフォルトの名無しさん
07/05/14 20:41:07
さて、もう一つ、大大だーーーーいヒントでピントを与えちゃよ。
次は文字データとしてNULLを指定しちゃうよ。俺んとこは空文字でコードは0が入った。

#include <stdio.h>
int main(void){
char x=NULL;
printf("%c %d \n",x,x);
return 0;
}

665:デフォルトの名無しさん
07/05/14 20:42:57
そう、何か値(データ)として与えるのと、ポインタに対して与えるのとでは
ぜんぜん違うんですねぇ〜。これならわかるでしょ。NULLそのものが何なのか。
え?こんな説明じゃ不十分でヌルい?まぁ、後は使い方を適切にしてやってくれ。
ポインタにNULLを与えた場合、何も示すアドレスがないってことには変わりはないさ。

666:デフォルトの名無しさん
07/05/14 20:43:46
>>662
これ、時々偉そうに「環境依存」だなんていう奴がいたりするけど
実際に0が出ない環境を見たことあるのか?


667:デフォルトの名無しさん
07/05/14 20:50:12
>>665
まずは、お前のレスがどれか教えてくれ

668:デフォルトの名無しさん
07/05/14 20:56:55
>>667
そうやって相手をさぐろうとするだろ?だから気持ち悪いって思われるんだよ。
>>662が本日の最初だが?だから何だ?って言われることをお前は言うから
日頃周りから「なんだこいつ?気持ち悪い」って思われてんだよ。
いいたいことがあるなら言えよ、相手次第でいえるとかやっているから
お前は弱者を見つけては相手を叩く性格になっちまったんだろ?
自分が筋の通る説明ができないなら黙ってた方が良いぞ。
ちなみに、&xにして%pでポインタのアドレスを確認すると、
中にNULLで与えた値は入っているが、ちゃんとアドレスは割振られているから。確認してみろ。


669:デフォルトの名無しさん
07/05/14 20:57:46
>>535 プログラムよりアルゴリズムの方が(数学が)難しかった
#include<stdio.h>
int main(void){
    int x, tmp, left, ans, digit_align;

    printf("正整数を入力してください > ");
    scanf("%d", &x);
    if(x<0){printf("\nError:正整数を入力してください\n");return 1;}

    for(digit_align=1;x/digit_align>=100;digit_align*=100);

    left=x/digit_align;
    ans=0;
    while(left>0 || digit_align>0){
        for(tmp=9;tmp>0;tmp--)
            if((ans*20+tmp)*tmp<=left)
                break;
        if((ans*20+tmp)*tmp<0) break; // overflow?
        printf("%d", tmp);
        if(digit_align==1) printf(".");
        digit_align/=100;
        if(digit_align>0)
            left=(left-(ans*20+tmp)*tmp)*100+(x/digit_align)%100;
        else
            left=(left-(ans*20+tmp)*tmp)*100;
        ans=ans*10+tmp;
    }
    printf("\n");

    return 0;
}

670:デフォルトの名無しさん
07/05/14 21:00:50
ポインタに対してと値との違いがわからないならプログラムなんてやめとけ。

#include <stdio.h>
int main(void){
char x=NULL,*xn=NULL;
int y=NULL,*yn=NULL;

printf("char x=NULL : %p -%c- \nchar *xn=NULL : %p \n",&x,x,xn);
printf("int y=NULL : %p -%d- \nint *yn=NULL : %p",&y,y,yn);
return 0;
}

671:デフォルトの名無しさん
07/05/14 21:00:51
#include <stdio.h>
void main(void)
{
printf("てすつ");
int a;
a=NULL;
return a;
}


672:デフォルトの名無しさん
07/05/14 21:04:23
>>668
被害妄想激し過ぎだろ…
普通に流れが混乱して誰が誰か分からなかっただけなんだが、
まあいいや

673:デフォルトの名無しさん
07/05/14 21:06:10
>>669
ありがとうございました
助かりました

他のアホどもとは格が違いますね

674:デフォルトの名無しさん
07/05/14 21:06:58
>>672
うざい。何が言いたいかはっきりしろ。相手がどうとか関係なしに
NULLがどういうことか?の話で説明する相手次第で事実関係を捻じ曲げたり
おかしいと自分が思ったことを叩きつけるのはどうかと。言いたいことがあるなら言え。
すでにソースを提示して証明されてんだろ。ポインタとNULL(データ)を与えるのとはどういことかについて。
理解できないのにこんなスレで無知な初心者相手にいい加減なレスをしているのか貴様は?

675:デフォルトの名無しさん
07/05/14 21:11:02
>>672
相手にしないほうがいいよ
さっきだって人違いって言ってるのにわかろうとしないし
といっても擁護乙って言われるだけだけど
自分に対する批判は>>605だと思ってるから
ちなみに>>662が本日の最初って言うのはうそだから


676:デフォルトの名無しさん
07/05/14 21:12:14
>>673 訂正
先頭に #include<limits.h> を追加

        if((ans*20+tmp)*tmp<0) break; // overflow?

        if(ans>=(INT_MAX-81)/180) break; //overflow?

677:デフォルトの名無しさん
07/05/14 21:13:21
>>675
ですね
すみません

678:デフォルトの名無しさん
07/05/14 21:21:10
ぬるぽを代入するなら#define NULLPO 0にするか普通に0使えって事ですか?

679:デフォルトの名無しさん
07/05/14 21:21:55
>>631
マイコン等を使う組込系では、Cしか高級言語の選択肢がない
(ほかは低級なアセンブリ言語)という場合も多い。

680:デフォルトの名無しさん
07/05/14 21:23:58
>>678
NULLを代入したいのならNULLと書けばいいだろうガッ

681:デフォルトの名無しさん
07/05/14 21:24:08
>>666
「NULLが(void*)0と定義されていてコンパイルエラーになる」という可能性もある。

>>673
次から宿題スレ行け
C/C++の宿題を片付けます 87代目
スレリンク(tech板)l50

682:デフォルトの名無しさん
07/05/14 21:25:22
>>669
ここを宿題スレにするつもりか?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5226日前に更新/240 KB
担当:undef