12/07/23 08:40:54.94
>>111
わざわざありがとうございます。
私の知識が足りないので何を疑問に思っているのかが上手く伝えられていないんだと思います。
おっしゃる通りquin2decが4つの引数を受け取っていないのが疑問でした。
私の手元の参考書と比較するとquin2dec(char *s,int n)の*sとnを仮引数として受け取るのかな、と考えたのですが
それだと仮引数が2つだけで、私は「引数を4つにしないといけない」と捉えたので2つ足りない事に疑問を感じていました。
分かりにくい質問だらけで申し訳ないのですが教えていただけるとありがたいです
114:109
12/07/23 09:41:20.81
>>113
このコードで、引数(s)と、引数(n)とはそれぞれ何を表しているのか。ということですね。
すんません。quin2decについて、真っ当に追ってないから、引数(n)ついて、きちんと理解してません。
っていうのが正直な所です。
ちょっと気合を入れて動きを追ってみましょう。
7行目の if ( !s || !*s ) return n;
!s は s==0と同じ意味、sは(char *)だから sのアドレスが0だった場合(実際には、後述する「r,h,f,m,y以外」の文字だった場合)
!*s は *s == 0と同じ意味、 sのアドレスが指しているcharの値0の場合だから、null終端だった場合
どちらかの場合、引数(n)をそのまま返す。
11-27行目のswitch文
switch文の引数は*sだからアドレスsの指しているcharの値を指している。
case 'y'からcase 'r'まで、break;がないから、該当した文字列以下の文は(break;まで)すべて実行され、switch文を終える。
よって、yだったら14,16,18,20行目が実行されるので m==4となる。
同様に fだったら、18,20行目が実行されるので m==2となる。
r,h,f,m,y以外だったらdefaultまで行き m== -1となる。
115:109
12/07/23 09:41:38.76
(続き)
29-30行目は
まず m が 0以下という事は前のswitch文で「r,h,f,m,y以外」と言う事
その場合、30行目が実行される。
その時 引数(0,-1)でquin2decで再帰呼び出しされ、その戻り値が returnされているので、自分の戻り値となる。
で、再帰呼び出しされたquin2decでは7行目に引っかかるから、無条件に -1が帰ってくる。
(ということは 30行目は return -1;と記述しても問題ないような気がする。)
31行目は引数(s + 1, 5 * n + m)でquin2decで再帰呼び出しされ、その戻り値が returnされているので、自分の戻り値となる。
s + 1 は、sの次のアドレス(隣の文字のアドレス)にして quin2decに渡している。 注:再帰呼び出しされたquin2decの引数(s)が、自分の引数(s)の次のアドレスとなっている。
5 * n + m は 受け取った引数を5倍しているから、繰り上げ処理をして mを足している。
ふんふん、なるほど。それを繰り替えして、最後の桁まで行ったら、その戻り値が、呼び出し元に上がってくる訳か。
つまり、quin2decは引数(s)上から一文字ずつ処理して、引数(n)は、そのけた時点での十進数の値ということですね。
で、それを最終桁まで繰り返している。
自分だけが納得しているような気がする・・・。
116:109
12/07/23 09:46:03.32
>まず m が 0以下という事は前のswitch文で「r,h,f,m,y以外」と言う事
あ、0未満だね。
117:107
12/07/23 10:28:54.36
細かい説明本当にありがとうございます。
じっくり読んでquin2decが受ける引数について理解できました!
それだけでなく、あやふやで理解したつもりになっていたところも
説明を読んでいるうちに大分しっかりと理解できました。
せっかくの機会なので34-42行目のところも教えていただけないでしょうか?
理解した「つもり」だらけだったので、ここも見当違いな考えになっていそうです。
何だか結局全部丸投げみたいになってしまい申し訳ないのですが、よろしくお願いします
118:デフォルトの名無しさん
12/07/23 11:09:06.06
>>117
途中見てないが、chop()についてだけ。
目的: 引き数で渡されナル終端文字列の後方にある改行文字をchopする。
詳細:
・ナル終端文字を見つける。
・一つ遡る。
・その場所の文字が改行文字(或いは復帰文字)であればナル終端を書き込み、一つ遡る。
以上。
119:デフォルトの名無しさん
12/07/23 11:18:50.03
void chop(char * s)
{
char * p = strchr(s, '\0');
for (--p, p >= s && (* p == '\n' || * p == '\r'); --p)
* p = '\0';
}
120:デフォルトの名無しさん
12/07/23 11:22:00.32
>119を書いて気付いたんだが、>107のコードは何も入力せずに入力を閉じるとバグるな。
121:デフォルトの名無しさん
12/07/23 11:55:59.51
>>118
ありがとうございます。
頑張ってみます
122:デフォルトの名無しさん
12/07/23 11:59:49.68
いえいえ
123:デフォルトの名無しさん
12/07/23 12:17:34.50
あっそーれ
124: ◆QZaw55cn4c
12/07/23 12:21:29.66
>>109
俺のコードをよくもマニアックといったな。慰謝料にモリタポ払え
125: ◆QZaw55cn4c
12/07/23 12:30:13.15
>>120
ご指摘感謝。
何も入力しないといっても、エンターキーのみの入力という意味なら、\r, \n がバッファに載るのでほとんど問題ないでしょうが、
しかしバッファの直前がたまたま \n, \r だったりすると、確かにバグりますね。
以下に修正しておきます。
URLリンク(codepad.org)
126:デフォルトの名無しさん
12/07/23 12:47:06.48
何も入力しないってのはCTRL-Dのことだろ
的はずれにもほどがある
127:109
12/07/23 13:28:09.19
>>124
あ、本人?
勝手にコード解説しちゃって、ごめんね。
行間まで、思い込みで解説しちゃったから、
解釈の間違いあったら、正しといてください。
きっと、間違っているから。
128:デフォルトの名無しさん
12/07/23 13:34:07.13
なんだ、QZコードだったのか。納得。
129:デフォルトの名無しさん
12/07/23 14:31:44.81
0.1次元バーコードか?
130:デフォルトの名無しさん
12/07/23 15:53:44.74
え
131:デフォルトの名無しさん
12/07/23 17:36:21.47
#define NULL ((void *)0)
あるポインタをNULLで初期化すると、そのポインタはメモリ上の絶対アドレスである0番地を指すということなのでしょうか
132:デフォルトの名無しさん
12/07/23 17:42:33.91
>>131
0番地はワイルドカード。
133:デフォルトの名無しさん
12/07/23 17:46:25.38
環境による としか言い様がない気分
134:デフォルトの名無しさん
12/07/23 17:49:08.12
通常アドレスは仮想化してるから実際は指してないし参照できない
135:デフォルトの名無しさん
12/07/23 18:00:30.39
URLリンク(support.microsoft.com)
意味不明な日本語だけどMS-Cではプログラム終了時にNULLセグメントを調べて
そこのデータが書き換えられていればエラーとした
136:デフォルトの名無しさん
12/07/23 18:05:41.86
仮想記憶のない時代の話だな。
137: ◆QZaw55cn4c
12/07/23 18:28:00.53
>>127
丁寧に解説いただき恐縮です。
> 30行目は return -1;と記述しても問題ないような気がする。
これは確かに。return 文を一箇所にしたいという意思だが、そのために if (!s || !*s) と複雑になってしまったので、どっちでかいても一長一短。んー。
>>128
んー、なにを納得したのかおしえてください。匂いますか、いや臭いますか?
138:デフォルトの名無しさん
12/07/23 18:35:30.76
URLリンク(ideone.com)
とシンプルに書けばいいのに再帰使ってソースを読みにくくしてるところ
139: ◆QZaw55cn4c
12/07/23 19:17:48.17
え?再帰の方がよみやすいのですが?これって主観ですかね。
140:デフォルトの名無しさん
12/07/23 19:26:00.65
隙あらば再帰にしてしまう→再帰ッカー
他にもCゲンガー、フォートランナー、コボラーなど
141:デフォルトの名無しさん
12/07/23 19:27:49.63
2,3のコードがあげられてて
そのうちの再帰使ってるのが「わからん」ちゅーなら
初心者やらにはワカランのだろ
強力だけれども面倒くさい、
とくにその手の初心者には
誰かにとっては読みやすくても、
ここら辺りで宿題出したり聞いたりする人物のレヴェルも考える
普通なら ね
142:デフォルトの名無しさん
12/07/23 22:52:42.03
すみません、どうしても解答がわからないのですが...
問.関数、void addlist(LIST *head,LIST *addata)を完成させろ
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct name_list{
struct name_list *next;
char *name;
}LIST;
void addlist(LIST *head, LIST *addata);
int main(void){
LIST name0= {NULL, NULL};
LIST name1= {NULL, "B"};
LIST name2={NULL, "C"};
LIST name3={NULL, "D"};
LIST name4={NULL, "E"};
LIST addata = {NULL, "A"};
LIST *p;
LIST *head;
head=&name0; name0.next=&name1; name1.next=&name2; name2.next=&name3; name3.next=&name4;
addlist(head, &addata);
for(p = head->next; p != NULL;p=p->next)printf("%s\n,p->name");
どなたかお願い致します....(ノД`)
143:デフォルトの名無しさん
12/07/23 22:53:49.68
あ、一番下に
return 0;
}
を忘れてました...
144:デフォルトの名無しさん
12/07/23 22:57:15.17
>>1読むのも忘れてんぞ
145:>>142
12/07/23 22:59:04.90
>>144
ごめんなさい
これは過去問でして、明日試験なんですけど聞ける友達がいない....
C言語です
146:デフォルトの名無しさん
12/07/23 23:00:32.52
リストの末尾に追加かね
void addlist(LIST *head,LIST *addata)
{
LIST *p = head;
while (p->next) p = p->next;
p->next = addata;
}
147:デフォルトの名無しさん
12/07/23 23:04:27.30
PICマイコンを使用するためにC言語を勉強中です。
どうしてもプログラム中に、EEPROMへの読み書きを多用するので
int型とlong型用の2つの値をEEPROMから読み込み、int型long型のそれぞれの変数へ代入する関数を作ったのですが、ポインタの使い方がよくわかりません
hiとかloというのは2バイト以上の変数を1バイト単位に分割するために使用する”built_in.h”というヘッダファイル用の語句です
このコードの何がダメなのかも分らないのでご教授ください
よろしくお願いします
void main()
{
int x;
long y;
read2byte(100,&x);
read4byte(200,&y);
}
void read2byte(int a,int *b)
{
hi(*b) = EEPROM_Read(a);
lo(*b) = EEPROM_Read(a+1);
}
void read4byte(int a,long *b)
{
highest(*b) = EEPROM_Read(a);
higher(*b) = EEPROM_Read(a+1);
hi(*b) = EEPROM_Read(a+2);
lo(*b) = EEPROM_Read(a+3);
}
148:デフォルトの名無しさん
12/07/23 23:10:09.88
>>147
バイトオーダーが違うかもしれない
くらいしか分からん
149:147
12/07/23 23:11:54.31
書き忘れました
EEPROM_Read(a); というのはコンパイラ付属の関数で、aがEEPROMのメモリアドレスです
150:>>142
12/07/23 23:14:59.54
>>146
そもそもこのプログラムって何をしているものなのでしょうか....?
ソート?
あと、for文の上の
addlist(head, &addate)というのは何なのですか?
151:片山博文MZボット ◆0lBZNi.Q7evd
12/07/23 23:18:05.21
hi,loの定義をさらせ。
hi(*b)は左辺値ではないから代入できないと思われ
152:147
12/07/23 23:23:18.80
>>151
2バイト以上の値、例えばlong型(4バイト)を低いビットからlo,hi,higher,highestとバイト単位に分割するものです
153:デフォルトの名無しさん
12/07/23 23:26:02.62
>>150
うんにゃ
わたされた head から末尾を探し出して、その末端にさらに 渡された adddata を繋げてる
name0~name4 までのリストを手で構築後
adddata 関数を呼び出してる
意図として name0~name4 の後ろに adddata を連結しようとしてる と俺は解釈した
154:デフォルトの名無しさん
12/07/23 23:29:09.93
× adddata 関数を呼び出してる
○ addlist 関数を呼び出してる
155:>>142
12/07/23 23:30:02.40
>>153ご丁寧にありがとうございます
このプログラムはAがname0に入るわけでは無いんですか??
addataがname4の後に連結した時、whileが初めて回りだしてAが先頭に来るって事ですか?
やばい日本語おかしくてスミマセン
156:デフォルトの名無しさん
12/07/23 23:36:07.74
printf() の出力結果は BCDEA の予定
ABCDE にしたいのなら
void addlist(LIST *head,LIST *addata)
{
LIST *p = head->next;
head->next = addata->next;
addata->next = p;
}
157:デフォルトの名無しさん
12/07/23 23:36:41.10
>>142
厳しいようだけど、
明日試験で、過去問で解答が分からない。ってのは
解答を教えても、明日の試験では違う問題がでるから意味が無いのでは?
解き方が分かっていないんだから。
このプログラムは、addlistが不明なのだが、明示されてるのだから、
そこを理解する所から、入るべき。
(まさしく >>150 の疑問を理解できる様になる事が大事)
それから、足りない部分(addlistの中身)を考える。
158:デフォルトの名無しさん
12/07/23 23:37:14.59
× head->next = addata->next;
○ head->next = addata;
なんかヒデェな… もう寝る
159:157
12/07/23 23:39:14.48
>このプログラムは、addlistが不明なのだが、明示されてるのだから、そこを理解する所から、入るべき。
まつがい。
このプログラムは、addlistが不明なのだが、明示されている所を理解する所から入るべき
160:>>142
12/07/23 23:40:52.16
レス下さった皆さんありがとうございます
そもそも一晩(ではないんですけども)でやろうとした自分が悪いですね...
少し前の方から再度勉強しなおしてきます...
ありがとうございました!
161:片山博文MZボット ◆0lBZNi.Q7evd
12/07/23 23:41:19.46
*b = ((int)EEPROM_Read(a) << 8) | (int)EEPROM_Read(a+1);
や
*b = ((long)EEPROM_Read(a) << 24) | ((long)EEPROM_Read(a+1) << 16) | ((long)EEPROM_Read(a+2) << 8) | (long)EEPROM_Read(a+3);
みたいに書かないといけない。
162:デフォルトの名無しさん
12/07/23 23:47:27.06
>>147
君はまだEEPROMを使うべきではない(きり)
163:片山博文MZボット ◆0lBZNi.Q7evd
12/07/23 23:58:54.84
共用体を使う方法もある。
union I16{int i;
struct {unsigned char LO,HI;}};
union I32{long l;struct {I16 LO,HI;}
};
164:片山博文MZボット ◆0lBZNi.Q7evd
12/07/24 00:14:51.03
久しぶりにCやったら;とunionをつけ忘れたよ
165:147
12/07/24 00:26:01.62
>>161
レスありがとうございます。
その式と、下記の式だと自分には同じ動作だと思ってしまうのですが
何がどう違うのでしょうか?本当にわからないです><
void read4byte(int a,long *b)
{
highest(*b) = EEPROM_Read(a);
higher(*b) = EEPROM_Read(a+1);
hi(*b) = EEPROM_Read(a+2);
lo(*b) = EEPROM_Read(a+3);
}
166:デフォルトの名無しさん
12/07/24 00:29:04.57
>>165
hi とか lo がどんなものか分からないからこうしようぜ
void read4byte(int a, long *b)
{
unsigned char *p;
p=(unsigned char*)b;
*(p+0)=EEPROM_Read(a+0);
*(p+1)=EEPROM_Read(a+1);
*(p+2)=EEPROM_Read(a+2);
*(p+3)=EEPROM_Read(a+3);
}
167:片山博文MZボット ◆0lBZNi.Q7evd
12/07/24 00:33:47.87
>>165
恐らくhiマクロなどは内部でシフト演算を使っているので
hi(*b)などは参照がなくなって左辺値になれないから代入対象になれない。ただそれだけ。
168:147
12/07/24 00:39:29.70
>>166
レスありがとうございます。
実は、>>165で書いた式と、>>161さんの書いた式で問題なく読み込みができたのですが、
PICマイコンのスレで同じような質問をしたところ、ポインタの使い方?がおかしいと指摘されて
ここで質問させて頂きました。
一番気になるのはポインタの使い方の間違いと間違っているために起こり得る問題です。
long型(適当な値 99,999とか2,222,222)を一旦、EEPROMに書き込み、上記の式で読み込ませたところ
正常に読み込まれているので何が何だかさっぱりわかりません~~;
169:147
12/07/24 00:44:24.25
>>167
レスありがとうございます。
実は、>>168で書いたよう、に教えて下さった式も自分で書いた式も問題なく読み込みできています。
本当に何がダメなのか、本当はダメではないのか分らず、困りましたorz
170:片山博文MZボット ◆0lBZNi.Q7evd
12/07/24 01:00:20.84
ファイルbuilt_in.hを開いて中身を確認しなさい。
そこにhi,loの定義があると思われます。
それらをさらして下さい。
171:147
12/07/24 01:04:28.32
>>170
了解しました。下に晒します。
話変わりますが、例のコードはポインタの使い方って間違っていますかね?
そこが気になります。
#define Lo(param) ((char *)¶m)[0]
#define Hi(param) ((char *)¶m)[1]
#define Higher(param) ((char *)¶m)[2]
#define Highest(param) ((char *)¶m)[3]
#define lo(param) ((char *)¶m)[0]
#define hi(param) ((char *)¶m)[1]
#define higher(param) ((char *)¶m)[2]
#define highest(param) ((char *)¶m)[3]
172:147
12/07/24 01:06:18.61
文字化けしたので、&とparamの間にスペース入れました
#define Lo(param) ((char *)& param)[0]
#define Hi(param) ((char *)& param)[1]
#define Higher(param) ((char *)& param)[2]
#define Highest(param) ((char *)& param)[3]
#define lo(param) ((char *)& param)[0]
#define hi(param) ((char *)& param)[1]
#define higher(param) ((char *)& param)[2]
#define highest(param) ((char *)& param)[3]
173:デフォルトの名無しさん
12/07/24 01:06:47.16
>>171
>>147 のままで合ってるよ
174:片山博文MZボット ◆0lBZNi.Q7evd
12/07/24 01:08:49.01
検証の結果、問題なし。
シフト演算じゃなくて&とキャストを使ってた
175:デフォルトの名無しさん
12/07/24 01:10:37.95
hi, lo マクロは左辺値になれる形式だな
> PICマイコンのスレで同じような質問をしたところ、ポインタの使い方?がおかしいと指摘されて
その指摘は hi, lo を関数だと勘違いしての指摘かもしれんね
176:147
12/07/24 01:11:22.58
>>173
マジですか?
PICもC言語も始めて数か月程度しか経っておらず、ポインタを覚えるためにも初めて使ってみたのですが
PICマイコンスレで指摘され、どうしても自信がありません><
177:147
12/07/24 01:14:57.23
>>174-175
レスありがとうございます!
キャストとかの語句はまったくわかりませんでしたのでもっと勉強しないとダメですね
どうもありがとうございました!
178:デフォルトの名無しさん
12/07/24 07:52:56.12
いえいえ
179:デフォルトの名無しさん
12/07/24 11:01:09.22
連結リストの質問チラホラ出るけど、ポインタで教えるor
ポインタtoポインタで教えるのは教員の好みによるものなのかい?
180:デフォルトの名無しさん
12/07/24 11:06:40.17
リストで二重ポインタなんか使わんだろ
181: ◆QZaw55cn4c
12/07/24 12:25:23.77
>>180
え?使わない?
二重ポインタを使わないとなると、コピーコピーコピー、とルートまで延々コピーする格好の悪いことになるのだが?
182:デフォルトの名無しさん
12/07/24 12:31:00.60
>>181
それが正解だよ
コピーコストが嫌ならリストオブジェクト全体の参照を取ればいい
ノードの参照は共有しないのが常識
183:デフォルトの名無しさん
12/07/24 12:46:33.76
free()しちゃうとダングリングポインタが出来てしまう危険があるからか
184:デフォルトの名無しさん
12/07/24 13:12:59.51
URLリンク(ideone.com)
ふつー二重ポインタ使うでしょ
185:デフォルトの名無しさん
12/07/24 13:29:10.43
二重ポインタってポインタが指してる先を変更したい時に使うんじゃないのか?
それかポインタ配列か
話は変わるけどこういうのはcがfree()されるとaもbもダングリングポインタになってしまうけど
検出されないのな
当たり前か
後からaやbを使いまわす可能性があるし
int main(void)
{
int *a, *b, *c;
c = (int *)malloc(sizeof(int));
if (c == NULL)
exit(1);
*c = 123;
a = b = c;
printf("%d %d %d\n", *a, *b, *c);
free(c);
return 0;
}
186:デフォルトの名無しさん
12/07/24 13:29:14.80
使わねーよ。
アホすぐる。
187:デフォルトの名無しさん
12/07/24 13:30:18.83
>>185
お前はまったく理解していない。
188:デフォルトの名無しさん
12/07/24 14:51:53.24
for(i=0; i< 空欄B (float) ; i++) printf("%02x", *p++);
この空欄Bに入る単語を答えよという問題があるんですが キャスト演算子(float)を セミコロン直前におくような
表現が思い当たりません。(問題文全体はもっと長いです。)どのような表現が入りうるのでしょうか?
189:デフォルトの名無しさん
12/07/24 14:54:21.10
sizeof
190:デフォルトの名無しさん
12/07/24 15:06:43.27
あー、失念してました。ありがとうございます。 ついでに
printf(" %-12g",f); の意味も教えていただけないでしょうか?
問題が紙なので %ー12じゃなくくて %ーL2 かもしれませんが
191:デフォルトの名無しさん
12/07/24 15:09:38.05
すいません%-12gのほうはもういいです
192: ◆QZaw55cn4c
12/07/24 18:43:39.47
>>185
C に「検出」などというお子様仕様は皆無。
193:デフォルトの名無しさん
12/07/24 18:47:15.43
コンパイラによっては未使用変数や未初期化変数のアクセスは検出するがCの仕様ではないよな。
194:デフォルトの名無しさん
12/07/24 18:52:58.26
ひょっとしてinlineってCの仕様じゃない?
195:デフォルトの名無しさん
12/07/24 18:55:30.07
C99から。
196:デフォルトの名無しさん
12/07/24 20:16:30.67
ソフト会社でC99での開発って結構あるの?
197:デフォルトの名無しさん
12/07/24 20:17:28.88
まずない。
198:デフォルトの名無しさん
12/07/24 20:18:43.63
ですよねー
199:デフォルトの名無しさん
12/07/24 20:24:23.89
>>192
無職のオッサンに上から目線で言われたくないなあ
200:デフォルトの名無しさん
12/07/24 20:25:29.58
GCのアルゴリズムでも勉強したら?
201:デフォルトの名無しさん
12/07/24 20:39:57.16
Cでインラインしたいときはどうしてるの?
202:デフォルトの名無しさん
12/07/24 20:41:25.79
#define
203: ◆QZaw55cn4c
12/07/24 20:49:42.06
>>182
よろしければもう少しお話しいただけるとありがたい。
二重ポインタあるいはポインタの参照は必要不可欠だと思うのですけれども、それで正しいということでしょうか?
それともポインタのみで正、なのでしょうか?
URLリンク(ideone.com)
204: ◆QZaw55cn4c
12/07/24 20:50:19.64
>>199
であればそういう発言をしないことだ。
205:デフォルトの名無しさん
12/07/24 21:09:46.86
>>203
ルートノードを直接的にリストとみなさずに
ルートノードを包むようなリストオブジェクトを書くんだよ
ルートのアドレスがコロコロ変わったらリストを参照してる人が大変だろう
206:デフォルトの名無しさん
12/07/24 21:09:52.12
>>204
人のせいにすんな
まず働け
207:デフォルトの名無しさん
12/07/24 21:11:37.90
>>205
相手にするな。
208:デフォルトの名無しさん
12/07/24 21:40:15.20
cmdにgccと打つと、{gcc: 致命的エラー:入力ファイルがありません
RpC~オワオスB}とでるんだけど、だれか助けて(泣)
209:デフォルトの名無しさん
12/07/24 21:56:37.78
オワオスって何か\(^o^)/オワタみたい
210:デフォルトの名無しさん
12/07/24 22:17:32.84
>>208
ソースファイルを指定してないからじゃないの?
211:デフォルトの名無しさん
12/07/24 22:20:02.05
使っている人間が致命的なまでのノウミソなんだろうな。
なんて打ったかくらい全部描けよアホ
212:デフォルトの名無しさん
12/07/24 22:24:49.58
>>203
C++で書くんならmallocじゃなくてnew使おうよ・・・
必死で書いたのが伝わってきてキモス
213:デフォルトの名無しさん
12/07/24 22:25:22.19
全部書いてるんだろ。
214: ◆QZaw55cn4c
12/07/24 22:28:23.70
>>205
たしかにそれには同意します。
特にクラスに仕立てるときに、ルートを含むクラスとノードのクラスを一つにまとめようと苦心した記憶がありますが、
結局のところ、ルート(ファーストノードをさすポインタ)は、ノードクラスとは別にしたほうがいいと考えるようになりました。
URLリンク(codepad.org)
(結城さんのJavaデザパタ本はadapterパターンを試行したものです。リストではなく二分木ではありますが、Node クラスはほとんど構造体扱いで Node クラスのメンバ関数は軒並みstaticの有様です。)
ただしここで話題となっている、いや話題としたいのは、「リストや二分木を扱うときに、二重ポインタを使わずに書く、というのはあまり考えられないのでは?」という素朴な疑問です。
215: ◆QZaw55cn4c
12/07/24 22:30:09.22
>>212
単にCで参照を使いたいという願望だけでざっと書き下ろしてみたのですが、あー、ぶれてますねえ、なんで cstdio を使わずに iostream にしちゃったんだろう?
216:デフォルトの名無しさん
12/07/24 22:37:28.68
リファレンスへのポインタなんて恐らく初めて使ってみたんだろうな
217:デフォルトの名無しさん
12/07/24 22:41:16.29
おい、おまえらQZに対する嫉妬がすぎるぞw
218:デフォルトの名無しさん
12/07/24 22:41:17.06
C++でいいのならstd::listとか使うだろ
219:デフォルトの名無しさん
12/07/24 22:45:05.48
>>214
二重ポインタを使う必要がない(実際、簡単に書ける)
だからわざわざ間違いが起こりやすい二重ポインタを使うのは避けるべき
220: ◆QZaw55cn4c
12/07/24 22:55:52.66
>>216
ではなくて、ポインタ変数のリファレンス。
昔いろいろやってみたことがありました。スレリンク(tech板:504番)
221: ◆QZaw55cn4c
12/07/24 22:57:37.23
>>219
うん、それが理解できないでいるのです。
リストは >>184 ににた形で(二重ポインタ抜きで)書けそうですが、二分木やAVL木では、二重ポインタなしではほとんど不可能では、と考えるのです。
222:デフォルトの名無しさん
12/07/25 05:11:34.41
ほんと、低脳ほど頭が固くて笑える。
223:デフォルトの名無しさん
12/07/25 05:34:23.01
>>217
自己愛性パーソナリティ障害が何を言うかw
224:はちみつ餃子 ◆8X2XSCHEME
12/07/25 07:36:23.36
書けるっていう奴が書いてみせればてっとりばやいんじゃね?
225:デフォルトの名無しさん
12/07/25 07:52:53.60
え?お前も書けないと思ってんの?
コテやめた方がいんでね?
226:デフォルトの名無しさん
12/07/25 07:53:54.44
↑池沼
227:デフォルトの名無しさん
12/07/25 08:10:24.87
>>226
自己紹介乙。
今時Cなんて書かないけど、リストなんてのも書かないけど、
書くとしたらこんなもんだろ。
URLリンク(ideone.com)
228:デフォルトの名無しさん
12/07/25 08:40:42.42
うむ、リスト使う位ならC++で書くからな。
229:デフォルトの名無しさん
12/07/25 08:51:22.93
>>219
二重ポインタくらいで音を上げるど素人が「べき」なんて言うな、おこがましい
230:デフォルトの名無しさん
12/07/25 09:00:02.35
お前がな。
231:デフォルトの名無しさん
12/07/25 09:31:33.84
>>229
本物の低脳を久々に見た
229はガチでヤバイ
232:デフォルトの名無しさん
12/07/25 09:31:51.97
元は教員がど素人に教えるときの話でしょ
233:デフォルトの名無しさん
12/07/25 10:28:33.93
スタンフォードの例だ
URLリンク(cslibrary.stanford.edu)
234:デフォルトの名無しさん
12/07/25 11:26:23.77
老害にはC++の良さがわからんのですよ
235:デフォルトの名無しさん
12/07/25 11:32:07.99
>>184を見てみたが、要するにこれってリストの「先頭に」ノードを付け加えて行って、
先頭ノードを指すポインタの値がコロコロ変わるために、二重ポインタを使って
先頭ノードを指すポインタの値を書き換えてるんだよね
リストの最後尾にノードを付加するようにすれば二重ポインタは不要
236:デフォルトの名無しさん
12/07/25 11:38:54.61
挿入関数に渡したノードを指すポインタ以外がそのリストを参照していた場合参照先を見失う
237:はちみつ餃子 ◆8X2XSCHEME
12/07/25 12:21:56.77
>>225
書けないということは事実上証明不能 (いわゆる悪魔の証明) なので、
この場合の証明責任は書けるという側にあるということを述べただけで俺は
内容についてどちらとも思ってないというか全く考察してない。
238:デフォルトの名無しさん
12/07/25 12:24:56.26
普通なら考察以前の問題だからコテはずせって話なんだろ。
239:デフォルトの名無しさん
12/07/25 13:10:58.12
>>236
だよな
だから先頭にノードを付け加えるのは特殊なケースを除けば百害あって一利なしのような気がする
240:デフォルトの名無しさん
12/07/25 13:19:05.19
末尾追加は末尾を指すポインタの分メモリが必要、これが無いと遅くなる
先頭追加なら早くて、追加のメモリも要らないが、参照がコロコロ変化するのが面倒なのでリストをラップするオブジェクトが必要になり結局メモリ効率も前者と同じになる
241:デフォルトの名無しさん
12/07/25 13:50:20.40
なら双方向リストにしろよ
メモリはたくさん食うけど先頭ノードからすぐに末尾ノードへのポインタを得る事が出来る
だいたいリストをソートする時には単方向リストだと大変だぞ
242: ◆QZaw55cn4c
12/07/25 19:43:53.07
>>227
>>184, >>203 より機能を削ってますね。リストの頭にしかノードを追加できない。
>>184, >>203 と同じようにリストの途中に挿入する形で、かつ二重ポインタを使用しない、というのは可能なんでしょうか。
双方向ならできるかな?
243:デフォルトの名無しさん
12/07/25 19:46:08.51
できる
以上
244:デフォルトの名無しさん
12/07/25 19:53:54.30
以上
↑
詳細を議論できなくて逃げたいゴミがよく使う言葉
245:デフォルトの名無しさん
12/07/25 19:59:51.56
逆になんで出来ないと思うのか疑問
246:デフォルトの名無しさん
12/07/25 20:08:27.46
>>245
横からだが、それは、さすがに
悪魔の証明を求めていると思う。
247:デフォルトの名無しさん
12/07/25 20:09:02.25
>>241
双方向でリング状?
先頭->prev = 末尾
末尾->next = 先頭
248:デフォルトの名無しさん
12/07/25 20:10:43.91
リングリストでggrks
249:デフォルトの名無しさん
12/07/25 20:15:15.39
単方向・双方向と循環・非循環は別の設計思想じゃね?
250:デフォルトの名無しさん
12/07/25 20:16:43.45
>>246
悪魔の証明って言いたいだけだろ
普通にできるものを出来ないといいはるからなんでだよってなるのは当然
馬鹿な子供が掛け算が出来ないからってそれが計算不能なわけではないだろ
勉強してなんとかやろうとしてないだけだよ
251:デフォルトの名無しさん
12/07/25 20:22:39.12
証明まではできなくとも困難さの示唆くらいはできる事も多々
252:デフォルトの名無しさん
12/07/25 20:35:35.90
>>250
うん。言いたかっただけw
ただ、これは考え方の違いだからいいんだけど、
バカだと思った子に、「お前はバカだ」と言っても何も始まらないと思う。
その場合「君はこういう理由でバカだよ」と説明してあげた方がいいと思ってる。
253:デフォルトの名無しさん
12/07/25 20:38:54.11
バカな理由はログみれば?
散々書いてあるでしょ
254:デフォルトの名無しさん
12/07/25 20:42:00.05
>>252
バカには何を言っても無駄。このスレ見てればわかるだろ。
URLリンク(ideone.com)
255:デフォルトの名無しさん
12/07/25 21:15:44.00
>>247
双方向リストにするならリングリストにしないと意味が半分失われるよ
最初に作成したノードを指すポインタを保持しておく
そしてもし最初に作成したノードを削除した場合、一つ前(つまり最後尾)か
一つ後ろを指すように書き換える
256:デフォルトの名無しさん
12/07/25 21:23:24.18
URLリンク(www.geocities.jp)
URLリンク(www.ysr.net.it-chiba.ac.jp)
こんな感じか
そしてノードを削除していって一つもノードがなくなったらノードを指すポインタを
NULLにするなどしておく
別に無理にリングリストにする必要もないけどしておくといろいろと便利
257: ◆QZaw55cn4c
12/07/25 21:54:49.47
>>254
んー、各ノードを走査するときに、同時に前回の対象ノード=今回の親ノードを記憶しておくんですね。なるほど。
でも、これってリストだからできるやりかたで、二分木のときにはやる気はおきないなあ。
ああ、二分木を非再帰に構成する―上からノードをパチンコ玉よろしく落としていって、はまるところにはまる、っていうやりかたはありそうですね。
二重ポインタに固執していたんですが、いろいろあるんですね。ありがとうございました。
258:デフォルトの名無しさん
12/07/25 22:10:28.89
何言ってんだお前。
>>184と同じだろ。
259:デフォルトの名無しさん
12/07/25 22:13:15.37
みなさん、やっぱり自分の書いたコードが一番かわゆいのね、ふふふ
260:デフォルトの名無しさん
12/07/25 22:14:20.41
コテはずすなら一生はずしとけ。
261:259
12/07/25 22:22:51.53
ん?もしかしてQZさんだと思ってる?
残念ながら違います。。
運営さんにIPきいてみたら?
262:デフォルトの名無しさん
12/07/25 22:32:25.62
早く薬飲んで寝てろ。
一生な。
263: ◆QZaw55cn4c
12/07/25 22:32:46.57
>>258
え?
>>184 は二重ポインタ pp をつかってループ変数を一つにおさえていますけれども、>>254 は挿入地点 p とその親 pPrev の両方をおさえてるでしょ。
p の親がない場合は pPrev = 0 にして、そのときの処理は場合わけにしたりとか。
なんだか二重ポインタ抜きだといろいろ面倒だなあ。 たぶんやらない、やりたくない。
>>259
できるだけいろいろみるようにしてますが、やっぱりそういうものでしょうね。堅いといわれてもしかたがない。
264:デフォルトの名無しさん
12/07/25 22:34:17.70
どうでもいい
アホはアホでひとくくり
265:デフォルトの名無しさん
12/07/25 23:04:59.72
コードなんて、結局要件を満たして動きゃ良いので、
普通とか普通じゃないと、他人に理解されようがされまいが
そんの事はかは関係ない。動いたもん勝ち。
ただし、これを仕事する場合は、大抵チームで作って幾ものだから
当然、担当が変わることもある。
その場合、他の人が読めない様なコードはくずだし、
そんなコードを書く奴もポンコツ扱いされる。
266:デフォルトの名無しさん
12/07/25 23:13:06.82
某Qとかな
どうせコピペ検知システムでバレるのにモリタポなんか取ってひでえ
癖があるからすぐに分かってしまう
267:デフォルトの名無しさん
12/07/25 23:18:40.01
癖がわかるほどチェックしてんだ
本気で好きなんだな
きもちわるい
268:デフォルトの名無しさん
12/07/25 23:23:04.16
お前がな。
269:デフォルトの名無しさん
12/07/25 23:36:48.68
お前がな?
なにそれ
ちょっと説明してもらえるかな?
270:デフォルトの名無しさん
12/07/25 23:38:41.24
ひらがな。
よみがな。
271:デフォルトの名無しさん
12/07/25 23:44:18.19
>>267
大学の講師なめすぎ
272: ◆QZaw55cn4c
12/07/25 23:54:51.82
>>265
では、後半の観点からすると、>>184 と >>254 はどちらがより好ましいのでしょうか。
273:デフォルトの名無しさん
12/07/26 00:04:29.56
後者
274:デフォルトの名無しさん
12/07/26 00:19:16.05
素のCでリンクトリストか。なんか楽しそうだな。
275:デフォルトの名無しさん
12/07/26 01:30:53.63
プログラマーってどうせ恵まれた家庭の奴がなるんだろ?
俺んとことか金持ちじゃなかったからパソコンすらなかったし
276:デフォルトの名無しさん
12/07/26 01:39:57.94
君は自らも努力しなかっただけ
277:デフォルトの名無しさん
12/07/26 01:45:03.17
>>275
金持ちは医者とかだろ
世の中に何人プログラマーがいると思ってるんだ
今は開発環境がタダで手に入るけど
昔はアセンブラ買う金がなかったから
ノートにアセンブリ言語でコーディングして
CPUの命令セット見て手でコンパイルして
マシン語モニタで16進数で打ち込んだりしてたぞ
ドラクエの中村光一さんなんかも新聞配達でパソコン買ってたぞ
バイトすればパソコンくらい買えるだろ。てかなにで書き込んでるんだ
ちなみに秋元康さんは高校生のときに親の年収超えちゃって
親父が寂しそうな顔したとか
278:デフォルトの名無しさん
12/07/26 01:49:52.56
>>277
どうせ俺はプログラマーにはなれないんだよ。
どうしたらいい?
本気で就職困ってる。
大学院は行かない(1浪2留)情報学科
で就職ある?
アトピー持ちだよ。
就活が怖い。
279:デフォルトの名無しさん
12/07/26 01:51:35.76
+3だから2chで噂されてる新卒採用の年齢制限に引っかかるか心配
プログラマーなんてどうせ高専か大学ストレートで出た20前半の奴
がなるんだろ?おまけに実家は金持ちで小4くらいからWindowsいじ
ってたような。
俺は何もかも恵まれていない。
助言をくれ。
280:デフォルトの名無しさん
12/07/26 01:51:53.39
ここは人生相談するスレじゃねーぞ
281:デフォルトの名無しさん
12/07/26 01:56:03.73
文系卒でプログラムのプの字も知らなかったヤツがコーダーになる世の中で何を言ってるんだろう
282:デフォルトの名無しさん
12/07/26 01:58:05.80
>>281
それってさ単に有能なだけだろ..........
283:デフォルトの名無しさん
12/07/26 02:00:50.99
誰でもプログラマーになれるなら院出て仕事無いって嘆く奴はいねーよ
284:デフォルトの名無しさん
12/07/26 02:03:29.53
何でも知ってるQZaw55cn4cって仕事何なの?
もし彼が無職ならプログラマがいかに敷居の高い職業なのかわかるでしょ。
285:デフォルトの名無しさん
12/07/26 02:04:51.40
QZは破壊工作するからしゃーない
286:デフォルトの名無しさん
12/07/26 02:07:41.40
今ならスマホアプリでも作って売ればいいだろ
このスレ来てるんならCは分かるんだろ?
Cが分かってれば3日もあればObjective-Cは使えるようになる
IT土方なら中卒だっていたぞ
某官公庁の経理システムのリーダーとか
この人なんか内定貰ってから勉強してるんだぞ
URLリンク(itpro.nikkeibp.co.jp)
287:デフォルトの名無しさん
12/07/26 02:20:28.12
↑京大やんポテンシャル違いすぎ
288: ◆QZaw55cn4c
12/07/26 02:51:01.47
>>286
>Cが分かってれば3日もあればObjective-Cは使えるようになる
本当ですか?にわかには信じがたい。
今 Java やってますけれども、いろんなJava知識を一からやっているわけで、なかなかものになりません。
きょうはここでひっかかりました。スレリンク(tech板:595番)
289:デフォルトの名無しさん
12/07/26 02:54:24.41
円周率の近似値なんてどうやってC言語使ってやればいいわけ…
290:デフォルトの名無しさん
12/07/26 02:59:18.70
数学の問題だね
double精度でやるのは、公式知ってればすぐにできるけど、
出来合いのクラス使わずに多倍長計算やるとまあまあ手応えあって面白いよ
291:デフォルトの名無しさん
12/07/26 03:02:05.49
ガウスルジャンドルとかで検索してみるとか
292:デフォルトの名無しさん
12/07/26 03:04:34.51
>>282
Fラン卒だった
293:デフォルトの名無しさん
12/07/26 03:07:15.26
>>288
それレスみた?とりあえず英語読めないときついぞ
Java分かってればなお速いぞ
>>289
「C 円周率」でびんぐれ
「マチンの公式 C」でもいいぞ
294:デフォルトの名無しさん
12/07/26 03:28:00.90
>>288
中年ジジイは既に脳が硬化してるから無理だよ
295: ◆QZaw55cn4c
12/07/26 03:41:15.22
>>293
うん。自分で extends Applet の外にクラス作っておいだしたはいいものの、そのクラスをも extends Applet にしないといけなかったんですね。
まだぴんとこないのですけれども。
296:デフォルトの名無しさん
12/07/26 03:44:02.16
>そのクラスをも extends Applet にしないと
それがしたかったのなら正しいけど多分違うだろ
297: ◆QZaw55cn4c
12/07/26 03:54:03.79
>>296
そうですか?extends ではうまくいってます。
this を cast してもだめだったし、いまいち c++ と違うような気がするなあ。
298:デフォルトの名無しさん
12/07/26 03:57:47.08
うまくいってるってのはコンパイルが通るって事だけ?
299: ◆QZaw55cn4c
12/07/26 04:02:46.95
>>298
アプレットビュアーまでOKです。んーんー。
300:デフォルトの名無しさん
12/07/26 04:06:59.62
>>288
はインナークラスを外に出したって言ってるけど中にもまだ残ってるし
残ってるほうのForDimChangeで動いてるだけじゃないのかね
それとも他にも変更したのかね
301:デフォルトの名無しさん
12/07/26 04:08:23.61
つかスレ違いだからやめるわ
続きはあっちで
302:デフォルトの名無しさん
12/07/26 06:34:41.31
C++と違うって
こんな事で躓いてるようじゃC++もできんだろ
303:デフォルトの名無しさん
12/07/26 06:48:31.62
>>289
URLリンク(ideone.com)
304: ◆QZaw55cn4c
12/07/26 07:57:05.06
>>294
そう思うのは勝手ですが、かくいうあなたもいずれ硬化脳中年になるのです。
305:デフォルトの名無しさん
12/07/26 08:13:35.28
年齢関係ない
306:デフォルトの名無しさん
12/07/26 08:33:03.98
なんか適当に巡回してたらこのスレ見つけて触発されたからはじめたい。
おすすめのコンパイラ教えてくれ。あと学ぶためのサイトまた書籍とかも。
307:デフォルトの名無しさん
12/07/26 08:37:33.32
vc++expressでggr
308:デフォルトの名無しさん
12/07/26 08:41:55.68
了解thx
309:デフォルトの名無しさん
12/07/26 09:10:25.49
>>306
knoppixをDLして、CD-Rに焼いて、なおかつUSBにもisoを入れろ
ソイツの文字コードはUTFだから気をつけろ
310:デフォルトの名無しさん
12/07/26 09:13:00.95
7/22 日韓国交断絶国民大行進 in 関西
URLリンク(www.nicovideo.jp)
日韓国交断絶デモの公式サイト
URLリンク(haigai.exblog.jp)
URLリンク(pds.exblog.jp)
URLリンク(pds.exblog.jp)
URLリンク(pds.exblog.jp)
URLリンク(pds.exblog.jp)
URLリンク(pds.exblog.jp)
URLリンク(pds.exblog.jp)
URLリンク(www.youtube.com)
311:デフォルトの名無しさん
12/07/26 10:43:52.43
>>304
その議論は無意味ですよ
「今ここ」の話をしているのですから
312:デフォルトの名無しさん
12/07/26 13:02:39.83
>>306
初心者なら codepad.org でいいよ
VCとか自分のPCにはインストールしたくないよね
313:デフォルトの名無しさん
12/07/26 16:08:00.61
>>312
codepad...わかった
314:デフォルトの名無しさん
12/07/26 16:12:47.02
ちなみに「ここで学ぶといいよ」みたいなサイトある?
315:デフォルトの名無しさん
12/07/26 16:21:01.76
猫でもできるでいいんじゃね?
316:デフォルトの名無しさん
12/07/26 16:50:35.82
1から100までの間の奇数の和を求めるプログラムが難しいです
だれか助けてください
#include<stdio.h>
main()
{
int i, sum;
「わからない箇所」;
for(i=1; i<= 99;「わからない箇所」){
「わからない箇所」;
}
printf("sum = %d\n", sum);
}
大学の課題で必要なんですが、すいませんどなたか助けてください…。
317:デフォルトの名無しさん
12/07/26 16:52:49.98
sum=0
i+=2
sum+=i
318:デフォルトの名無しさん
12/07/26 16:59:54.01
sum = 2500
i += 100
sum += 0
319:デフォルトの名無しさん
12/07/26 17:04:39.45
うわ凄い助かります
非常に厚かましいのですが、この場合だとどうすれば良いのでしょうか
キーボードから3桁の整数を入力したとき、それぞれの桁の和を求めるプログラムを作りなさい
たとえば234と入力されたとき2+3+4を求める
#include
main()
{
int a, q, sum;
printf("3桁の整数を入力してください\n");
scanf("%d",&a);
q=「わからない箇所」;//100の位を求める
sum = q;
a =「わからない箇所」;//元の数aから100の位を除く数をあらためてaとする
q =「わからない箇所」;//10の位を求める
sum = sum + q;
a = 「わからない箇所」;//10の位を除く
sum = sum +「わからない箇所」;
printf("和=%d\n",sum);
320:デフォルトの名無しさん
12/07/26 17:07:55.74
>>319
a/100
a-q
a/10
a-q
a
321:デフォルトの名無しさん
12/07/26 17:17:13.72
C言語難しいですね...。勉強します...。
すいません、最後です。できればお願いしますorz
年利率がr%の銀行にa円預金したとき、それがb円になるのに何年かかるかを求めるプログラムを作りなさい
#include <stdio.h>
main()
{
double r, a, b;
int year = 0;
printf("r,a,bを,この順番で,入力してください\n");
scanf("%lf %lf %lf", &r, &a, &b);
while(「わからない箇所…たぶんmoneyだと思うのですが…){
year++;
a「わからない箇所」;
}printf("year=%d\n",year);
}
322:デフォルトの名無しさん
12/07/26 17:22:28.32
a<b
*=1*r/100
323:デフォルトの名無しさん
12/07/26 17:35:59.32
助けてください!
C言語の課題です。
「自分のフルネームをアルファベット小文字で入力し、そのアスキーコードを、10進数で求めて平均、分散、標準偏差を表示」
を表すソースを教えてください。
324:デフォルトの名無しさん
12/07/26 17:38:25.18
いやです。
325:デフォルトの名無しさん
12/07/26 17:38:36.89
課題はこっち
C/C++の宿題片付けます 159代目
スレリンク(tech板)
326:デフォルトの名無しさん
12/07/26 17:40:48.60
ごめんなさい。スレッド違いでしたね…
327:デフォルトの名無しさん
12/07/26 18:01:50.56
課題を人にやってもらったりしてるから
日本で人が育たないんだなあ
328:デフォルトの名無しさん
12/07/26 18:35:29.13
その代わりに課題をやってくれる人が育つので
ある程度問題解決
329:デフォルトの名無しさん
12/07/26 18:47:28.37
だって大学までの勉強なんて入社で評価されないし
遊んだりとか他のリア充活動ばかりが評価されるからなあ
そりゃ普通大学を真面目にやるのは損って思うでしょ
レポートはコピーしてその分遊んだりなんかでリア充した方が職を得やすいんじゃ誰も勉強しないよ
うちの同期のトモダチもそういうやつらはみんな大手決まってるけどコピー元のレポート書いてる俺や他の真面目くんはまだ中小にすら拒否されまくりだよ
330:デフォルトの名無しさん
12/07/26 19:16:37.48
日本人とは限らんしな
331:デフォルトの名無しさん
12/07/26 19:17:32.40
この業界はコミュ力ないクズはコード書けても不採用が常識だろ
コードは三ヶ月で書けるようになるからな
332:デフォルトの名無しさん
12/07/26 21:01:00.93
Qとかな
333:デフォルトの名無しさん
12/07/26 21:24:50.22
コンピュータサイエンスの教科書における問題の1つは、再帰のくだらない例を
掲載していることである。よくあるのは、階乗の計算やフィボナッチ数列の計算だ。
再帰は強力なツールであり、それをこのような状況で使用するとはあきれてものが
言えない。仮に、私の部下が再帰を使って階乗を計算しようものなら、別のだれかを
雇うだろう。
『Code Complete第2版〈上〉』(Steve McConnell,日経BPソフトプレス,2005年,p486)
334:デフォルトの名無しさん
12/07/26 21:29:03.54
コピペマン参上!まで読んだ。
335:デフォルトの名無しさん
12/07/26 21:42:30.19
で
そのイカした本にはcoooooooooooolなリカーシヴの実例が
載ってるんだろな
336:デフォルトの名無しさん
12/07/26 21:42:37.72
韓国政府 「在日はいい加減に祖国に帰れよ!在日の祖国定着を行うぞ!」 在日の帰国計画を用意
スレリンク(poverty板)
韓国、日本村を造成、在日韓国人の定着支援を計画
在外僑胞の村がある慶尚南道南海郡(キョンサンナムド・ナムヘグン)に日本村と観光休養団地が新たに造成される。
韓国南海郡は24日、郡庁でこうした内容が盛り込まれた事業計画を確定し発表した。
これによると郡は460億ウォン(約31億円)を投じて日本式住宅、コミュニティセンター、小公園などを備えた住宅団地を作る。
また、日本文化体験館、日本食・宿泊体験館、日本歴史文化館も作る。
故郷を離れた後、異国の地に住む在日韓国人の故国定着のためのものだと郡は説明した。
2012/7/25
URLリンク(japanese.joins.com)
337:デフォルトの名無しさん
12/07/26 21:48:06.81
ネトウヨ王に、俺はなる!まで読んだ。
338:デフォルトの名無しさん
12/07/26 21:49:40.51
>>333
フィボナチ数列は、再帰でもいいんじゃない?
まあビネの公式を調べて使えということかもしれないが。
339:デフォルトの名無しさん
12/07/26 22:41:32.51
>>338
違う。
再帰はスタックを消費する。
フィボナッチ数列を再帰で書いたら俺でも怒るわ。
この人は、「普通にループで書けるのに無駄にスタック消費しやがって!もっと考えろ!」ということを言いたいだけ。
もっと言うと、「素晴らしいものが何にでも通用すると思うな!『銀の弾丸』は無い!都度考えろ!」ということ。
340:デフォルトの名無しさん
12/07/26 22:43:57.02
順列調べるのに再帰してごめんなさい
341:デフォルトの名無しさん
12/07/26 22:45:09.15
>>333
Thasts neta, right?
342:デフォルトの名無しさん
12/07/26 22:45:41.69
再帰考えたやつだれだ、出てこい
343:デフォルトの名無しさん
12/07/26 22:46:15.79
>>339
コピペ馬鹿の分際で偉そうなことを言うなって
344:デフォルトの名無しさん
12/07/26 22:49:23.78
>>343
ほう、じゃあ何か偉そうなことを言ってみろ。
345:デフォルトの名無しさん
12/07/26 22:54:21.82
>>340
再帰は素晴らしい機構だが、盲信すんなってことだ。
確かに順列は再帰は不要だな。普通にループすべし。
346:デフォルトの名無しさん
12/07/26 22:55:07.52
私には無理ですなぜなら私が言うとそれは「えらいこと」そのものになってしまい、
「えらそうなこと」にはららないからです。
非常に済みませんが、あたなのような程度の低い低脳が滲み出た
ええらそうなことなることは、言えません。
347:デフォルトの名無しさん
12/07/26 22:55:35.28
順列調べるのにまず手作業で樹形図書いてるからそれに引きずられて再帰しちゃう
348:デフォルトの名無しさん
12/07/26 22:58:58.03
>>346
お疲れ様でした。田舎に帰って実家警備業にでも就いてください。
ついでに精神科にも通ってください。
349:デフォルトの名無しさん
12/07/26 23:04:17.70
itoa()を実装しようと思ったら、ついつい再帰で書いちゃうよね。
でも、ハノイの塔を再帰で書くのは却下w
350:デフォルトの名無しさん
12/07/26 23:05:29.20
末尾再帰なら許す
351:デフォルトの名無しさん
12/07/26 23:33:50.94
>>329
>>331
うわぁもうやめてくれ。
プログラマーって眼鏡かけたリア充の巣窟なんだろうな。
もう吐き気がとまらないわ。
俺は一生新聞配達か。
352:デフォルトの名無しさん
12/07/26 23:43:02.56
>>351
URLリンク(d.hatena.ne.jp)
ループは再帰にできるけど、再帰をループで書くのは面倒なんだっけか
353:デフォルトの名無しさん
12/07/26 23:45:16.23
オタクにもなれない、リア充にもなれない
354:デフォルトの名無しさん
12/07/27 00:08:52.66
>>344
例にそんなに噛み付かないでくれよ
ほら、ジャーキーやるからさ(´・ω・`)
355:デフォルトの名無しさん
12/07/27 00:12:20.79
>>339
スタックを消費するのは仕方ない場合もあるが、
フィボナッチ数列で問題になるのは単純に再帰で実装すると
ループで書いた場合より計算量が増える事でしょ
じゃあどうする?という事で、メモ化や動的計画法の
話題に持っていくのが一つのアプローチ
これ単体では「くだらない」が、例としてはむしろ単純な事が重要
356:デフォルトの名無しさん
12/07/27 00:12:38.43
チクワくれチクワ
357:デフォルトの名無しさん
12/07/27 00:28:40.54
動的計画でフィボナッチどう書くの?
358:デフォルトの名無しさん
12/07/27 00:35:03.68
>>357
#include <stdio.h>
long fib(int n)
{
static long data[50]={1,1};
if(n>=46) return -1;
if(data[n]==0) data[n]=fib(n-1)+fib(n-2);
return data[n];
}
int main(void)
{
int i;
for(i=0;i<50;i++) printf("%ld\n", fib(i));
return 0;
}
359:デフォルトの名無しさん
12/07/27 00:49:42.04
じゃあメモ化は?
360:デフォルトの名無しさん
12/07/27 01:09:07.08
>>359
動的計画法でしょ
361: ◆QZaw55cn4c
12/07/27 04:44:09.61
>>284
仮になんでも知っているとして、それでも知っていることと書けること、それも納期や雑用等のプレッシャーのもとで書けること、とは相関はないと考えています。
362: ◆QZaw55cn4c
12/07/27 04:46:53.82
>>273
二重ポインタ自体の理解困難性というデメリットと、二重ポインタ使用によるループ記述の見通しのよさというメリットを比較して、前者に重きを置く理由を教えてください。
363:デフォルトの名無しさん
12/07/27 05:21:28.32
見通しの良さって明らかなメリットと言えるほどの差が無い
364:デフォルトの名無しさん
12/07/27 05:39:56.40
二重ポインタくらい理解できなくてどうすんのさ
char *argv[]とか
365:デフォルトの名無しさん
12/07/27 05:40:25.05
むしろ悪いよね。
初心者はちゃんと理解もできないし。
366:デフォルトの名無しさん
12/07/27 06:47:49.33
>>358
それ、ただキャッシュしてるだけやん。
なんでそれが動的計画なの?
367:デフォルトの名無しさん
12/07/27 10:02:55.88
理解することとメリットがあることは別物
368:デフォルトの名無しさん
12/07/27 10:04:28.04
お前がそう思うんならそう(ry
369:デフォルトの名無しさん
12/07/27 10:14:18.17
>>361
無職なのに納期?おかしな事を言うなあ
やっぱり狂ってる
370:デフォルトの名無しさん
12/07/27 11:28:24.19
男が女性問題を議論してはいけないと申されるのか
371:デフォルトの名無しさん
12/07/27 13:51:49.24
標準Cで巨大ファイルを扱うにはどうすれば?
整数で扱える範囲を超えてシークできない
372:デフォルトの名無しさん
12/07/27 14:00:31.96
>>371
Win32のCreateFile()、SetFilePointer()、RealFile()、WriteFile()を使えば
64bitまでアクセス出来る
373:デフォルトの名無しさん
12/07/27 14:02:49.21
標準Cとか書いてるのにか。
374:デフォルトの名無しさん
12/07/27 14:03:20.13
64BIT以上はどうするんですか?
375:デフォルトの名無しさん
12/07/27 14:05:48.62
日 本 語 で お k
376:デフォルトの名無しさん
12/07/27 14:06:28.80
C言語初心者だけど
理解しにくい記述は避けるってのが他言語で覚えた掟
perlのワンライナーとかスゴイけど怖い
「これ修正して(´・ω・`)」
「無茶言わないで下さい(´・ω・`)」
ダブルポインターはそこまで鬼畜じゃないか?
377:デフォルトの名無しさん
12/07/27 14:07:59.67
URLリンク(support.microsoft.com)
>>374
64bitだと1680万TiBあるのだが
そういうHDDが出る頃にはもうWin32なんて使われないだろう
からかってるのか?
378:デフォルトの名無しさん
12/07/27 14:22:14.46
>>376
ダブルポインターなんて言葉自体ポインターを理解できない輩の言い訳にしか過ぎない。
ポインターに鬼畜もへったくれも無いので、必要なら必要なだけ使えばいい。
379:デフォルトの名無しさん
12/07/27 14:28:41.04
そういうやつに使われると迷惑なだけなんだが。
380:デフォルトの名無しさん
12/07/27 16:10:05.43
配列の境界チェックを一時的に導入する書き方ってないかな?
デバッグ時だけチェック入りのコードにしてリリース時は速度稼ぐために外したいんだけど
381:デフォルトの名無しさん
12/07/27 16:15:45.71
配列へのアクセスをマクロ経由にすればいい。
382:デフォルトの名無しさん
12/07/27 16:18:57.94
value = array[i];
↓
value = GET(array, i);
こんなのか
383:デフォルトの名無しさん
12/07/27 16:20:21.77
既にあるコードの見た目を変えないようなマクロを導入するのは無理?
384:デフォルトの名無しさん
12/07/27 16:21:29.70
お前、アホだろ。
385:デフォルトの名無しさん
12/07/27 16:28:02.68
とりあえず静的解析ツール使えばいんじゃねーのか?
386:デフォルトの名無しさん
12/07/27 16:29:10.31
そのレベルじゃ途方にくれる結果になるとは思うが。
387:デフォルトの名無しさん
12/07/27 16:31:57.84
assert
388:デフォルトの名無しさん
12/07/27 16:33:14.96
昔C#に移植してみたっけな
手間はかかるがかなり効果はあった
389:デフォルトの名無しさん
12/07/27 16:44:35.63
>>385
それよさそう
お勧めのツールはある?
390:デフォルトの名無しさん
12/07/27 16:51:29.97
Cppcheckでやってみるか
391:デフォルトの名無しさん
12/07/27 16:51:43.60
coverity
392:デフォルトの名無しさん
12/07/27 17:04:54.35
静的解析ツールで境界チェックってできるの?
定数等からある程度はわかるだろうけど実行時にしかわからないものもあるよね。
393:デフォルトの名無しさん
12/07/27 17:36:54.63
とりあえずC++から入って後々Javaとか後付することにした
VC++でいいと聞いてインスコしたんだけど、始めにロゴみたいなの出て一瞬で消えて起動さえしないんだけど。
どゆこと?教えてエロい人
ちなみにOSはWindows7
394:デフォルトの名無しさん
12/07/27 17:40:43.47
再インスコ
395:デフォルトの名無しさん
12/07/27 17:47:02.39
スペインに勝利! 世界は日本を見くびっていた=中国メディア
ロンドン五輪・男子サッカーが26日開幕し、日本は強豪スペインに1-0で勝利した。中国メディアも日本の勝利を大きく伝え、騰訊網は「世界は日本を見くびっていた」とする評論記事を掲載した。
記事は、日本についてヨーロッパは「現代サッカーを速やかに吸収する素晴らしい学習者、模倣者」と認識し、中国は「日本のサッカーを学ぶのではなく、日本が他人からどうやって学んできたかを学ぶべき」
と考えてきたと論じたうえで「これは間違いなく日本に対する過小評価だ」「ヨーロッパにしろ中国にしろ、日本サッカーは『学び続ける』ことだけで強くなってきたと考えることにすっかり慣れてしまった」とした。
一方、スペイン戦の勝利後、日本代表の関塚隆監督や選手たちが口々に「ボール支配の時間が少なすぎた」と不満をこぼしたことに触れ、
「彼らは『学習者』としてスペインに挑んだのではない。日本の態度は強い『競争者』意識の表れだ」と分析。「この意識は非常に尊いものだ」とし、「学習」ばかりを強調する中国サッカーの意識を暗に批判した。
そして、強い競争者意識を持った日本がスペイン戦で見せたパフォーマンスについて「もっとチャンスを生かせていれば、5-0でスペインに勝ってもおかしくなかった」と評価した。(編集担当:柳川俊之)
URLリンク(news.searchina.ne.jp)
396:デフォルトの名無しさん
12/07/27 17:50:50.61
>>393
始め、ってどの始めだ
397:デフォルトの名無しさん
12/07/27 18:15:18.31
>>394
何度か再インスコしたんだけど無理だった。
>>396
起動すると「Visual C++ 2010 Express」て書かれて、その後その表示が消えて、そのまま何も起こらない。
398:デフォルトの名無しさん
12/07/27 18:19:58.70
VSスレ行け
399: ◆QZaw55cn4c
12/07/27 19:41:43.68
>>380
C++ でoperator[]
ただし、ポインタが境界外っていうのはだめだね。
bcc32 -v -vG はどうだったっけ。
400:デフォルトの名無しさん
12/07/27 19:48:09.66
C++はスレ違い
401:デフォルトの名無しさん
12/07/27 19:57:23.71
インデックス値で境界外を指しても間違いとは限らねーし
Cの文法でインデックス正誤がどうこうの要求自体が間違ってる
402:デフォルトの名無しさん
12/07/27 20:02:22.47
その程度、静的解析ツールはサポートしてるけどな。
403:デフォルトの名無しさん
12/07/27 20:07:18.22
>>380
面倒でもassert使え
404:デフォルトの名無しさん
12/07/27 20:12:33.37
>>401=アホ
405:デフォルトの名無しさん
12/07/27 20:19:38.86
>>404
アホはおまえ
インデックス値で境界外を指す間違っていない例を知らないだけだ
406:デフォルトの名無しさん
12/07/27 20:22:40.59
↑
恥の上塗り
407: ◆QZaw55cn4c
12/07/27 20:27:43.78
>>401
でも i が out of bounds で a[i] に読みにしろ書きにしろアクセスした時点でアウトでしょ?
だったら operator[] は有用だとおもうんですけど。
408:デフォルトの名無しさん
12/07/27 20:29:08.27
URLリンク(ideone.com)
409:デフォルトの名無しさん
12/07/27 20:31:52.10
今更C言語なんかで改変に耐性のないクソコード書くヤツに
煩わされる様な事は無いだろうから
無知は放置の方向で
410:デフォルトの名無しさん
12/07/27 20:34:52.96
世の中には問題にならない例も有る事なんかデバッグしなくていい理由にならんわ
問題が有るからデバッグするんだろ
411:デフォルトの名無しさん
12/07/27 20:36:56.02
>>409=池沼
412: ◆QZaw55cn4c
12/07/27 20:49:02.61
>>408
それ、C99 以降ね。
あと、URLリンク(www.kouno.jp)
>Dennis Ritchieは「Cの実装への根拠 のない馴れ馴れしさ」と呼んだ。
413:デフォルトの名無しさん
12/07/27 20:52:31.95
【社会】 ノーベル賞・利根川進教授の15歳息子、米MITの寮自室で死亡…異臭で発覚、警察「事件性はない」
URLリンク(logsoku.com)
414: ◆QZaw55cn4c
12/07/27 21:10:23.34
>>408
あと、文字列末尾の\0の分は足さなくてもいいのか?
415:デフォルトの名無しさん
12/07/27 21:18:34.01
いつの話題だよ
池沼か?
事件性があるのはお前の話題の遅さだろks
416:デフォルトの名無しさん
12/07/27 21:21:15.86
sizeof "hoge" は5だろ
417: ◆QZaw55cn4c
12/07/27 21:37:20.90
>>416
なるほど、thx。
でも普段これをやるときは strlen() を使わざるを得ないな。だって不定長のデータを扱うためなんだろう?この手の構造体を使う場合というのは。
418:デフォルトの名無しさん
12/07/27 22:10:36.45
sizeof "hoge"[100] == 1 が保証されるのを知らないアホは逃げたか?
419:デフォルトの名無しさん
12/07/27 22:37:36.57
うん
420:デフォルトの名無しさん
12/07/27 22:48:56.65
>>418=ゴミ
421:あきら
12/07/27 22:54:01.24
勉強期間がまだ3カ月程度でまだよくわかっていないので
説明お願いしたいです。
本当に困っているので
すみませんがよろしくお願いします!
int i=0,n=1000;
while(n>0){
n=n-7;
i++;
}
printf("i=%d,n=%d",i,n);
答えがi=143,n=-1になることを説明お願いします。
iは1000/143であってますか?
422:デフォルトの名無しさん
12/07/27 22:56:58.45
ゲーム「フォトカノ」のコミカライズ単行本が続々登場
エンターブレイン制作によるPSP用恋愛シミュレーションゲーム「フォトカノ」を原作にした、マンガ作品の単行本が連続してリリースされている。
7月25日にはアンソロジー「フォトカノ Omnibus Album」が、本日7月27日には柚木N'「フォトカノ Sweet Snap」の1巻が発売された。
「フォトカノ Omnibus Album」では成沢空、PONPON、星野円ら10名の作家が、各ヒロインをメインにしたエピソードを執筆。カバーイラストは
「鉄道むすめ」のキャラクターデザインで知られる、みぶなつきが手がけている。
一方「フォトカノ Sweet Snap」は、ヒロインのひとり・新見遙佳を軸に展開する長編ストーリー。月刊電撃マオウ(アスキー・メディアワークス)で
連載されている。アニメイト、コミックとらのあな、ゲーマーズ、まんが王、WonderGOOでは、「フォトカノ Sweet Snap」1巻の購入者に柚木N'
描き下ろしのイラスト特典を配布中。特典の数には限りがあるため、気になる人はお早めに。
またヤングアニマル(白泉社)で連載されている、ナイロン「フォトカノ Your Eyes Only」の1巻は8月24日にリリース。この発売を記念してヤング
アニマルと月刊電撃マオウでは、出版社の垣根を越えた出張掲載企画が実施される。8月10日発売のヤングアニマル16号には柚木N'が、
8月27日発売の月刊電撃マオウ10月号にはナイロンが登場し、互いに「フォトカノ」の出張マンガを発表する。
URLリンク(natalie.mu)
URLリンク(blog.dengeki.com)
URLリンク(blog-imgs-51.fc2.com)
URLリンク(blog-imgs-36.fc2.com)
423:デフォルトの名無しさん
12/07/27 23:58:36.26
キモヲタコピペマン参上!まで読んだ。
424:デフォルトの名無しさん
12/07/28 03:17:25.17
>>412のリンク先に
>char namestr[MAXSIZE];
>ここでMAXSIZEは配列namestrに保存されうるどんな名前よりも大きい。
>しかしながらこの技法も、規格の厳密な解釈によると許されないようだ。
ってあるけどなんで?
425: ◆QZaw55cn4c
12/07/28 04:40:03.39
>>424
URLリンク(c-faq.com)
に補完されているのをみると、この場合も構造体の malloc() では、
struct name *ret = malloc(sizeof(struct name)-MAXSIZE+strlen(newname)+1);
ととり、同じく臨機応変に構造体のサイズが変化するがごとくに使うやりかたを指しているようだ。
これら二つのやりかたに関する議論の内容は残念ながらしらない。
426:デフォルトの名無しさん
12/07/28 05:20:20.74
struct name {
int namelen;
char namestr[1];
};
これ初めて見たんだけどどう使うの?
はみ出すんじゃないの?
427:デフォルトの名無しさん
12/07/28 05:31:42.03
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;
mallocとかで必要なだけ領域を確保してアクセスするんだよ
428:デフォルトの名無しさん
12/07/28 05:37:05.30
ああ、そういう事ね
サンクス
429:デフォルトの名無しさん
12/07/28 09:27:48.90
>>421
何に困ってるのかよく解らんから、説明っつーても「書いてある通りだよ」としか。
430:デフォルトの名無しさん
12/07/28 11:57:25.56
大炎上の楽天「Kobo」 「青空文庫で水増し」「英語しか使えない」「インストールできない」→レビュー非表示に
スレリンク(poverty板)
自称グローバル企業楽天三木谷「Windowsって漢字のアカウント許してるのかよw2バイトとかありえねぇ」
スレリンク(poverty板)
馬鹿な日本人が漢字使ってマンガしか読まないからw楽天三木谷日本人に宣戦布告か?
スレリンク(poverty板)
大炎上の楽天「Kobo」 「青空文庫で水増し」「英語しか使えない」「インストールできない」→レビュー非表示に
スレリンク(poverty板)
低評価レビューを隠して逃走した楽天・三木谷社長「細かいことで騒いでいるのは少数派ですよw」
スレリンク(poverty板)
三木谷「コボの出足は大成功、ネガティブな口コミは誤情報だから消し、内容を吟味して再掲載する」
スレリンク(poverty板)
431:デフォルトの名無しさん
12/07/28 13:58:58.70
>>421
はい、合ってます
432:デフォルトの名無しさん
12/07/28 16:33:23.79
>>421
いいえ、合ってません
433:デフォルトの名無しさん
12/07/29 00:18:52.00
ある関数の中で別の関数の処理を書く事って出来ないんですか?
int main(){
void remain(){
i=2;
}
}
こんなの~
434:デフォルトの名無しさん
12/07/29 00:25:50.94
newしてvector型配列に追加したデータは
vectorの.clear()関数を使用した際にdeleteされますか?
435:デフォルトの名無しさん
12/07/29 00:40:03.31
>>433
こういうこと?
URLリンク(ideone.com)
できるっぽいね。初めてやってみたけど
436:433
12/07/29 00:46:49.28
>>435
こんぱいら~によっては出来ないんでしょうか?
わたしはVisual C++ 2010使ってますが関数の名前の箇所でコロン付けなさいと言われちゃう…
ルーチン呼び出しって思われてるのかな出来ませんでした><;
そのサイトで使われているのはgccでしょうかね
437:デフォルトの名無しさん
12/07/29 00:51:55.36
>>436
調べてみたら関数のネストはGCCの拡張だそうです。
VC++ではできないみたいですね。
438:デフォルトの名無しさん
12/07/29 02:51:26.79
関数内で関数定義なんて見にくいだけでいいことないだろ
439:デフォルトの名無しさん
12/07/29 03:59:11.54
>>438
いや。使いたいことはある。特定のルーチンを使いまわししたいときは特に。
最近では AVL木。木の回転のまえのルーチンはメインの関数内に入れたいなと。
440:デフォルトの名無しさん
12/07/29 04:29:25.29
中括弧閉じのマクロにしちまえばいいじゃん。
441:デフォルトの名無しさん
12/07/29 05:28:20.51
>>439
C++でクラス階層を重ねる手法に時代は移ってる
Cは全ての関数が同じレベルにあるので管理が難しい
442:433
12/07/29 07:53:37.18
なるほど~
ではグニューCを使うべきなのでしょうか?VC++は学び始めた最初から使っていてある程度慣れてきた感もあるのですが…
関数の中に書く事でコードにある程度まとまった感が欲しかったのでやってみただけです
あと初心の段階でこういった依存性を体感できたのはちょっと嬉しかったり
よい経験に。
>>440
初心者なので分かりませんでしたw>ちゅうかっことじのまくろ
443:デフォルトの名無しさん
12/07/29 09:05:22.47
別に関数かしなくても医院で内科医?
int main()
{
/* 適当に処理 */
/* remain */ {
i = 2;
}
/* 適当に処理 */
return 0;
}
444:デフォルトの名無しさん
12/07/29 10:18:19.69
別の関数を呼び出さずに、1つの関数内だけでサブルーチンと同じ流れ
制御構造(コール、リターン)を実現する記述方法って、なにかありますか?
445:デフォルトの名無しさん
12/07/29 10:24:02.64
>>444
つ[goto]
446:デフォルトの名無しさん
12/07/29 10:24:26.86
setjmp
447:デフォルトの名無しさん
12/07/29 10:36:33.46
>>445-446
情報ありがとうございます
448:はちみつ餃子 ◆8X2XSCHEME
12/07/29 11:11:53.96
>>442
C++ であれば関数内でクラス定義できるのを利用してこんな風に書けなくもない。
スレ違いだけど。
int i;
int main() {
struct d {
static void remain(){
i=2;
}
};
d::remain();
return 0;
}
449:433
12/07/29 11:15:29.69
>>443
すいません。実は処理がi = 2だけじゃなく結構長いソースなので同化させちゃうと何度も呼び出さないといけなくなっちゃいます…
/* remain */ {
i = 2;
}
だけだとラベルがないので多数から参照できないお…、と言おうと思ったら>>444さんの会話の中で出ているジャンプ命令がありますねw
ですがすぱげってぃ~状態になりませんか?ジャンプだらけだと…
やはりここは素直にmainルーチンのソトに置くのが妥当のようですね…。個人的に残念ではありますが
450:はちみつ餃子 ◆8X2XSCHEME
12/07/29 11:19:20.72
>>442
処理系の独自拡張を使うのは可能な範囲では避けた方がいいというのが一般的な意見じゃないかと思う。
特に関数内での関数定義はマクロで切り分けたりもしづらいタイプの機能なので移植性を損いがち。
更に言うならめったに使わない機能なので、変なバグが残っていたり将来的にサポートが打ち切られる可能性も少なくない。
といった欠点は指摘できるけど、利点と欠点を比べてどう判断するかは個別の状況によるトレードオフの問題。
451:433
12/07/29 11:29:41.03
>>448
はちみつ餃子さんありがとうございます。
C++で書いてもいいのですがとりあえずは>>449に書いた暫定対策で行きますw
クラス定義とかは初耳です。
C++は参考書買ってないので(X_x)...
勉強します…orz
452:デフォルトの名無しさん
12/07/29 12:17:56.38
アルゴリズムはもう発見しつくされてるから
プログラミング業界って技術者がいらないの?
453:デフォルトの名無しさん
12/07/29 12:22:02.91
> プログラミング業界って技術者がいらないの?
こういう質問に答えてくれるプログラムが開発されたらいらなくなると思うよ。
454:デフォルトの名無しさん
12/07/29 12:37:48.51
>>452
こういうやつがいるから技術者が必要なんだよ
455:デフォルトの名無しさん
12/07/29 13:07:29.51
技術者必要なんだけど、要らないやってずうっとやって来て、プログラムの作れない国になっちゃった。
456:デフォルトの名無しさん
12/07/29 13:19:15.60
技術はほとんどが隠されて共有されないからね
世界各地で同じようなものを再発明しないといけないんだよ
だから技術者はいくらいても足りない
457:デフォルトの名無しさん
12/07/29 14:24:05.39
C++のSTLは車輪の再発明をかなり抑えたという功績は大きい
スレチだけど
Cで書いてると毎度同じような事を何回も書いてすごい時間を無駄にしているような
気がする
ライブラリ化して一般化すればいいんだけどMATLABのような物を一人で作る事は
まず無理
458:デフォルトの名無しさん
12/07/29 14:53:05.84
技術がない人たちのレスが続いています
あと少しのご辛抱です
459:デフォルトの名無しさん
12/07/29 14:58:33.39
mallocってたとえば1000バイト確保しておいて10バイト分の入力のときにのこりの990バイトはその入力が終わった時点で開放されるんですか?
460:デフォルトの名無しさん
12/07/29 15:03:15.97
>>458
あと少しってどれくらいですか
461:デフォルトの名無しさん
12/07/29 15:10:28.74
>>459
されません
462:デフォルトの名無しさん
12/07/29 15:14:20.34
>>459
free()してください
463:デフォルトの名無しさん
12/07/29 15:14:41.76
あ、残りの990バイトが不要ってのならrealloc()でもいい
464:デフォルトの名無しさん
12/07/29 15:33:58.22
レスありがとうございます。
やっぱりfree()しない限りは開放されないんですよね。
じゃああんまり動的メモリ確保の意義ってないんじゃないのかななんて思ったりするのですが・・・
と思ったらrealloc()なんてあるんですね。
ちょっといろいろ試してみます。
465:デフォルトの名無しさん
12/07/29 15:35:13.40
>>457
Cでそういう有名なライブラリってglibc以外になんかある?
JavaとかC#やってから戻ってきたら文字列処理が
改めてめんどくさいと感じた
466:デフォルトの名無しさん
12/07/29 16:36:21.13
ないよ
467:デフォルトの名無しさん
12/07/29 17:07:47.61
>>465
CでSTLやるのあったやん
templateないのにどうやってジェネリックやってんのか知らんけど
URLリンク(cstl.sourceforge.jp)
ようやるわ
468:デフォルトの名無しさん
12/07/29 17:09:38.39
>>464
>動的メモリ確保の意義ってないんじゃないのか
いやいや、これが非常に便利なんですよ。おいおい理解が深まると重宝しますよ。楽しみにしてください。
469:デフォルトの名無しさん
12/07/29 17:15:55.06
>>467
ジェネリックってなに?
470:デフォルトの名無しさん
12/07/29 17:25:18.28
ゾロのことじゃね?
471:デフォルトの名無しさん
12/07/29 17:26:39.41
>>469
あれC++のtemplate知らんの?
例えばint与えるとint用の比較演算子、代入演算子、コピーコンストラクタを生成
double与えると以下同文
class与えると以下同文
std::sort()とかstd:copy()使うとqsort()とかmemcpy()より速い事があるっしょ?
472:デフォルトの名無しさん
12/07/29 17:30:50.25
頑張ってるけどCでやる意義が不明。なにかいいことある?
> vector
> インデックスによる要素のランダムアクセスが可能。
そんなバカなと思いつつ、ワクワクしてみて、やっぱりな。
473:デフォルトの名無しさん
12/07/29 17:43:48.32
Cはそういう楽さを犠牲にしてパフォーマンスだしたいときに使うんやろ
474:デフォルトの名無しさん
12/07/29 18:20:55.88
>>467
多分生成的マクロだろう。 ## で識別子同士をひっつけるとか、いろいろ。
475:デフォルトの名無しさん
12/07/29 18:40:19.36
■嫌いな国ランキング 2012
URLリンク(japaneserank.enq1.shinobi.jp)
■1位 韓国 24871票
■2位 中国 614票
■3位 北朝鮮 203票
■総投票数 25982票
476:デフォルトの名無しさん
12/07/29 20:15:22.13
ネトウヨ王に、俺はなる!まで読んだ。
477: ◆QZaw55cn4c
12/07/29 23:33:13.75
>>300
スレリンク(tech板:670番)
>>302
まだまだですね。
478:デフォルトの名無しさん
12/07/30 00:01:38.20
>>464
>じゃああんまり動的メモリ確保の意義ってないんじゃないのかななんて思ったりするのですが・・・
動的メモリ確保の意義は、そのメモリが確保されている期間が、静的変数、auto変数と異なっている
ところにある。
静的変数:プログラム開始から終了まで(ユーザプログラム的には最初から最後まで)
auto変数:ブロックに入ってから出るまで
動的変数:mallocされてからfreeされるまで
主にauto変数と違ってfreeするまでずっと残っている点が利点
→逆にメモリリークが怖いわけだが、、、。
479:デフォルトの名無しさん
12/07/30 06:23:35.33
反原発だからコリアの人々と船出しよう山本太郎もいるよ!←意味がわからないし、何故コリアwwwwwwww
スレリンク(poverty板)
PEACE&GREEN BOAT 2012 開催! -いま、コリアの人々と船出しよう
今年12月、4年ぶりにPeace&Green Boatが出航します。テーマは「脱原発」。
日韓3ヶ所の原子力発電所を訪れ原発の「いま」を見つめ、
原発立地地域の人々との交流を通じて「脱原発」を進めるために必要なことを考えます。
旅をより充実したものへとナビゲートしてくれるのが水先案内人の皆さん。
PEACE&GREEN BOAT2012には多彩な水先案内人の方々が参加予定です。
原発のない社会に向けて、共に各地をめぐり語り合います。(※順不同・敬称略)
アイリーン・美緒子・スミス (グリーン・アクション代表)
鎌田慧 (ルポライター)
田中優 (環境活動家、ap bank監事)
古市憲寿 (社会学者)
松田美由紀 (女優・写真家)
宮台真司 (社会学者)
山本太郎 (俳優)
[魚拓]
URLリンク(megalodon.jp)
URLリンク(niceboat.org)
または
URLリンク(i.imgur.com)
[どうしても直接踏んでソースを確認したい人は]
URLリンク(www.pbcruise.jp)
URLリンク(www.peaceboat.org)
480:デフォルトの名無しさん
12/07/30 08:22:35.19
ここって入門だというのに見てたら随分と初心者に優しくないのね
やっぱ専門板だとこうなっちゃうのかな
なにかトラウマみたいなことでもあったの?
481:デフォルトの名無しさん
12/07/30 10:41:50.30
C言語のソースコード検索したら標準関数じゃない関数がいっぱいあるけど
あれは何なの?
482:デフォルトの名無しさん
12/07/30 10:47:11.30
>>481
ヘルパ関数(下請け関数)だろ
そんなの実装によっていくらでも入ってる
C++だとprivateにされちゃって呼び出せないだろうけど
#define private public
483:デフォルトの名無しさん
12/07/30 11:10:10.73
C#じゃなくてCを使う理由を挙げてください
484:デフォルトの名無しさん
12/07/30 11:16:00.57
C++ならともかく、それはC#を知らないからじゃね?
485:デフォルトの名無しさん
12/07/30 11:24:19.47
C#のライブラリもCで実装された処理を呼び出している
C#プログラマなんてのは表面でCのプログラムを呼び出してるだけのカスでしかない
486:デフォルトの名無しさん
12/07/30 11:49:37.58
javaで採用されている機能だけでC++を使いCのライブラリを使う。
487:デフォルトの名無しさん
12/07/30 11:59:49.95
Cがわからんから聞いてんだろ
488:デフォルトの名無しさん
12/07/30 12:01:44.48
Cのライブラリもアセンブラで実装された処理を呼び出している
Cプログラマなんてのは表面でアセンブラのプログラムを呼び出してるだけのカスでしかない
489:デフォルトの名無しさん
12/07/30 12:05:10.85
アセンブラのライブラリも機械語で実装された処理を呼び出している
機械語プログラマなんてのは表面で電子回路のプログラムを呼び出してるだけの半田ごてでしかない
490:デフォルトの名無しさん
12/07/30 12:17:05.22
一生やってろ
491:デフォルトの名無しさん
12/07/30 12:31:16.96
>>480
・それ入門レベルか?
・そんなもん、その人次第だろ…
・C言語の質問じゃねーし…
・まず日本語初心者や人間初心者を卒業してくれ
・流石にパソコン初心者やネット初心者はな…
・2chやプログラム板は初めてか?力抜けよ
ってな質問には相応の返答しかつかんが、その辺は加味してログ読んでる?
まあ、実際荒れてることもあるけど(夏休みだし余計にな)それはそれだからな
492:デフォルトの名無しさん
12/07/30 12:39:46.09
>>483
C#・・・Windows専用に特殊にカスタマイズされたJavaのような言語
Windows専用だけあって(Monoのようなプロジェクトもあるがそれは別)
Windowsと非常に相性が良く、文法面では既にJavaをしのぎ、大抵の
GUIアプリケーションを多分現存する言語の中では最速で組み上げる
JITコンパイラ内蔵なので動作が意外に軽い
Java・・・マルチプラットフォームを売りにしているが、Windows上で動かす
には分が悪い
JITコンパイラを後付けしたせいかクライアントJREではホットスポットJITが
仇になって動きが重い
C#よりはるかにもっさり感じる
サーバーJREは起動が遅いが速度は速い
今や文法面でC#を追い掛ける奇妙な立場
C・・・最小限の機能しか揃ってないのでプログラミングは大変だが、高速な
ネイティブを吐き、しかもコンパクトなので組み込みに最適
という事で使用目的が違います
もちろん大規模GUIプログラムもCで書かれています
プログラマは地獄を見ますが
493:デフォルトの名無しさん
12/07/30 12:57:21.42
なんだ大規模GUIプログラムて。
今時そんなのあんのか?
494:デフォルトの名無しさん
12/07/30 13:01:55.32
>>492
ざっくりわかりました,ありがとう.
ちなみにCの組み込みに最適と言うのは
アセンブリ動的にロードする(プラグ印を組み込ます)ような事にあたるのでしょうかね
495:デフォルトの名無しさん
12/07/30 13:10:39.02
違います。
496:デフォルトの名無しさん
12/07/30 13:15:43.19
今ネイティブでGUIならQtだろ
でもC++だからな
497:デフォルトの名無しさん
12/07/30 13:40:12.24
>>482
違う
winmain関数とか
見たことなかった。
498:デフォルトの名無しさん
12/07/30 13:44:19.01
_tWinMain()
499:デフォルトの名無しさん
12/07/30 13:52:29.93
>>497
メッセージループでぐぐれカス
500:デフォルトの名無しさん
12/07/30 13:55:09.31
>>499
winMainは何言語なんですか?
501:デフォルトの名無しさん
12/07/30 14:13:13.72
WinMain()でググレカス
502:デフォルトの名無しさん
12/07/30 14:16:09.98
MSのコンパイラなら CRT0.C 見れば
503:デフォルトの名無しさん
12/07/30 14:21:00.74
すいません、VBをちょっとしかかじったことないんですが
C言語のA<<3とかの<<って
どういう意味なんですか?
504:デフォルトの名無しさん
12/07/30 14:22:52.49
その程度、入門書読んでから質問しろ
505:デフォルトの名無しさん
12/07/30 14:29:43.34
本持ってないんですよー
ググっても<<は無視されて検索されるし
ほんとおねがいします
506:デフォルトの名無しさん
12/07/30 14:40:32.12
C言語 入門
Goooogle
507:デフォルトの名無しさん
12/07/30 14:49:19.39
そんなつれないこと言わずに
じゃあ芸能界で例えてください
508:デフォルトの名無しさん
12/07/30 15:01:10.41
シフト演算子
これで検索できるだろ。
509:デフォルトの名無しさん
12/07/30 15:08:34.53
>>503
Aを8倍する
510:デフォルトの名無しさん
12/07/30 15:16:14.01
URLリンク(ideone.com)
511:デフォルトの名無しさん
12/07/30 15:42:29.43
>>508
理解できますた!
C言語簡単っすね^^
512:デフォルトの名無しさん
12/07/30 16:03:47.81
簡単でしょ
馬鹿にでも理解出来る言語、それがC言語
513:デフォルトの名無しさん
12/07/30 16:08:28.35
Cは3日で把握出来る
向いてないド素人でも一月
それ以上かかるなら他の道を探すといい
514:デフォルトの名無しさん
12/07/30 16:11:13.45
ポインタ関連を3日で習得できるなんて凄いわ。
ポインタ関連以外を3日で把握なら分かるけど。
515:デフォルトの名無しさん
12/07/30 16:15:22.62
C言語は言語仕様がコンパクトで、演算子が多くて予約語が少ないため
文法を習得するのは確かに簡単
でもポインタに踏み込んだらなまじ他の言語よりも暗い迷路に迷い込むよな
516:デフォルトの名無しさん
12/07/30 16:19:48.22
こわがりすぎー
517:デフォルトの名無しさん
12/07/30 16:31:16.73
標準ライブラリが小さいから習得は早いね
518:デフォルトの名無しさん
12/07/30 17:29:35.90
アセンブリの代わりだもん、
ポインタ関連が一番重要だ
8bitCPUでもいじくって
そのあとにCやれ
519:デフォルトの名無しさん
12/07/30 17:35:19.93
個人で組み込み勉強したい場合ってどうしてますか?
製品基盤や専用のコンパイラなんて売ってるんでしょうか?
520:デフォルトの名無しさん
12/07/30 17:37:43.83
もちろん売ってる。
521:デフォルトの名無しさん
12/07/30 17:42:22.63
シャープのMZ-80Kでも買ってシコシコ叩けと言うのかw
それてもZ80を秋月電子で買ってハンダでジュウジュウと弄れと言うのか
522:デフォルトの名無しさん
12/07/30 17:45:43.36
ロートルは来なくていいから
523:デフォルトの名無しさん
12/07/30 18:10:08.04
いやはや全くその通りで、
まずはZ80のキットを購入してはんだごてを手に持ちながら
ハンドアセンブルくらいはした方がいい
そのほうがCPUとは何かを手に取るように実感できる
524:デフォルトの名無しさん
12/07/30 18:18:09.01
ジジイはもう(゚⊿゚)イラネ
525:デフォルトの名無しさん
12/07/30 18:21:36.99
0番地から始まる配列の添え字と何が違うって言いたいんだ?
526:デフォルトの名無しさん
12/07/30 18:30:01.11
いまどきZ80なんてやったって意味ねえよ
527:デフォルトの名無しさん
12/07/30 18:56:30.54
PIC.、制御関連やるなら知って損はないじゃろ。
528:デフォルトの名無しさん
12/07/30 19:07:37.85
PICやったことあるけど恐ろしくつまらなかった。
ままごとにも程がある。
マイコンって何なの?何のためにあるの?
ハードウェアを学ぶ前置き学習用?
パソコンじゃだめなん?
529:デフォルトの名無しさん
12/07/30 19:11:22.04
あんたの身の回りにある電源や電池のいるものはたいていマイコン入ってるけど
530:デフォルトの名無しさん
12/07/30 19:12:01.67
>>526
いまどきって何だよ
俺は趣味プログラマーなんだよ
世の中はこうなってるとかしらねーんだよ
531:デフォルトの名無しさん
12/07/30 19:13:06.37
>>529
あ?パソコンの中身見たけど
あんなおもちゃみたいなブロック入って無かったよ?
もっと壮大なスケールの部品ばっかりだったしな!
532:デフォルトの名無しさん
12/07/30 19:13:41.27
家電の組み込みとかのメーカー行きたいとか
自動車やら電車やら電気メーカー行くなら知ってて損ないんじゃないの。
秋葉原が設計と家電の聖地だった時代もあるのよ。
533:デフォルトの名無しさん
12/07/30 19:18:46.94
Z80は知らなくていいだろ
時間の無駄
534:デフォルトの名無しさん
12/07/30 19:20:59.23
時間の無駄って言ったら趣味のプログラムも・・・w
535:デフォルトの名無しさん
12/07/30 19:26:02.37
H8やSH2などよりはZ80のほうがマシかもな。
536:デフォルトの名無しさん
12/07/30 19:30:18.59
つかCPUのことか?
パソコソの蓋開けていじらねーだろどうせ
スレ違いなんだよ
電子機器スレ池
537:デフォルトの名無しさん
12/07/30 19:46:20.77
組み込みやるなら情報工学科なんか進学せずに電子科電気科機械科に進んでメーカーに入れ
製品の仕様はハード屋が決めるし組み込みプログラマなんざハード屋の奴隷にすぎない
ソフト屋がどんだけ頑張ってもテレビの画質は向上しない
組み込みプログラマなんてのは表面でハードの機能を呼び出してるだけのカスでしかない
奴隷になりたくなかったらソフト屋が主導権を握れる分野に行くかソフトもできるハード屋を目指せ
538:デフォルトの名無しさん
12/07/30 19:47:38.95
四年前に言って欲しかったよ
539:デフォルトの名無しさん
12/07/30 19:53:21.16
米国 「日本はアジアの大国、司令官として憲法9条を破棄すべきだ!そして日本は核武装すべきだ!」
スレリンク(poverty板)
日米同盟強化へ 米国は9条改憲歓迎 「反対まったくない」
憲法第9条に基づき、日本は集団的自衛権を行使できないとの解釈が
日米同盟強化への大きな障害になるとする認識はいま米側で広範に強まり、
米国では、現在党派を問わず反対はなく、むしろ暗に歓迎するという姿勢が大勢となった。
92年にはヘリテージ財団が「米国は非公式に日本に改憲を促すべきだ」とする政策提言を発表した。
先代ブッシュ大統領も公式会見で、日本が改憲を求めるならば問題はないと言明した。
民主党リベラル派のトム・ラントス下院外交委員長は「日本が安全保障でも大国にふさわしい役割を
果たすために憲法を改正しようとすることを強く支持する」と述べた。
東京都の石原慎太郎知事が16日にワシントンでの討論会で憲法破棄を提唱したとき、
米側の討論者のリチャード・ローレス元国防副次官は「日本の憲法は確かに米軍占領時代の遺物であり、
日本はそれを変える権利も自由も有している」と述べ、日本の憲法改正にいまの米側には抵抗がないことを明示した。
URLリンク(sankei.jp.msn.com)
米国FOX報道 " We Need a Nuclear Japan " 我々は核武装した日本を求めるべきだ
URLリンク(www.youtube.com)
540:デフォルトの名無しさん
12/07/30 19:55:28.29
Z80はともかく、ビルドターゲットのアセンブラは知ってる方がいいね
Cで書いてると、期待どおりに生成されてるか(あるいはされてなくはないか)
逆アセンブルして確認することはよくあるから
541:デフォルトの名無しさん
12/07/30 19:58:20.33
>>537
もっと言えば新製品開発とかなら理学部のほうがよくね?
理論を勉強するわけだから。
俺は工学部だから将来は高卒と仲良く工場勤務なんだろうな。
542:デフォルトの名無しさん
12/07/30 19:59:34.43
Z80=パチンコ
543:デフォルトの名無しさん
12/07/30 20:08:22.34
C使いはそっち系ってのがよく分かる流れだなw
544:デフォルトの名無しさん
12/07/30 20:10:04.63
プログラマーの倍率って8倍くらいあるんだろ?
高嶺の花だわ
545:デフォルトの名無しさん
12/07/30 20:10:22.37
90hはNOP
546:デフォルトの名無しさん
12/07/30 20:10:54.88
ぼくちゃん物理系出身の土方です^^
547:デフォルトの名無しさん
12/07/30 20:11:09.57
まぁ遠慮せんと好きなマイコン選べや。
URLリンク(akizukidenshi.com)
548:デフォルトの名無しさん
12/07/30 20:14:14.61
スーパーAKI-80
¥4,980
549:デフォルトの名無しさん
12/07/30 20:16:23.97
市販のコンピュータに入っているマイコンはやっぱ電気製品屋では
買えない特注のもんなん?
550:デフォルトの名無しさん
12/07/30 20:19:47.14
Z80やるくらいならARMやれ
モバイルのアプリくらいなら組ませてもらえるかもね
551:デフォルトの名無しさん
12/07/30 20:24:25.91
ポインタとアセンブリの基礎を覚えるには
Z80でもいんじゃないの。
552:デフォルトの名無しさん
12/07/30 20:28:06.49
基礎を終えたら買いなおして覚えなおせって?馬鹿じゃねえの
553:デフォルトの名無しさん
12/07/30 20:28:47.38
Z80は現代使われている機械語とコードが違いすぎる
CASLが実用で役立つとか言ってるレヴェル
554:デフォルトの名無しさん
12/07/30 20:30:46.10
結局のところどれがいいんですか?
555:デフォルトの名無しさん
12/07/30 20:31:41.53
Cで遊ぶ分にはどれでもいんじゃないの