C言語なら俺に聞け(入門編)Part 112
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/01/16(水) 04:41:24.65★前スレ
C言語なら俺に聞け(入門編)Part 111
http://toro.2ch.net/test/read.cgi/tech/1355062693/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 161代目
http://toro.2ch.net/test/read.cgi/tech/1354070278/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
# サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0002デフォルトの名無しさん
2013/01/16(水) 05:39:44.250003デフォルトの名無しさん
2013/01/16(水) 11:04:07.510004デフォルトの名無しさん
2013/01/16(水) 12:50:25.00おつ
0005デフォルトの名無しさん
2013/01/16(水) 13:37:06.26乙
0006デフォルトの名無しさん
2013/01/16(水) 18:46:32.92000716
2013/01/16(水) 18:49:56.040008デフォルトの名無しさん
2013/01/16(水) 18:57:23.730009デフォルトの名無しさん
2013/01/16(水) 18:58:15.47int argc;
char *argv[];
{
〜
return 0;
}
みたいなやつならうちのコンパイラでも通してくれた。
0011デフォルトの名無しさん
2013/01/16(水) 21:24:08.23―>という記号なんですがよく分かりません。
検索しても出でこないのです。
どなたかこの記号の意味を教えていただきませんか?
0012デフォルトの名無しさん
2013/01/16(水) 21:28:40.25アロー演算子でggr
0013デフォルトの名無しさん
2013/01/16(水) 21:32:02.41struct SampleStruct {
int a;
char b;
};
struct SampleStruct *pss;
pss = malloc(sizeof(SampleStruct));
pss->a = 0;
pss->b = 'A';
0014デフォルトの名無しさん
2013/01/16(水) 22:01:02.222点ほど突っ込みどころがあるが、
コンパイルできるか?
0015デフォルトの名無しさん
2013/01/16(水) 22:12:31.350016デフォルトの名無しさん
2013/01/17(木) 00:24:02.99その程度じゃ、大して釣れないと思うぞ
0017デフォルトの名無しさん
2013/01/17(木) 00:38:01.14USBドライバを作る、とかいう話が来てるんだけど
ドライバ扱ったことないから戸惑ってる
ちなみに家にはVS2008だけがあるのだが、これ流用できない?
寝かしとくのがもったいなくて
0018デフォルトの名無しさん
2013/01/17(木) 00:42:51.31おとなしく2012使えよ
0019デフォルトの名無しさん
2013/01/17(木) 01:13:18.460020デフォルトの名無しさん
2013/01/17(木) 01:15:01.66int sex = 0721;
int orz=3;
int OTL=3;
(o^p^o);
}
0021デフォルトの名無しさん
2013/01/17(木) 01:17:10.23Dislike Duke Kemeny
0022デフォルトの名無しさん
2013/01/17(木) 01:38:11.51サンクス
>>19
WDKのことか?ググッたら出てきたんだが Windows Driver Kit
0023デフォルトの名無しさん
2013/01/17(木) 05:29:40.840024デフォルトの名無しさん
2013/01/17(木) 08:49:58.35usbドライバ作りますの君(きみ)は
0025デフォルトの名無しさん
2013/01/17(木) 13:03:57.300026デフォルトの名無しさん
2013/01/17(木) 16:25:40.460027デフォルトの名無しさん
2013/01/17(木) 20:55:48.18先月から1472バイトまでしか受け付けない現象が起きてるから
原因は俺には大体見当がついたが・・・
管理人の技量が足りなそうで復旧できないかもね
0028デフォルトの名無しさん
2013/01/17(木) 22:36:00.960029859
2013/01/18(金) 15:58:49.53example.c:x: error: stray ‘\343’ in program
example.c:x: error: stray ‘\200’ in program
example.c:x: error: stray ‘\200’ in program
の様なエラーが出るのですが、この時の 343, 200 の様な番号が何の番号なのか知りたいのですが
何かの文字コードの番号なのでしょうか?
0030デフォルトの名無しさん
2013/01/18(金) 16:57:41.950031デフォルトの名無しさん
2013/01/19(土) 15:41:12.06003229
2013/01/19(土) 16:41:05.95今にして思えば全角スペース1つで3行のエラーが出ているのに
3行合わせて1つの文字という認識ができなかったのが悔しいです。
Esc キーを ‘\033′ の様に書いていたりもしたのに。
UTF-8 では日本語は 3 バイトという話も頭の中で繋がりました。
本当にありがとうございました。
0033デフォルトの名無しさん
2013/01/20(日) 09:45:13.58003429
2013/01/20(日) 11:15:28.67本当にありがとうございました。
0035デフォルトの名無しさん
2013/01/20(日) 14:25:23.500036デフォルトの名無しさん
2013/01/20(日) 18:01:19.350037デフォルトの名無しさん
2013/01/20(日) 18:49:19.78プログラム例などを交えて解説されているサイトってありますか??
0038デフォルトの名無しさん
2013/01/20(日) 19:46:59.230039デフォルトの名無しさん
2013/01/20(日) 20:16:33.620040デフォルトの名無しさん
2013/01/20(日) 20:19:37.890041デフォルトの名無しさん
2013/01/20(日) 21:07:43.03Cにはクラスはないんだが。
>>37
C言語スレで聞く内容じゃないことは確かだ。
0042デフォルトの名無しさん
2013/01/20(日) 21:44:59.53方法論的なものを論じた書籍はほとんどない。残念ながらこれが現実。
0043デフォルトの名無しさん
2013/01/20(日) 22:05:33.550044デフォルトの名無しさん
2013/01/22(火) 08:59:50.900045デフォルトの名無しさん
2013/01/22(火) 09:09:20.37そんなこと言う奴、30年ぶりに見たわ
0046デフォルトの名無しさん
2013/01/23(水) 06:45:23.13と記述したら、ポインタ理解できてる?
とドヤ顔で指摘されちゃった。
0047デフォルトの名無しさん
2013/01/23(水) 07:48:13.340048デフォルトの名無しさん
2013/01/23(水) 09:35:11.140049デフォルトの名無しさん
2013/01/23(水) 15:09:28.05よし死ね
0050デフォルトの名無しさん
2013/01/23(水) 15:20:46.45これ実行したらどうなるの?
0051デフォルトの名無しさん
2013/01/23(水) 15:24:28.510052デフォルトの名無しさん
2013/01/23(水) 16:16:43.720053デフォルトの名無しさん
2013/01/23(水) 16:34:21.36GCCだから
0055デフォルトの名無しさん
2013/01/23(水) 17:35:04.65x86環境なら *p = 0を実行した時点でセグメンテーションフォルト。
0056デフォルトの名無しさん
2013/01/23(水) 18:27:59.53環境次第
0057デフォルトの名無しさん
2013/01/23(水) 23:50:46.92なんでかわかりますか?
0058デフォルトの名無しさん
2013/01/24(木) 00:00:36.710059デフォルトの名無しさん
2013/01/24(木) 00:04:00.960060デフォルトの名無しさん
2013/01/24(木) 03:34:17.30struct node{
char str[10];
int a;
} x;
みたいに定義したら、xの構造体に含まれるstr[10]の先頭のアドレスを
取り出すにはどうすればいいのでしょうか。
&(x.str[0])かな〜とか思ったんですが、うまくいかなくて・・・
0061デフォルトの名無しさん
2013/01/24(木) 03:57:34.53&(x.str[0])
で問題ないけど、、どんなコードで失敗するの?
0062デフォルトの名無しさん
2013/01/24(木) 04:02:14.62x.str
どちらでも同じ意味だね。
0063デフォルトの名無しさん
2013/01/24(木) 04:03:35.02p=x.str;
0064デフォルトの名無しさん
2013/01/24(木) 04:04:12.10ttp://ideone.com/2deil7
で試したけど、特に問題無いと思うが…
0065デフォルトの名無しさん
2013/01/24(木) 08:11:20.05ひょっとして、構造体に定義したメンバが常に定義した通りに並ぶと思ってる?
0066デフォルトの名無しさん
2013/01/24(木) 09:34:13.68こういう質問に答えるのは無駄。スレ汚しにしかならない。
0067デフォルトの名無しさん
2013/01/24(木) 11:03:29.610068デフォルトの名無しさん
2013/01/24(木) 11:19:52.71・ホントはやり方を手早く教えてほしいだけ
・ヴァカどもの教えたい優越感やらコンプレックスを刺激して答えだけ引き出してる
つまりは>>60なんかに答える奴は低能無能のアホ
0069デフォルトの名無しさん
2013/01/24(木) 12:37:01.58入力した検索キーワードが消えてイラつくんですが
どうしたらいいですか
0070デフォルトの名無しさん
2013/01/24(木) 12:40:18.940071デフォルトの名無しさん
2013/01/24(木) 16:03:40.200072デフォルトの名無しさん
2013/01/24(木) 16:09:25.25webhpのリダイレクト行程でなんかワルサしてる感じ
0073デフォルトの名無しさん
2013/01/25(金) 15:41:25.21matrix_data[2][0] は、matrix_data[0][0]を1番目の要素とすると、計算機のメモリ上では、何番目の要素となるか数字で答えよ。
0074デフォルトの名無しさん
2013/01/25(金) 15:54:17.020075デフォルトの名無しさん
2013/01/25(金) 16:06:49.84マルチすんなカス
0076デフォルトの名無しさん
2013/01/25(金) 18:54:09.20C++
0077デフォルトの名無しさん
2013/01/25(金) 18:57:07.390078デフォルトの名無しさん
2013/01/25(金) 19:00:05.20VC++ありますけどC言語の補完がでないのできついんです
0079デフォルトの名無しさん
2013/01/25(金) 19:33:07.81QtCreator
0080デフォルトの名無しさん
2013/01/25(金) 20:46:27.200081デフォルトの名無しさん
2013/01/25(金) 20:50:03.450082デフォルトの名無しさん
2013/01/25(金) 21:48:12.27せめてC++ならな
0083デフォルトの名無しさん
2013/01/25(金) 22:28:42.550084デフォルトの名無しさん
2013/01/25(金) 22:44:09.40Cプログラマの正しい生き方
0085デフォルトの名無しさん
2013/01/25(金) 22:50:15.80struct ZZ {
int val;
struct ZZ *pNext;
};
struct ZZ root, next;
root.pNext = &next; next.pNext = &root;
0086デフォルトの名無しさん
2013/01/26(土) 01:34:21.930087デフォルトの名無しさん
2013/01/26(土) 06:43:46.02ちょっと無理があるね
0088デフォルトの名無しさん
2013/01/26(土) 14:39:03.300089デフォルトの名無しさん
2013/01/26(土) 14:50:03.420090デフォルトの名無しさん
2013/01/27(日) 13:20:07.590091デフォルトの名無しさん
2013/01/27(日) 14:21:40.89http://www.atmarkit.co.jp/flinux/rensai/systemcall/02/01.html
0092デフォルトの名無しさん
2013/01/27(日) 15:22:20.370093デフォルトの名無しさん
2013/01/27(日) 15:32:23.75Unix 関係なしで, 大量にメモリー積んだHPC環境に慣れたやつとかだと,
32bit機で平気でこんな事しようとするぞ
double x[1000][1000][1000];
double y[1000][1000][1000];
double z[1000][1000][1000];
foo() {
int i, j, k;
for (i = 0; i < 1000; ++i)
for (j = 0; i < 1000; ++j)
for (k = 0; k < 1000; ++k)
0094デフォルトの名無しさん
2013/01/27(日) 15:57:39.000095デフォルトの名無しさん
2013/01/27(日) 16:06:38.84しねーよ。デブ。
0096デフォルトの名無しさん
2013/01/27(日) 19:30:48.810097デフォルトの名無しさん
2013/01/27(日) 19:52:29.470098デフォルトの名無しさん
2013/01/28(月) 09:03:35.08一時変数として自動変数で宣言しているようなもの
0099デフォルトの名無しさん
2013/01/28(月) 19:45:35.74160bitの2進数の列から特定の5bitの2進数を先頭から探索していき,
目的の5bitの列があれば得点を加算していき,それが個体の適応度となる
というGAを作成しているのですが,200世代くらいみても個体の平均適応度が,
全然上昇していきません 10世代目くらいまではグッと上昇するのですが…
遺伝的アルゴリズムってこんなものなんでしょうか…??
以下作成したプログラムです
http://codepad.org/DVr8i5zv
0100デフォルトの名無しさん
2013/01/28(月) 19:58:29.260101デフォルトの名無しさん
2013/01/28(月) 20:06:32.470102デフォルトの名無しさん
2013/01/29(火) 00:03:43.850103デフォルトの名無しさん
2013/01/29(火) 00:24:14.85scanf("%s",&s);
printf("%s",s);
これ1文字までしか受け取れないと思ってたけどなん文字でも受け取って表示できるのはなぜですか?
あとこんな風になん文字入力されるか分からない時ってどんな風に書けば良いのですか?
0104デフォルトの名無しさん
2013/01/29(火) 00:25:21.56それメモリぶっ壊してるから
超危険だから
0105デフォルトの名無しさん
2013/01/29(火) 00:29:34.80メモリぶっこわしてるのは受け取ってるとは言えないだろうな
0106デフォルトの名無しさん
2013/01/29(火) 00:32:21.32ttp://www1.cts.ne.jp/~clab/hsample/IO/IO16.html
もしくは
getcharで一文字毎に受け取ってみる
0107デフォルトの名無しさん
2013/01/29(火) 00:35:12.71fgetsで幅を指定して受け取るかだな
scanfでも最大フィールド幅指定は可能
最大幅が決まって欲しくない場合は、
最大幅を指定しつつ、終わりが見えなければ次を読み込んで後で連結・・・とかだな
>>106
getsは最悪な関数なので使用禁止
getcharでちまちまやるのは正直どうかと
0108デフォルトの名無しさん
2013/01/29(火) 00:38:50.070109デフォルトの名無しさん
2013/01/29(火) 00:46:52.710110デフォルトの名無しさん
2013/01/29(火) 00:53:46.900111デフォルトの名無しさん
2013/01/29(火) 00:56:38.620112デフォルトの名無しさん
2013/01/29(火) 00:59:59.45基本的なところでハマるような
scanfの書式を一生懸命覚えようとしてる人が...
0113デフォルトの名無しさん
2013/01/29(火) 00:59:59.93ありがとうございます
0114デフォルトの名無しさん
2013/01/29(火) 01:14:00.50コマンドプロンプトには飽きたのです
0115デフォルトの名無しさん
2013/01/29(火) 02:01:42.880116デフォルトの名無しさん
2013/01/29(火) 02:14:26.56DispatchMessage(), GetMessage(), IsDialogMessage(), PostQuitMessage(),
SendDlgItemMessage(), SendMessage(), TranslateMessage()...
0117デフォルトの名無しさん
2013/01/29(火) 02:16:27.340118デフォルトの名無しさん
2013/01/29(火) 07:39:20.32内容古くなってきてるが猫でもでも見れば
0119デフォルトの名無しさん
2013/01/29(火) 12:27:32.53scanfの中も&sになってることにも突っ込んでやれよ
動かないことは無いけどさ
0120デフォルトの名無しさん
2013/01/29(火) 13:55:49.39コンパイルで警告出るレベルの間違いを態々貼ってるんだから、103は釣り。
0121デフォルトの名無しさん
2013/01/29(火) 15:54:03.560122デフォルトの名無しさん
2013/01/29(火) 19:13:08.02ほれ
http://codepad.org/gkXUISYc
0123デフォルトの名無しさん
2013/01/30(水) 01:20:34.55int strlen ( char *s )
{
char *p = s;
while ( *p != '\0' ){
p++;
}
return p-s;
}
戻り値をポインタ演算のp-sで返して、int型というのは一般的なんでしょうか。
0124デフォルトの名無しさん
2013/01/30(水) 01:30:06.430125デフォルトの名無しさん
2013/01/30(水) 01:32:10.22{
int i;
for (i = 0; *s != '\0'; i++);
return i;
}
0126デフォルトの名無しさん
2013/01/30(水) 01:42:17.470127デフォルトの名無しさん
2013/01/30(水) 01:49:08.620128デフォルトの名無しさん
2013/01/30(水) 01:54:27.910129デフォルトの名無しさん
2013/01/30(水) 01:56:54.10ttp://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/strlen.3.html
ttp://msdn.microsoft.com/ja-jp/library/78zh94ax%28v=vs.80%29.aspx
0130デフォルトの名無しさん
2013/01/30(水) 02:08:00.830131デフォルトの名無しさん
2013/01/30(水) 02:36:59.120132デフォルトの名無しさん
2013/01/30(水) 03:13:01.24無限ループしてるんだが
0133デフォルトの名無しさん
2013/01/30(水) 03:23:28.190134デフォルトの名無しさん
2013/01/30(水) 03:26:15.900135デフォルトの名無しさん
2013/01/30(水) 04:55:31.91文字列長で負数て…
0136デフォルトの名無しさん
2013/01/30(水) 05:20:55.520137デフォルトの名無しさん
2013/01/30(水) 08:58:25.030138デフォルトの名無しさん
2013/01/30(水) 09:04:40.000139デフォルトの名無しさん
2013/01/30(水) 09:41:02.860140デフォルトの名無しさん
2013/01/30(水) 12:38:40.670141デフォルトの名無しさん
2013/01/30(水) 21:57:00.85エラーはエラーで返せばいい
0142デフォルトの名無しさん
2013/01/30(水) 22:48:14.460143デフォルトの名無しさん
2013/01/30(水) 23:25:29.45それは数値としての-1に意味はない
npos というシンボルに、通常あり得ない数である「符号無しの最大値」を使っているだけ
0144デフォルトの名無しさん
2013/01/30(水) 23:28:18.690145デフォルトの名無しさん
2013/01/31(木) 01:36:15.620146デフォルトの名無しさん
2013/01/31(木) 07:09:10.400147デフォルトの名無しさん
2013/01/31(木) 07:30:10.74それを扱う先で必要になるんだろ
0148デフォルトの名無しさん
2013/01/31(木) 07:33:46.56やるとすれば
何か返すにしても0返したのでいいと思うけど、区別したい場合もあるかもしれない
先にチェックしても手間は変わらない気もするが・・・
0149デフォルトの名無しさん
2013/01/31(木) 07:51:23.65strlen にエラーは必要ないわ
0150デフォルトの名無しさん
2013/01/31(木) 08:05:30.42[数字を入力]-->[(入力した数字)/2=0になるまで[2で割った余りを表示 --> 2で割る -->2で割る]をループ]
#include <stdio.h>
int main () {
int i[2];
printf("数字を入力してください。¥n");
scanf("%d",&i[0]);
printf("%dを2進数に変換すると、¥n",i[0]);
i[1]=i[0];
while (i[0]!=0) {
i[1] = i[0] % 2 ;
printf("%d",i[1]);
i[0]/2;
}
printf("¥n");
return 0;
}
0151デフォルトの名無しさん
2013/01/31(木) 09:17:30.62#include <stdio.h>
void func(int n){
if (n / 2)func(n / 2);
printf("%d", n % 2);
}
int main (){
int i;
printf("数字を入力してください¥n");
scanf("%d", &i);
printf("%dを2進数に変換すると、¥n", i);
func(i);
printf("¥n");
return 0;
}
0152デフォルトの名無しさん
2013/01/31(木) 09:35:02.44ありがとうございます。
for,whileで作ることは不可能ですか?
0153デフォルトの名無しさん
2013/01/31(木) 12:59:02.98i[0]/2;
は
i[0]/=2;
だな。
あとそのプログラムだとMSBとLSBが逆に表示されるから、
反転させるのは自分で考えな。
0154デフォルトの名無しさん
2013/01/31(木) 15:49:49.88#include <stdio.h>
#define N 2/* N進数 */
int main (){
int n, i = 63;
char a[i + 2];
printf("数字を入力してください¥n");
scanf("%d", &n);
printf("%dを%d進数に変換すると、¥n", n, N);
while (n) {
a[i--] = n % N + '0';
n /= N;
}
printf("%s¥n", a + i + 1);
return 0;
}
0155デフォルトの名無しさん
2013/01/31(木) 16:57:41.220156デフォルトの名無しさん
2013/01/31(木) 17:00:12.060157デフォルトの名無しさん
2013/01/31(木) 19:46:44.38それともどこかにちゃんとしたスレある?
0158デフォルトの名無しさん
2013/01/31(木) 19:47:27.300159デフォルトの名無しさん
2013/01/31(木) 19:49:22.85http://toro.2ch.net/test/read.cgi/tech/1315026784/
か
電電板?
0160デフォルトの名無しさん
2013/01/31(木) 20:05:33.330161デフォルトの名無しさん
2013/01/31(木) 21:09:13.21ありがとうございます
0162デフォルトの名無しさん
2013/01/31(木) 22:16:11.620163デフォルトの名無しさん
2013/01/31(木) 22:19:40.520164デフォルトの名無しさん
2013/01/31(木) 23:29:57.50ファビョ━ l|l l|l ━━ン!
/ ̄ ̄⌒⌒ ̄\
| __λ_ |
| ノ ヽ 〆| |
| ノ \|
| / #ノ(_)(#)
\___ /TT|/
| |UU| | ̄ ̄| | ̄| _| ̄|__| ̄|_□□ | ̄| | ̄ ̄| | ̄| | ̄| | ̄|
| | |  ̄ ̄ | | __ |_ __ __| / /  ̄ ̄ | | | | | | /|
| | │ | ̄ ̄| | | _| |__ |_| | | / | | ̄ ̄| | | / / | | / |
| | │  ̄ ̄_/ / | _ | / / // | |  ̄ ̄_/ / / / | |/ /
_| ノ ノ | ̄ ̄_/  ̄| | |/ // |/ | | | ̄ ̄_/ /_/ | /
/ ∩∩∩  ̄ ̄  ̄  ̄  ̄
| ι ̄ ̄ ̄|
|_____|
0165デフォルトの名無しさん
2013/02/03(日) 17:29:14.29QTextStream qts(&f);
QString dat = qts.readAll();
return dat; ← これはNGだと思うんですが、どうやってreturnすればいいんですか?
0166デフォルトの名無しさん
2013/02/03(日) 17:58:38.480167デフォルトの名無しさん
2013/02/03(日) 22:48:20.920168デフォルトの名無しさん
2013/02/03(日) 22:56:32.380169デフォルトの名無しさん
2013/02/03(日) 23:23:10.570170デフォルトの名無しさん
2013/02/03(日) 23:45:13.880171デフォルトの名無しさん
2013/02/03(日) 23:51:19.15読み込みは全体からできる
そんなのないですか
0172デフォルトの名無しさん
2013/02/03(日) 23:58:24.520173デフォルトの名無しさん
2013/02/04(月) 00:05:38.500174デフォルトの名無しさん
2013/02/04(月) 00:26:45.900175デフォルトの名無しさん
2013/02/04(月) 00:58:46.93以下のコードを書いたのですが、最後のprintfの内容が出力されないのは何故でしょうか。
先頭にprintfを書くと出力されるのが更に謎なのですが。。
http://ideone.com/hygPjc
0176デフォルトの名無しさん
2013/02/04(月) 01:15:30.650177デフォルトの名無しさん
2013/02/04(月) 02:36:41.71#define VALUE0 (*(const int*)&VALUE0RW)
#define ARRAY0 (*((const int*)[10])&ARRAY0RW)
#define VALUE1 (*(const long*)&VALUE1RW)
#define VALUE0RW (*(int*)UNQNAME)
#define ARRAY0RW (*((int*)[10])(&VALUE0RW+1))
#define VALUE1RW (*(long*)(&ARRAY0RW+1))
#define GETPTR void* UNQNAME=get_ptr();
#ifdef IMPLE
#define UNQNAME 0
#define RQSZ ((char*)(&VALUE1RW+1))
static void*p;
#endif
main(){
p=malloc(RQSZ);
#undef UNQNAME
VALUE0RW=...
0178デフォルトの名無しさん
2013/02/04(月) 06:35:58.74やってみたけど出力されませんでした。
gdbでbreakpoint貼ってみたらちゃんと通ってはいるのでもう何がどうなっているのか。。
0179デフォルトの名無しさん
2013/02/04(月) 06:38:44.09環境は?
0180デフォルトの名無しさん
2013/02/04(月) 07:08:52.90> printf("ここでないお?!\n");
の1行前に
sleep(1); // 1秒待つ
を入れても表示されないかな。
それとか、
main()の最初に
setvbuf(stdout, (char *)NULL, _IONBF, 0);
を1行入れてみたら表示されないかな。
0181デフォルトの名無しさん
2013/02/04(月) 12:18:23.68プログラム自体は正しい。
ライブラリなどのコンパイルオプションがが間違っているのだろう。
0182デフォルトの名無しさん
2013/02/04(月) 14:48:33.55Debian(wheezy)のgcc(4.7.2)で
gcc -pthread 175.c
して ./a.out を実行して、
"ここでないお?!"
が普通に出るが。
0183デフォルトの名無しさん
2013/02/04(月) 14:58:11.260184デフォルトの名無しさん
2013/02/04(月) 15:48:39.36大丈夫だ。問題ない。
むしろ関数のときだけ & 省略が許される例外みたいなもん
0185デフォルトの名無しさん
2013/02/04(月) 19:55:13.540186デフォルトの名無しさん
2013/02/04(月) 20:06:00.450187デフォルトの名無しさん
2013/02/04(月) 20:08:17.800188デフォルトの名無しさん
2013/02/04(月) 20:08:30.50環境は?
0189デフォルトの名無しさん
2013/02/04(月) 20:09:18.01次のコーディングイメージを頭に思い描いていたけどな。
0190デフォルトの名無しさん
2013/02/04(月) 20:13:47.140191デフォルトの名無しさん
2013/02/04(月) 20:14:11.88馬鹿死ね消えろ
a++;
--a;
が普通、というかこれしかない
ポストインクリメント・デポストデクリメントが唯一無二、それ以外のアーキが存在するとでも?
スタックをみよ。
0192デフォルトの名無しさん
2013/02/04(月) 20:16:29.260193デフォルトの名無しさん
2013/02/04(月) 20:22:01.27a ++;
a -= 1;
a --;
読みやすいので a++; a--; 使います。
0194デフォルトの名無しさん
2013/02/04(月) 20:23:09.880195デフォルトの名無しさん
2013/02/04(月) 20:23:36.60だからいっただろう?
a-- なんてありえないんだから、馬鹿しかつかわない表記なんだから、読みやすいとか理由にならないから
死ね
0196デフォルトの名無しさん
2013/02/04(月) 20:24:01.33好評発売中!
0197175
2013/02/04(月) 20:24:45.23Windows7 + cygwin1.7 + gcc4.5.3
gcc -lpthread main.c
sleep(1);をprintfの前に入れても結果は同じでした。。
呪いの類ですかね・・
0198175
2013/02/04(月) 20:27:02.79setvbuf(stdout, (char *)NULL, _IONBF, 0);入れたら出るようになりましたー!
環境依存?!
0199デフォルトの名無しさん
2013/02/04(月) 20:27:06.95それでもダメなら
呪い
正直なところ、マルチスレッドにて、各スレッドが共有するストリームになんの下準備もなく直に書き込むこと自体が怪しいと思うのです。
スレッド共通なものに対して個々のスレッドがばらばらとアクセスするときは、まず例外なく排他処理を行うべきだと思うのです。
pthread には win32api の criticalsection がないのでヘタレの私には堪えます。
0201デフォルトの名無しさん
2013/02/04(月) 20:33:53.14joinしてるじゃないの
いれるのなら join の前にsleep かなあ‥‥‥
チャイルドプロセスが走りすらしていない状況で join してしまうとどうなるのだろう‥‥‥
0203デフォルトの名無しさん
2013/02/04(月) 21:01:42.22それがメインスレッドでないと不具合を起こす、という感じに見える
0204デフォルトの名無しさん
2013/02/04(月) 21:17:48.10出たのは良かったけど、なんだろうね。マルチスレッド全く知らないのでコメント出来ない…。
cygwinの持っているライブラリがバッファリングのデッドロックを起こしていたのかな。
0207デフォルトの名無しさん
2013/02/04(月) 23:42:44.440208デフォルトの名無しさん
2013/02/05(火) 02:25:20.84i++,++iの違いが出てくる時なんて
0209デフォルトの名無しさん
2013/02/05(火) 04:54:35.42while(--i)
が多いかな
まあ、while 自体あまり使わんが
0210デフォルトの名無しさん
2013/02/05(火) 05:23:30.56http://toro.2ch.net/test/read.cgi/tech/1359991635/1
で
> void func(a[3][3]){
が糞らしいですがなぜですか?
0211デフォルトの名無しさん
2013/02/05(火) 05:37:25.380212デフォルトの名無しさん
2013/02/05(火) 07:17:48.111回回すなら
int i = 1;
while (i--) {
}
じゃないの?
0213デフォルトの名無しさん
2013/02/05(火) 08:22:35.43i-- を使うやつは馬鹿と決まっている
0214デフォルトの名無しさん
2013/02/05(火) 08:32:44.91ごめん、適切ではなかった
0215デフォルトの名無しさん
2013/02/05(火) 08:48:51.92どっちでもいいならC言語では好きなほうでいい
0216デフォルトの名無しさん
2013/02/05(火) 09:59:34.090217デフォルトの名無しさん
2013/02/05(火) 11:39:22.540218デフォルトの名無しさん
2013/02/05(火) 11:49:00.38int i = 0;
while (++i&1) {}
0219デフォルトの名無しさん
2013/02/05(火) 12:38:52.090220デフォルトの名無しさん
2013/02/05(火) 13:38:24.230221デフォルトの名無しさん
2013/02/05(火) 13:54:32.86ぷっ
>いれるのなら join の前にsleep かなあ‥‥‥
ならどれくらいの時間sleepすれば”確実に”スレッドが走り始めるのかなあ…
>チャイルドプロセスが走りすらしていない状況で join してしまうとどうなるのだろう‥‥‥
プロセスとスレッドの違いもわからない似非玄人は黙っとけよ
0222デフォルトの名無しさん
2013/02/05(火) 18:00:22.56同じになったなら好きな方にすればいい
ふーん、createthread() と join() とはプロセスにおけるfork()とwait2() の関係をスレッドに投影したものと考えたらいいのね。
いちいち起動待ちのイベント(win32)をいれていたけれどもそんな必要はないのか‥‥‥。
0224デフォルトの名無しさん
2013/02/05(火) 20:35:32.13わかってねーうんこは引っ込んでろ。
> いちいち起動待ちのイベント(win32)をいれていたけれどもそんな必要はないのか‥‥‥。
> いちいち起動待ちのイベント(win32)をいれていたけれどもそんな必要はないのか‥‥‥。
> いちいち起動待ちのイベント(win32)をいれていたけれどもそんな必要はないのか‥‥‥。
> いちいち起動待ちのイベント(win32)をいれていたけれどもそんな必要はないのか‥‥‥。
> いちいち起動待ちのイベント(win32)をいれていたけれどもそんな必要はないのか‥‥‥。
あれ、経験ない?
サブスレッドが走り出す前に親スレッドのCreateThread()がじゃんじゃんまわって、何がおこっているのかさっぱりわけわかんなくなったことがあるんだ。
そこでイベントを使ってサブスレッドが走り出すまでは次のCreateThread()にいかないようにしたんだけれども、まあそんなことしなくてもいいみたいなんだね。
わかってないのは、まあそのとおりなんだけどもね、ああごめんね posix と win32 をごっちゃに話しして。
0226デフォルトの名無しさん
2013/02/05(火) 20:48:40.19ねーよ。うんこは引っ込んでろ。
ふーん、まあ1000個とかスレッド生成をループで連発する方もする方なんだけれどもね、でもいっぺんやってみたかったんだ。
0228デフォルトの名無しさん
2013/02/05(火) 20:55:54.690229デフォルトの名無しさん
2013/02/05(火) 20:59:39.14はいはい
CreateThread()でチャイルド”プロセス”たん(笑)を1000人生成して
にゃんにゃんしてればいいじゃん
0230デフォルトの名無しさん
2013/02/05(火) 21:15:23.56あれ?プロセスとスレッドを混同したようなふうにみえるのかなあ‥‥‥チャイルドスレッド、っていういいかたがまずかったのか。にゃんにゃんしたいだけして楽しかったんはそうなんですけど。
0232デフォルトの名無しさん
2013/02/05(火) 22:35:34.27脊髄反射するバカに
0233デフォルトの名無しさん
2013/02/06(水) 02:40:11.340234デフォルトの名無しさん
2013/02/06(水) 08:00:49.13感覚だけでモノ語るなタコ
0235デフォルトの名無しさん
2013/02/06(水) 08:24:32.22Qzといううんこにまともに突っ込むのは愚か者。↓こういうのに対して斜めに突っ込んだ結果
> チャイルドプロセスが走りすらしていない状況で join してしまうとどうなるのだろう‥‥‥
↓更にこういう間抜けな発言が飛び出してくる。
> ふーん、まあ1000個とかスレッド生成をループで連発する方もする方なんだけれどもね、でもいっぺんやってみたかったんだ。
このうんこ本当に何にも知らずにプログラム作ってるんだな。大学の宿題レベルがちょうどいいわ。
>>234
試しにi++と++iをカウントしてみた。電子書籍は楽だな。
K&R 2ndでi++ 42件、++i 17件。
そのうち、配列のインデックスなど前置である必要があるのは2つで、残りの15はどっちでもケース。
0236デフォルトの名無しさん
2013/02/06(水) 08:31:49.520237デフォルトの名無しさん
2013/02/06(水) 09:21:33.320238デフォルトの名無しさん
2013/02/06(水) 09:32:57.610239デフォルトの名無しさん
2013/02/06(水) 09:35:34.83どっちでも イイ!
0240デフォルトの名無しさん
2013/02/06(水) 09:43:50.06>>233-234がたまたま目についただけで、簡単にカウントできる環境があったからカウントしただけ。
> 世界じゃそれをなぜ必死?と笑うんだぜ>>235
それを世間じゃゲスの勘ぐりと笑うんだぜ。 >>237
たぶん
> それぞれの内訳はいくつだよアホ
と煽ってみたのにあっさりカウントされて顔真っ赤なんだろう。
0241デフォルトの名無しさん
2013/02/06(水) 11:08:53.490242デフォルトの名無しさん
2013/02/06(水) 11:12:45.420243デフォルトの名無しさん
2013/02/06(水) 11:17:14.83と言いたいお年ごろ草
0244デフォルトの名無しさん
2013/02/06(水) 11:23:41.26なんかの歌詞かと思ったけど違った
電車男か・・・
0245デフォルトの名無しさん
2013/02/06(水) 11:26:01.39カオティックな展開になっております
0246デフォルトの名無しさん
2013/02/06(水) 11:59:44.60pthread_create()してるのに生成したスレッドが中々スケジューリングされないって経験ならあるよ。
それが理由で、Webで散見されるpthread_mutex()のサンプルが使い物にならなくて苦労した。
まぁ、Linuxでμs単位のスケジューリングを期待しちゃダメって話なんだけど。
0247デフォルトの名無しさん
2013/02/06(水) 12:59:14.12ライブラリのコードを変更することなく、ライブラリに定義されている関数の挙動を変えるにはどうすればよいでしょうか?
0248デフォルトの名無しさん
2013/02/06(水) 13:03:20.800249デフォルトの名無しさん
2013/02/06(水) 13:20:21.020250デフォルトの名無しさん
2013/02/06(水) 13:56:26.890251デフォルトの名無しさん
2013/02/06(水) 14:07:08.520252デフォルトの名無しさん
2013/02/06(水) 14:08:31.880253デフォルトの名無しさん
2013/02/06(水) 15:27:59.420254デフォルトの名無しさん
2013/02/06(水) 15:45:26.480255デフォルトの名無しさん
2013/02/06(水) 16:26:56.14まともな回答がほしければokwaveとかY!知恵遅れあたりへどうぞ
0256デフォルトの名無しさん
2013/02/06(水) 21:23:26.14つ>>253
#define で違う名前に変換こんな感じ
#define xmalloc(x, y) malloc(x)
#define xfree(x, y) free(x)
#define xrealloc(x, y, z) realloc(x, y)
0258デフォルトの名無しさん
2013/02/06(水) 22:21:54.62void hoge(int a) {printf("OK\n");};
#define hoge(a) \
if (a==1) printf("NG1\n");\
else if (a==2) (hoge)(a);\
else if (a==3) printf("NG2\n");
int main()
{
hoge(1);
hoge(2);
hoge(3);
return 0;
}
0259デフォルトの名無しさん
2013/02/06(水) 22:24:07.410260デフォルトの名無しさん
2013/02/06(水) 22:36:13.07例えばライブラリ関数say_hello()からsay()が呼ばれるけどsay()の挙動がおかしいと。
このときsay()を自前のに置き換えるにはどうすんのかね?
0261デフォルトの名無しさん
2013/02/06(水) 22:45:08.41すげかえ#define を .h にかいておき、ライブラリのすべての .c でその .h を #include
0262デフォルトの名無しさん
2013/02/06(水) 22:45:40.98自作関数でsay()を作成
0263デフォルトの名無しさん
2013/02/06(水) 22:47:55.410264デフォルトの名無しさん
2013/02/06(水) 22:50:59.530265デフォルトの名無しさん
2013/02/06(水) 22:55:04.76なら残るだろうが
質問者が想定してるのはもっと広義なライブラリなきがする
0266デフォルトの名無しさん
2013/02/06(水) 22:57:35.47まで理解した
というわけで誰かあてかた教えて
0267デフォルトの名無しさん
2013/02/06(水) 23:28:09.090268デフォルトの名無しさん
2013/02/07(木) 00:04:44.95オープンソースっていうのだから、最小限のソース変更で切り抜ければいいのでは?
0269デフォルトの名無しさん
2013/02/07(木) 00:10:36.74だからなあ
0270デフォルトの名無しさん
2013/02/07(木) 00:21:56.250271デフォルトの名無しさん
2013/02/07(木) 01:15:54.250272デフォルトの名無しさん
2013/02/07(木) 04:09:21.82http://www.ibm.com/developerworks/jp/linux/library/l-glibc/
0273デフォルトの名無しさん
2013/02/07(木) 04:19:08.25void any()__attribute(ナントカ){}とか
0274デフォルトの名無しさん
2013/02/07(木) 12:22:59.870275デフォルトの名無しさん
2013/02/07(木) 19:01:52.75大学の課題で以下の課題が出ているのですが、
方針がさっぱり立たないので、どなたかご教授していただけないでしょうか?
よろしくお願いします。
長いので分けます。
0276デフォルトの名無しさん
2013/02/07(木) 19:02:55.95使ってあらわすことを考える.配列の要素の添字0を最下位16ビット,添字
n−1を最上位16ビットとする.
2つの16Xnビットの符号なし整数が,配列aと配列bに格納されているとき,
この2つの符号なし整数の和を計算して配列cに格納したい.
たとえば,n=3の場合,16進表示で下記のような計算を行いたい.
85ac 8001 e4f3 + af54 b345 0c8e = 3501 3346 f181
-------------- -------------- --------------
a b c
なお,aの85acが最上位(つまり,添え字2に対応),8001は添え字1に対応,
e4f3は添え字0に対応している.
この場合,最上位から1が桁上がりとなる.
整数n,配列a,b,cを引数とし,最上位の桁上がりを返す関数addを作成せよ.
ただし,
16ビット符号なし整数 = unsigned short
32ビット符号なし整数 = unsigned int
とする.
0277デフォルトの名無しさん
2013/02/07(木) 19:13:30.31C/C++の宿題片付けます 162代目
http://toro.2ch.net/test/read.cgi/tech/1357748713/
0278デフォルトの名無しさん
2013/02/07(木) 21:26:42.45> どなたかご教授していただけないでしょうか?
どこの馬の骨ともわからん名無しを弟子に持つ気はない。
0279デフォルトの名無しさん
2013/02/07(木) 22:09:45.53unsigned short add(unsigned short n, unsigned short *a, unsigned short *b, unsigned short *c)
{
unsigned short carry = 0;
unsigned int tmp = 0;
int i;
for ( i = 0; i < n; ++i ){
tmp = a[i] + b[i];
carry = tmp >> 0x10;
c[i] = (unsigned short)(tmp & 0xFFFF);
}
return carry;
}
つか大学生なら頭良いんだろ?簡単に解いてくれよ
俺なんか中学不登校、底辺高校からの専門程度なんだから
0280デフォルトの名無しさん
2013/02/07(木) 22:10:36.470281デフォルトの名無しさん
2013/02/08(金) 00:02:59.84ありがとうございます。
専門が情報系ではないのですが、授業の過程に入っていて苦戦してました。
お手数ですが、コメント(この処理は何をしている)などの説明も
教えていただけたら幸いです。
よろしくお願いします。
0282デフォルトの名無しさん
2013/02/08(金) 00:19:21.28専門行ってるとは言ったが、俺も情報系ではないぞ
天下の大学生サマとしては
「やること沢山あんだからんなことやってる暇ねぇよ!」
かもしれないけど、せっかくだから自分で考えてほしいわ
0283デフォルトの名無しさん
2013/02/08(金) 00:37:21.050284デフォルトの名無しさん
2013/02/08(金) 00:40:59.56自分はそういう専攻じゃないから〜とか言って、考えようとしない姿勢が嫌いなだけだ
同じとこに通ってたやつにもずっとこういう対応をとってきてる
0285デフォルトの名無しさん
2013/02/08(金) 03:13:40.360286デフォルトの名無しさん
2013/02/08(金) 04:21:58.93教える方が悪そうな感じ
0287デフォルトの名無しさん
2013/02/08(金) 04:36:30.420288デフォルトの名無しさん
2013/02/08(金) 04:56:35.70と記述するとなぜ構文エラーとなるのですか
0289デフォルトの名無しさん
2013/02/08(金) 05:00:27.74その書き方、誰に教わったんかいな
0290デフォルトの名無しさん
2013/02/08(金) 05:04:34.39書くのならこう。http://codepad.org/0Jor13AI
文はかけない、式をかく。
0291デフォルトの名無しさん
2013/02/08(金) 07:33:08.21ありがとうございました
0292デフォルトの名無しさん
2013/02/08(金) 07:53:22.13QZに礼なんかいうな馬鹿野郎
0293デフォルトの名無しさん
2013/02/08(金) 09:39:33.270294デフォルトの名無しさん
2013/02/08(金) 09:56:28.120295デフォルトの名無しさん
2013/02/08(金) 12:35:21.57線分を表す構造体struct linesegmentを使い,2つの線分
struct linesegment line1とstruct linesegment line2とが交点を
持つかどうかを判定し,交点を持つ場合には1,持たない場合には0を返す関数
int if_intersect(struct linesegment line1,struct linesegment line2)を作成せよ.
struct point2d {/*2次元空間の点のx座標とy座標をそれぞれdoubleに格納*/
double x; double y;
};
struct linesegment {/*線分の始点sと終点eをそれぞれstruct point2dに格納*/
struct point2d s; struct point2d e;
}:
これってどうやったらいいのですか?
さっぱりわからなくて・・・
0296デフォルトの名無しさん
2013/02/08(金) 12:44:53.28交点の求め方がわからないの?
二点があれば、その二点を通る直線の一次関数が求まるでしょ?
その二つの一次関数を一次方程式に見立てて解を求めるだけだよ。
答えだけが欲しいなら、宿題スレに。
0297デフォルトの名無しさん
2013/02/08(金) 12:46:50.340298デフォルトの名無しさん
2013/02/08(金) 13:07:11.25方針が立たないです。
宿題スレで聞いてもスルーされるかなと思い、
こちらで質問させていただきました。
0299デフォルトの名無しさん
2013/02/08(金) 13:32:21.080300デフォルトの名無しさん
2013/02/08(金) 13:52:10.99数学板にでも行けば?
0301デフォルトの名無しさん
2013/02/08(金) 15:04:16.47学習し始めたばっかだけど
0302デフォルトの名無しさん
2013/02/08(金) 15:35:32.79一行で済むのにわざわざcodepadに張り付けて、mainの後ろに/* end */入れる
異常に自己顕示欲の強いチンカスはQZ
そして
> return (x > y) ? x : y;
素人っぽい。
0303デフォルトの名無しさん
2013/02/08(金) 15:36:06.35ぐぐれば出てくるよ、たぶん
0304デフォルトの名無しさん
2013/02/08(金) 15:41:26.01じゃあどう記述すればプロ()っぽいんだよ
やってみろよ
0305デフォルトの名無しさん
2013/02/08(金) 15:46:06.63{
return x; /* xを返す */
}
else
{
return y; /* yを返す */
}
0306デフォルトの名無しさん
2013/02/08(金) 15:47:31.290307デフォルトの名無しさん
2013/02/08(金) 15:50:14.710308デフォルトの名無しさん
2013/02/08(金) 16:03:52.30プログラミング言語C 第2版 p61
位置pから始まるnビットをyの右端のnビットにセットし、他のビットは
そのままにしたxを返す関数setbit(x,p,n,y)を書け。
xを返してもあまり意味がないような・・・yはどうなるのかと。
0309デフォルトの名無しさん
2013/02/08(金) 16:26:22.48三項演算子の回答として書いてんのに、なにいってんの?ww
0310デフォルトの名無しさん
2013/02/08(金) 16:32:32.830311デフォルトの名無しさん
2013/02/08(金) 16:41:01.420312デフォルトの名無しさん
2013/02/08(金) 16:42:28.640313デフォルトの名無しさん
2013/02/08(金) 16:43:50.040314デフォルトの名無しさん
2013/02/08(金) 16:48:26.80001.exe : 001.obj
bcc32 001.obj -e001.exe
001.obj : 001.c
bcc32 -w -c 001.c -o001.obj
clean:
del *.obj
del *.tds
これでいいはずだが001.objと001.tdsが消えてくれないw
どうすれば消せるの?
BCC5.5.1でDOS窓アプリ作ってます
0315デフォルトの名無しさん
2013/02/08(金) 17:15:19.13あなたの言ってるのが正しいなら
returnの後に/*�ヤす*/って書くのも
「以上に自己顕示欲の強いチンカス」ですね
0316デフォルトの名無しさん
2013/02/08(金) 17:37:24.94何時まで20世紀のコンパイラ使ってんだよ捨てろよ
0317デフォルトの名無しさん
2013/02/08(金) 17:46:28.780318デフォルトの名無しさん
2013/02/08(金) 17:50:24.000319デフォルトの名無しさん
2013/02/08(金) 17:53:10.46ttp://ideone.com/wHWliE
田舎臭いコードかも知れんが
0320デフォルトの名無しさん
2013/02/08(金) 17:59:48.22煽りは良いから正解をはよーw
抽象論はいらないから具体的かつ確実な方法でw
0321デフォルトの名無しさん
2013/02/08(金) 18:00:57.23makeはどのmakeかによって方言があるので、自分の使っている
makeがどれなのかまず調べて、そのmakeの使い方をググれば
出てくるよ。一般的な疑問だから資料はたくさんある。
たとえばVisual Studio Express付属のnmakeだったら
nmake 使い方
でググればいっぱい出てくる。
0322デフォルトの名無しさん
2013/02/08(金) 18:01:33.45よく判らんのだが、make cleanしても消えないってこと?
どっちみちCの話じゃないけど。
0323デフォルトの名無しさん
2013/02/08(金) 18:12:31.09delの前が半角スペースだったりして。
タブじゃないと。
UNIX板だけど
http://toro.2ch.net/test/read.cgi/unix/1079538957/
で聞くとか…
0324314
2013/02/08(金) 18:30:18.34解決しました
001.exe : 001.obj
bcc32 001.obj -e001.exe
del *.obj
del *.tds
001.obj : 001.c
bcc32 -w -c 001.c -o001.obj
これでいいようでした
お騒がせしました
0325デフォルトの名無しさん
2013/02/08(金) 18:34:28.05よくねーよ
空行がいるだろ
そもそも毎回コンパイルされるだろそれ
0326デフォルトの名無しさん
2013/02/08(金) 18:34:48.16bcc32 001.obj -e001.exe
001.obj : 001.c
bcc32 -w -c 001.c -o001.obj
clean:
-del 001.txt
dir 001.obj >> 001.txt
dir 001.tds >> 001.txt
0327デフォルトの名無しさん
2013/02/08(金) 18:37:51.330328デフォルトの名無しさん
2013/02/08(金) 19:16:27.460329デフォルトの名無しさん
2013/02/08(金) 20:26:22.370330319
2013/02/08(金) 21:01:57.16struct linesegment line1 = { {0.0, 0.0}, {2.0, 1.0} };
struct linesegment line2 = { {1.0, 2.0}, {1.5, 0.0} };
だと、交わるはずなのに「交わらない」と出るのでダメだ・・
0331デフォルトの名無しさん
2013/02/08(金) 21:02:04.03http://toro.2ch.net/test/read.cgi/tech/1313183984/594
0332319
2013/02/08(金) 21:31:28.99>>319に、2つの線分それぞれに傾きがある(y軸と平行なのが無い)ときの
範囲内交点有無の判定が無かったので追加。
0334デフォルトの名無しさん
2013/02/08(金) 22:01:34.32計算式が正しいかは見てないけど、m[2] は間違いだと思う。
0335319
2013/02/08(金) 22:54:08.66ああ、ありがとうございます。
その通りです。m[1]が正しい。直して正しい値が出るようになりました。
ttp://ideone.com/SVmxzK
ちなみに、
[x1, y1]を通る直線(傾きはm1)は、
Y - y1 = m1 * (X - x1)
[x2, y2]を通る直線(傾きはm2)は、
Y - y2 = m2 * (X - x2)
交点[kt.x, kt.y]は上の[X, Y]を求めれば良いので、それで計算しています。
0336デフォルトの名無しさん
2013/02/08(金) 23:10:27.09解答ありがとうございます。
0337デフォルトの名無しさん
2013/02/08(金) 23:32:19.84いや参考程度にしてください。私も初心者です
0338デフォルトの名無しさん
2013/02/09(土) 01:25:56.61ほら、正しい事が証明できた。
アンカーは間違ってるし、不正コード混じってるし、漢字変換も間違ってるし、なにより論理破綻。
これが>>290がチンカスQzである証明。
0339デフォルトの名無しさん
2013/02/09(土) 01:44:37.36((line1.s.y - line1.e.y) * (line2.e.x - line1.s.x) + (line1.s.x - line1.e.x) * (line2.e.y - line1.s.y)) < 0 &&
((line2.s.y - line2.e.y) * (line1.s.x - line2.s.x) + (line2.s.x - line2.e.x) * (line1.s.y - line2.s.y)) *
((line2.s.y - line2.e.y) * (line1.e.x - line2.s.x) + (line2.s.x - line2.e.x) * (line1.e.y - line2.s.y)) < 0;
0340デフォルトの名無しさん
2013/02/09(土) 03:44:54.99厨は「論理ろんり lonly!!」と連発するが、正直「論理」がいかほどのものか?
0341デフォルトの名無しさん
2013/02/09(土) 03:45:25.45ここに挙げてあるソースコードが gcc環境でうまく実行できません。
コンパイルエラーは出ないのですが、実行がどうもうまくいきません。
どなたか教えてください。
下はプログラム内で読み込んでいるファイルの中身です。
1 鈴木 21
2 横山 27
3 高野 68
4 河野 17
5 ミルコ 34
6 ヒョー 32
7 A-san 45
8 B-san 70
9 C-san 5
10 D-san 15
0342デフォルトの名無しさん
2013/02/09(土) 03:55:02.10コンパイルエラー出てるやん。
ptr->prev = (*top);
がよくわかりません。どんなリストを作りたいの?
それはC++のときだけに出るエラー。
0345デフォルトの名無しさん
2013/02/09(土) 04:33:10.620346デフォルトの名無しさん
2013/02/09(土) 04:43:04.36http://ideone.com/files/ideone-api.pdf
をみるかぎりそれはなさそうだ
0347デフォルトの名無しさん
2013/02/09(土) 07:29:48.89まず、期待する結果を教えてくれ
0348デフォルトの名無しさん
2013/02/09(土) 10:32:49.13自己愛性性格異常者にはわからないようだ。
> あなたの言ってるのが正しいなら
> returnの後に/*\374\374を返す*/って書くのも
> 「以上に自己顕示欲の強いチンカス」ですね
0349デフォルトの名無しさん
2013/02/09(土) 12:45:25.32ファイルポインタでファイルを読み込んで
最終的に年齢順に昇順でソートを行えればよいです。
バブルソートを使っています。
0350デフォルトの名無しさん
2013/02/09(土) 13:03:55.510351デフォルトの名無しさん
2013/02/09(土) 19:11:37.810352デフォルトの名無しさん
2013/02/09(土) 19:43:57.74論ですらないけどな。
0353デフォルトの名無しさん
2013/02/09(土) 20:15:40.86fileOpen()内で宣言しているファイルポインタを
返しているから?
main()内で FILE **fp を作り、そこに渡してみれば?
0354デフォルトの名無しさん
2013/02/09(土) 20:29:22.19そーすそのままで、gcc version 4.7.2 での実行結果。
--------------before sort--------------
[1]:鈴木さん:21歳
[2]:横山さん:27歳
[3]:高野さん:68歳
[4]:河野さん:17歳
[5]:ミルコさん:34歳
[6]:ヒョーさん:32歳
[7]:A-sanさん:45歳
[8]:B-sanさん:70歳
[9]:C-sanさん:5歳
[10]:D-sanさん:15歳
--------------after sort--------------
[9]:C-sanさん:5歳
[10]:D-sanさん:15歳
[4]:河野さん:17歳
[1]:鈴木さん:21歳
[2]:横山さん:27歳
[6]:ヒョーさん:32歳
[5]:ミルコさん:34歳
[7]:A-sanさん:45歳
[3]:高野さん:68歳
[8]:B-sanさん:70歳
0355デフォルトの名無しさん
2013/02/09(土) 20:34:20.730356デフォルトの名無しさん
2013/02/09(土) 20:54:29.35対策1 make clean とコマンドプロンプトから直打ち
対策2 cleanのターゲットに 001.exeを入れる clean : 001.exe
0357デフォルトの名無しさん
2013/02/09(土) 21:58:50.52ありがとうございます
gcc から実行ファイルを指定して実行する時
どのようにコマンド入力しましたか?
0359デフォルトの名無しさん
2013/02/09(土) 23:36:00.940360デフォルトの名無しさん
2013/02/10(日) 00:06:39.660361デフォルトの名無しさん
2013/02/10(日) 03:11:16.21a.exe input.txt
0362デフォルトの名無しさん
2013/02/10(日) 07:59:26.86おすすめて本しりませんか?
0363デフォルトの名無しさん
2013/02/10(日) 09:25:08.670364デフォルトの名無しさん
2013/02/10(日) 10:49:14.29最初に読んだ本はこれですが、いいかどうかはよくわかりません。確実にいえることは「一冊で読み止まることはない」ということでしょうか。
http://www.amazon.co.jp/dp/4875931735/
0365デフォルトの名無しさん
2013/02/10(日) 10:57:17.130366デフォルトの名無しさん
2013/02/10(日) 12:06:40.29「独習C」。各章ごとに練習問題があり、
実際に動かしながら学べます。
あくまでも、コンソールアプリ止まりですが…。
0367デフォルトの名無しさん
2013/02/10(日) 12:38:24.45この言語難解過ぎるだろう・・・
0368デフォルトの名無しさん
2013/02/10(日) 12:41:13.540369デフォルトの名無しさん
2013/02/10(日) 12:59:42.65「C実践プログラミング」 でCの文法、make、gdbなど、基礎を習得
↓
「C言語ポインタ完全制覇」 or 「秘伝C言語問答 ポインタ編」 でポインタに関して完全理解する
↓
「エキスパートCプログラミング―知られざるCの深層」 でスタック、ヒープ、リンカ、ローダなど周辺知識を習得
↓
「C言語によるオブジェクト指向プログラミング入門」 で大規模プログラムの作り方を学ぶ
↓
「C言語デバッグ完全解説」でバグに強いプログラムの記述法をマスター
↓
「Code Complete(上)(下)」でより良いC言語プログラムとは何かを各人で考察する
↓
神の誕生
0370デフォルトの名無しさん
2013/02/10(日) 13:06:44.870371デフォルトの名無しさん
2013/02/10(日) 14:37:41.940372デフォルトの名無しさん
2013/02/10(日) 14:41:07.700373デフォルトの名無しさん
2013/02/10(日) 14:55:58.350374デフォルトの名無しさん
2013/02/10(日) 14:59:19.440375デフォルトの名無しさん
2013/02/10(日) 15:02:35.560376デフォルトの名無しさん
2013/02/10(日) 15:07:58.900377デフォルトの名無しさん
2013/02/10(日) 15:08:58.83ぶっちゃけ本をたくさんよりも、いかにやるかが重要だろう
0378デフォルトの名無しさん
2013/02/10(日) 17:02:52.46神になった人は、ソフト道探求の為、仙人となった。 みんな貧乏。 だって仕事しねぇんだもん! 断ってばかり・・・
0379デフォルトの名無しさん
2013/02/10(日) 17:10:30.850380デフォルトの名無しさん
2013/02/10(日) 17:16:10.98言語に機能が備わっていないからすごいことになるだけで。
0381デフォルトの名無しさん
2013/02/10(日) 18:03:14.62OOの一面に記述方法で機能を表現するというのもあるが、vtable が裸でみえるゴダゴダな状況で、それでも機能を表現している、と胸をはってもいいものか?
0382デフォルトの名無しさん
2013/02/10(日) 18:06:00.53ナニで書いてるんだよ
どうする?じゃねーんだ
もうすでにOOじゃない何かの言語でOOのコンパイラが実装されてんだ
0383デフォルトの名無しさん
2013/02/10(日) 18:09:04.04C++「トランスレータ」はOOではありません霧
0384デフォルトの名無しさん
2013/02/10(日) 18:13:16.80普通に、オブジェクト指向で設計したものを、
「すまんがお客様の都合でC言語で実装しても欲しい、ということになった」
と糞営業から言われたことを想定すればいい。
がんばれば、オブジェクト指向をC言語でも実装できるよ。
はたしてそれをオブジェクト指向のソースと理解してもらえるかは別の話で。
struct xxx_softc {
struct ifnet ifnet;
0385デフォルトの名無しさん
2013/02/10(日) 18:16:58.34>はたしてそれをオブジェクト指向のソースと理解してもらえるかは別の話で。
うふふ、そういうことですね。霧
0386デフォルトの名無しさん
2013/02/10(日) 18:23:46.67というCソースはたまに見るよね。
そういうことを実現したいためにC++になったわけだし。
0387デフォルトの名無しさん
2013/02/10(日) 18:29:13.98> というCソースはたまに見るよね。
> そういうことを実現したいためにC++になったわけだし。
Qzと会話できる奴はやはり低脳な発言をする。
0388デフォルトの名無しさん
2013/02/10(日) 18:33:34.87お前の隔離スレはここだhttp://toro.2ch.net/test/read.cgi/tech/1358278884/
0389デフォルトの名無しさん
2013/02/10(日) 18:35:28.240390デフォルトの名無しさん
2013/02/10(日) 18:41:19.68もちろん継承とかがあるわけではないが
0391デフォルトの名無しさん
2013/02/10(日) 19:09:29.740392デフォルトの名無しさん
2013/02/10(日) 19:11:32.730393デフォルトの名無しさん
2013/02/10(日) 19:18:12.480394デフォルトの名無しさん
2013/02/10(日) 19:41:45.15int array[5][5] = {-1};
みたいな初期化はできるの?
0395デフォルトの名無しさん
2013/02/10(日) 19:46:26.760396デフォルトの名無しさん
2013/02/10(日) 19:47:33.800397デフォルトの名無しさん
2013/02/10(日) 19:56:17.90for分使って2重ループで代入するってことか?。
0398デフォルトの名無しさん
2013/02/10(日) 20:11:16.900399デフォルトの名無しさん
2013/02/10(日) 20:19:01.920400デフォルトの名無しさん
2013/02/10(日) 20:51:33.65馬鹿それは初期化といわない
0401デフォルトの名無しさん
2013/02/10(日) 20:55:09.970402デフォルトの名無しさん
2013/02/10(日) 20:56:12.45わかってるやつはCでもオブジェクト指向のプログラムを書く
分かってない馬鹿のために言語仕様でオブジェクト指向のプログラムを
書けるようにしたのがC++やJavaなのだ
0403デフォルトの名無しさん
2013/02/10(日) 20:56:39.94低脳同士話が合うんだろ。隔離スレに引っ込んでろ。
http://toro.2ch.net/test/read.cgi/tech/1313183984/l50
0404デフォルトの名無しさん
2013/02/10(日) 20:59:17.08int arr[5][5] = {-1,}; // 全部-1初期化
任意の値を初期化するなら
int arr[5][5] = {
{1, 1, 1, 1, 1},
{2, 2, 2, 2, 2},
{3, 3, 3, 3, 3},
{4, 4, 4, 4, 4},
{5, 5, 5, 5, 5}
};
二次元のイメージまんまに入れるとしたらこんなん
0405デフォルトの名無しさん
2013/02/10(日) 21:00:36.540406デフォルトの名無しさん
2013/02/10(日) 21:04:40.12http://ideone.com/W8mIoN
0407デフォルトの名無しさん
2013/02/10(日) 21:09:56.30>int arr[5][5] = {-1,};
gcc は怒ってくる‥‥
$ gcc -ansi -pedantic -Wall array.init.01.c
array.init.01.c: In function ‘main’:
array.init.01.c:6:3: 警告: 初期化子のまわりのブレースを欠いています
array.init.01.c:6:3: 警告: (near initialization for ‘b[0]’)
0408デフォルトの名無しさん
2013/02/10(日) 21:29:58.56>int arr[5][5] = {-1,};
borlandコンパイラだと、arr[0][0]だけに-1が設定され、
あとはすべて0で初期化される。
0409デフォルトの名無しさん
2013/02/10(日) 21:31:52.81どのコンパイラでもそうじゃね?
0410デフォルトの名無しさん
2013/02/10(日) 21:36:36.61int arr[5][5] = {-1,}; // 全部-1初期化
と書かれてるけど、これが間違ってるってことか。
0411デフォルトの名無しさん
2013/02/10(日) 21:39:34.52それで全部-1が入るコンパイラはCの規格には従ってないよ。
組み込み向けとか独自仕様とかあるのかもしれないけど。
0412デフォルトの名無しさん
2013/02/10(日) 22:00:44.36涙なしには読めない
0413デフォルトの名無しさん
2013/02/10(日) 23:13:53.550414デフォルトの名無しさん
2013/02/10(日) 23:21:31.34規格書はその辺りの記述が回りくどかった記憶がある
うろ覚えだと、直接的な記述が無くて
「静的記憶域期間を持つ変数と同様」っていうような形
0415デフォルトの名無しさん
2013/02/10(日) 23:23:54.35なんか言いたいことある?
ISO/IEC 9899:1999 (E)
6.7.8 Initialization
21 If there are fewer initializers in a brace-enclosed list than there are elements or members
of an aggregate, or fewer characters in a string literal used to initialize an array of known
size than there are elements in the array, the remainder of the aggregate shall be
initialized implicitly the same as objects that have static storage duration.
0416デフォルトの名無しさん
2013/02/11(月) 00:22:24.41JIS X 3010 PDF96P
集成体型の要素又はメンバの個数より波括弧で囲まれた並びにある初期化子が少ない場合、又は大きさが既知の
配列の要素数よりその配列を初期化するための文字列リテラル中の文字数が少ない場合、その集成体型の残りを、
静的記憶域期間をもつオブジェクトと同じ規則で暗黙に初期化する。
0417デフォルトの名無しさん
2013/02/11(月) 00:47:54.47逃走?
0418デフォルトの名無しさん
2013/02/11(月) 06:36:30.170419デフォルトの名無しさん
2013/02/11(月) 09:53:52.62×int arr[5][5] = {-1,}; // 全部-1初期化
息してる?
0420デフォルトの名無しさん
2013/02/11(月) 10:04:08.96○ >>404のような人が回答者として紛れ込んでる事実に驚愕
0421デフォルトの名無しさん
2013/02/11(月) 10:12:53.57神レベルの人が退職等でいなくなれば、あまりの複雑さに誰も近寄らなくなる。
0422デフォルトの名無しさん
2013/02/11(月) 10:26:18.70メンテしやすいかどうかは別の話だな
0423デフォルトの名無しさん
2013/02/11(月) 10:27:48.39例外もsetjump, longjump でOK。霧
0424デフォルトの名無しさん
2013/02/11(月) 10:30:23.36隔離スレに引っ込んでろ。うんこども
http://toro.2ch.net/test/read.cgi/tech/1313183984/l50
0425デフォルトの名無しさん
2013/02/11(月) 10:38:35.17単にsetjmp/longjmpだと効率が悪いってだけ?
0426デフォルトの名無しさん
2013/02/11(月) 10:55:35.20効率もわるくねぇよ
一番最悪なのが誰の頭だかわかるだろ?
オメェだよ
0427デフォルトの名無しさん
2013/02/11(月) 10:56:57.75暗黙に呼び出される時のデストラクトは無理じゃね?
あとjumpだと、スタックの巻き戻しが出来ない気が
0428デフォルトの名無しさん
2013/02/11(月) 11:03:32.84それ以外の頭いいやつが実装してるよ
0429デフォルトの名無しさん
2013/02/11(月) 11:12:52.97百人単位で使うライブラリを神レベルの人がC言語でオブジェクト指向で
実装して、大混乱に陥れた挙句、その人はレベルが低すぎるってやめて
しまって、さらに大混乱になった事例を知っている。
そして、「でもいいもののはずだ」という上の判断からそれが使われ続けて
阿鼻叫喚の地獄絵図に。
もう10年以上前の話だけど。
0430デフォルトの名無しさん
2013/02/11(月) 11:25:58.84スタック巻き戻しに備えるために
setjmpが必要な時点で効率悪い
0431デフォルトの名無しさん
2013/02/11(月) 11:26:10.63その神レベルのライブラリ、一度みてみたい。プロトタイプ宣言だけでもいいから教えてくれませんか?
0432デフォルトの名無しさん
2013/02/11(月) 11:38:36.77おいおい、守秘義務を何だと思ってるんだよw
0433デフォルトの名無しさん
2013/02/11(月) 12:15:57.530434デフォルトの名無しさん
2013/02/11(月) 12:16:37.230435デフォルトの名無しさん
2013/02/11(月) 12:17:58.970436デフォルトの名無しさん
2013/02/11(月) 12:23:42.44かなり恥ずかしい質問なんですが、
始めるにあたり、まず何を用意すべきなんでしょうか?
それらしいサイトまではいけるんですが、いつも途中で解らなくなり、挫折してしまいます。
コンパイラというものが必要らしいんですが、それはどうすれば入手できるんですか?
ものすごく基本なことなんですが、案外、きちんと解りやすく説明しているサイトも書籍もないんです。
0437デフォルトの名無しさん
2013/02/11(月) 12:23:57.260438デフォルトの名無しさん
2013/02/11(月) 12:25:53.34Visual Studio 2012 Express for Windows Desktop
http://www.microsoft.com/visualstudio/jpn/downloads#d-2012-express
0439デフォルトの名無しさん
2013/02/11(月) 12:28:13.74やさしいCでも買え
0440デフォルトの名無しさん
2013/02/11(月) 12:46:59.30プロトタイプなんてみてもなんのことだかわからないはず :-) でしょw
まあしかたがないねえ
0441デフォルトの名無しさん
2013/02/11(月) 12:52:17.76436です。
ありがとうございます。
0442デフォルトの名無しさん
2013/02/11(月) 14:39:03.160443デフォルトの名無しさん
2013/02/11(月) 15:08:42.25struct Car
{
int num;
double gas;
};
int main(void)
{
struct Car Jpn={10,10.264};
Car Usa={65,654.687};
printf("車のナンバー%d:ガソリン量は%f\n",Usa.num,Usa.gas);
printf("車のナンバー%d:ガソリン量は%f\n",Jpn.num,Jpn.gas);
return 0;
}
main内のstructは略しても大丈夫?
0444デフォルトの名無しさん
2013/02/11(月) 15:25:51.56C++ならYes
普通はtypedefして省略できるようにする
0445デフォルトの名無しさん
2013/02/11(月) 15:26:46.07C++なら気にしない(C互換性が必要ならするが)
0446デフォルトの名無しさん
2013/02/11(月) 15:29:29.75typedef struct Car Car;
struct Car { int num; double gas; };
もしくは
typedef struct Car { int num; double gas; } Car;
C++ではtypedefなしで略してもよい
0447デフォルトの名無しさん
2013/02/11(月) 15:31:15.63CではNG
0448デフォルトの名無しさん
2013/02/11(月) 15:49:30.40C++環境でCやってるからこういうことよくあるんよ
0449デフォルトの名無しさん
2013/02/11(月) 16:38:38.21typedef struct Car
{
int num;
double gas;
}Car;
int main(void)
{
int *an;
char *anan;
printf("%d\n%d\n",sizeof(*an),sizeof(*anan));
printf("構造体struct Car型へのポインタのサイズは%dバイトです。\n",sizeof(Car *));
return 0;
}
()内の*の位置はどういう意味があるんですか?
0450デフォルトの名無しさん
2013/02/11(月) 16:40:50.030451デフォルトの名無しさん
2013/02/11(月) 16:41:08.09後者の*の位置はなぜ前者と違っているのに成り立つのですか?
0452デフォルトの名無しさん
2013/02/11(月) 16:42:31.300453デフォルトの名無しさん
2013/02/11(月) 16:46:16.000454デフォルトの名無しさん
2013/02/11(月) 16:49:54.650455デフォルトの名無しさん
2013/02/11(月) 16:52:42.28バカにしないで教えてくれ
赤い犬ってなんですかって言ってんじゃないんだから
0456デフォルトの名無しさん
2013/02/11(月) 16:54:54.40いや、だから文字列に書いてある通りだろw
0457デフォルトの名無しさん
2013/02/11(月) 16:58:08.57はぁん!?
0458デフォルトの名無しさん
2013/02/11(月) 16:58:40.110459デフォルトの名無しさん
2013/02/11(月) 17:01:38.550460デフォルトの名無しさん
2013/02/11(月) 17:12:34.34コンパイラは変数の型を知っているから、変数からでもサイズを算出できる
つまり、
(*anan)は sizeof char と同じ結果になる
(Car *)はそのまま型のサイズになる
0461デフォルトの名無しさん
2013/02/11(月) 17:12:54.260462デフォルトの名無しさん
2013/02/11(月) 17:16:48.970463デフォルトの名無しさん
2013/02/11(月) 17:20:44.11sizeof演算子は二通りの用法がある。
sizeof 単項式
sizeof (型)
sizeof(*anan)は前者 ()は省略出来てsizeof *ananと書いてもよい
sizeof(Car *)は後者 ()は省略できない
0464デフォルトの名無しさん
2013/02/11(月) 17:24:19.530465デフォルトの名無しさん
2013/02/11(月) 17:33:59.100466デフォルトの名無しさん
2013/02/11(月) 17:35:55.24それとも知識をひけらかしたいのか
回答者は前者でなくてはな
0467デフォルトの名無しさん
2013/02/11(月) 17:38:07.49そう思って回答しているとずいぶんと違うものになるだろう
0468デフォルトの名無しさん
2013/02/11(月) 17:41:08.950469デフォルトの名無しさん
2013/02/11(月) 17:50:50.39そんなに回答者気分味わいたいなら、「初心者が初心者に偉そうに回答するスレ」でも作ってそこで回答しろ。
0470デフォルトの名無しさん
2013/02/11(月) 17:52:50.340471デフォルトの名無しさん
2013/02/11(月) 17:55:33.01それ以前に「ウソを教えない」、「見当はずれのレスをつけて混乱させない」 これ超重要
0472デフォルトの名無しさん
2013/02/11(月) 17:55:45.58何か小さいな。
0473デフォルトの名無しさん
2013/02/11(月) 17:56:17.06そもそも誰もウソなんて言ってないように見えるが
0474デフォルトの名無しさん
2013/02/11(月) 18:06:57.020475デフォルトの名無しさん
2013/02/11(月) 18:09:08.660476デフォルトの名無しさん
2013/02/11(月) 18:09:23.010477デフォルトの名無しさん
2013/02/11(月) 18:10:54.10一体お前の目には何が見えているんだ
0478デフォルトの名無しさん
2013/02/11(月) 18:14:07.64> (*anan)と(Car *)の違いがわからんのだが
と言っている。そして
> 後者の*の位置はなぜ前者と違っているのに成り立つのですか?
とも言っている。つまり、型と単項式の区別がついていないのだ。
それを説明せずに
> コンパイラは変数の型を知っているから、変数からでもサイズを算出できる
とは見当違いもはなはだしい。
0479デフォルトの名無しさん
2013/02/11(月) 18:16:47.020480デフォルトの名無しさん
2013/02/11(月) 18:21:02.51sizeof はどちらの使い方でも単項演算子だよ。
0481デフォルトの名無しさん
2013/02/11(月) 18:22:08.38式と型と言ってるね。
あってる。
0482デフォルトの名無しさん
2013/02/11(月) 18:23:43.76別に間違った事言って無いじゃん
Car*が型だってのは文字列に書いてある通りだし
ソースに説明の無い上の方の行の説明をしただけなんじゃないの?
俺じゃないから意図は分からんが、
少なくとも間違っては無いし
1から10まで全部言うよりは教育的
いや、この程度ですら言うべきじゃないと思うが
0483デフォルトの名無しさん
2013/02/11(月) 18:30:10.34>>478が自分の知識をドヤッてだけに見えてきたね。
何か正論なのにカワイソス。
0484デフォルトの名無しさん
2013/02/11(月) 18:34:09.930485デフォルトの名無しさん
2013/02/11(月) 18:34:35.09どんなに頑張って考えても正解にはたどり着かない。
int a;
1 sizeof a;
2 sizeof int;
3 sizeof(a);
4 sizeof(int);
何故2だけエラーになるのか考えてもわかるわけがない。
単に「そのように定義したから」
このような事を考えさせる意味は全く無い。教育的云々をいうなら説明せずに
「文法書読め」が正しい。
だらだらと↓こんな説明する意味は全くない。
> コンパイラは変数の型を知っているから、変数からでもサイズを算出できる
0486デフォルトの名無しさん
2013/02/11(月) 18:37:42.000487デフォルトの名無しさん
2013/02/11(月) 18:38:36.52その辺りの比較的上の部分なら
ちゃんとした理由がある
0488デフォルトの名無しさん
2013/02/11(月) 18:42:44.68やっぱり小さい。
ますます、本質をついているのは>>460ではないかと言う雰囲気が。。。
その丸暗記的な考え方が少々気にかかる。
0489デフォルトの名無しさん
2013/02/11(月) 18:44:09.03構文解析しやすいからじゃね
0490デフォルトの名無しさん
2013/02/11(月) 18:56:10.020491デフォルトの名無しさん
2013/02/11(月) 18:59:58.81warning出て文字化けした。
0492デフォルトの名無しさん
2013/02/11(月) 19:01:30.230493デフォルトの名無しさん
2013/02/11(月) 19:06:07.4764bit環境で誤動作する可能性がある
明らかに31bit超えないならintでキャストしとけ
0494デフォルトの名無しさん
2013/02/11(月) 19:06:45.230495デフォルトの名無しさん
2013/02/11(月) 19:07:46.230496デフォルトの名無しさん
2013/02/11(月) 19:12:29.25>(*anan)と(Car *)の違いがわからんのだが
そもそもポインタの基本がわかってないんだから、それ以外のことを言っても・・・
0497デフォルトの名無しさん
2013/02/11(月) 19:18:05.000498デフォルトの名無しさん
2013/02/11(月) 19:28:39.54敗走どころか恥の上塗りか
0500デフォルトの名無しさん
2013/02/11(月) 22:06:34.38例えば、str[20]という文字配列にscanfで任意の文字列を入力する
そして、endと入力したら処理を終了させたい
そのために、strcmp( str, "end" )で比較した
しかし、endと入力しても一致しない
理由は要素数が20ある文字列配列と比較してるからなんだろうけど、どう弄ったらいいかわからん
0501デフォルトの名無しさん
2013/02/11(月) 22:13:10.12http://ideone.com/8oQqbl
こっちでは問題ないです。
0503デフォルトの名無しさん
2013/02/11(月) 22:16:01.09戻り値を真偽値と勘違いしているに1ペリカ
0504デフォルトの名無しさん
2013/02/11(月) 22:30:35.970505デフォルトの名無しさん
2013/02/11(月) 22:46:59.61if ( !strncmp(str, "end", 3) ) {
break;
}
と、3文字で比較すれば良さそう。
0506デフォルトの名無しさん
2013/02/12(火) 00:11:41.67のった +1
0507デフォルトの名無しさん
2013/02/12(火) 00:56:12.110508デフォルトの名無しさん
2013/02/12(火) 01:13:58.38if ( (strlen(str) == 3 ) && !strncmp(str, "end", 3) ) {
break;
}
く、くるしい・・・。
0509デフォルトの名無しさん
2013/02/12(火) 01:15:51.154 にすれば解決
0510デフォルトの名無しさん
2013/02/12(火) 01:23:13.08その後にどんな文字が来ようと
0511デフォルトの名無しさん
2013/02/12(火) 02:57:18.210512デフォルトの名無しさん
2013/02/12(火) 04:21:30.38scanf()は入力文字列のケツに\0付けるんだから、そもそもこの場合はstrcmpで問題ない
0513デフォルトの名無しさん
2013/02/12(火) 09:16:41.630514デフォルトの名無しさん
2013/02/12(火) 09:19:43.190515デフォルトの名無しさん
2013/02/12(火) 11:54:29.92昨日のテレビ観たの?
京都大学霊長類なんとかのアイちゃんとその息子が出てた。
タッチパネルにバラバラに数字が一瞬だけ表示されて、
その数字が四角いボタンに切り替わる。
その四角いボタンを元の数字の順序通りに押せば正解というゲームで、
人間はすぐ忘れてなかなか正解が出せないけど、チンパンジーは
全て正解する。しかも物凄い速度で。
0516デフォルトの名無しさん
2013/02/12(火) 12:39:46.10タッチパネルを性格にタッチする仕事だけしてればいいんだったら楽だよなあ
0517デフォルトの名無しさん
2013/02/12(火) 12:44:11.22禁固刑なら仕事もしなくて良いぞ
0518デフォルトの名無しさん
2013/02/12(火) 15:10:04.770519デフォルトの名無しさん
2013/02/12(火) 16:37:19.18死刑囚でもなけりゃ仕事は中でやらされるかと。
0520デフォルトの名無しさん
2013/02/12(火) 17:27:57.67禁固刑と懲役刑の区別位しような。
0521デフォルトの名無しさん
2013/02/12(火) 17:59:40.440522デフォルトの名無しさん
2013/02/12(火) 18:11:30.520523デフォルトの名無しさん
2013/02/13(水) 00:29:04.37興味深いね。
そういえば長いソースをちらちら見ていたと思ったら、問題の箇所、話題となっている箇所をピタリと当てる人がいた、これはチンパン能力なのか?
0524デフォルトの名無しさん
2013/02/13(水) 10:11:13.24>長いソースをちらちら見ていたと思ったら、問題の箇所、話題となっている箇所をピタリと当てる人がいた、これはチンパン能力なのか?
ソフトウェア開発では、わりと普通のことだけど。
一般的なことだと、役割などを一言で説明できないような関数、変数には問題があることが多い。
コードレビューの際に感じる違和感や、アンチパターンと感じられるものを確認すると、バグが見つかったり
改善点が見つかったりする。
ソフト特定の事になると、バグが発生する箇所、問題になる箇所は大体、数カ所に集中するので、
その部分との関連を確認したりする。
0525デフォルトの名無しさん
2013/02/13(水) 11:37:23.88近い将来、静的解析ツールを買うとチンパンの入った箱が送られてくるようになるね
0526デフォルトの名無しさん
2013/02/13(水) 11:43:11.980527デフォルトの名無しさん
2013/02/13(水) 11:43:15.920528デフォルトの名無しさん
2013/02/13(水) 13:17:52.450529デフォルトの名無しさん
2013/02/13(水) 20:47:24.41ここに文字列20文字以内を表示し、左に流れていくようにしたい。
表示する文字がなくなったら、今度は表示器の右端から文字列が
流れてくるようにしたい。
それを所定回数ループする。
左に流れていくのはできるんだが、右端から流れてくるようにできない。
0530デフォルトの名無しさん
2013/02/13(水) 20:53:40.840531デフォルトの名無しさん
2013/02/13(水) 21:02:14.32将来的にはLinuxでコードを書く予定なので修正が必要ないほうが良いんですが
0532デフォルトの名無しさん
2013/02/13(水) 21:04:50.900533片山博文MZパンク ◆0lBZNi.Q7evd
2013/02/13(水) 21:06:00.13組み込みかい? どんな入力するとどんな出力になるというデバイス仕様がわからないと話にならないよ。
0534デフォルトの名無しさん
2013/02/13(水) 21:10:20.62VMにLinux入れて、それでやるのが一番
次点でcygwin
0535デフォルトの名無しさん
2013/02/13(水) 21:12:17.260536デフォルトの名無しさん
2013/02/13(水) 21:21:19.73あ、そうだ。大変失礼しました。
標準関数でいうところのputcharやprintfに該当するものは
あるので、DOS窓で
Hello*****
ello******
llo*******
lo********
o*********
*********H
********He
*******Hel
と表示できればできるかなと思って。
0537529
2013/02/13(水) 21:31:30.33char *s = "Hello";
char t[11] = "**********";
がある。下記の出力になるようにせよ。
Hello*****
ello******
llo*******
lo********
o*********
*********H
********He
*******Hel
******Hell
*****Hello
****Hello*
***Hello**
**Hello***
*Hello****
Hello*****
0538デフォルトの名無しさん
2013/02/13(水) 21:31:41.38ttp://ideone.com/FkfAVK
0539片山博文MZパンク ◆0lBZNi.Q7evd
2013/02/13(水) 21:32:27.13ASCII文字のみなら文字列バッファとmemmoveを使えばできると思われ。
日本語が含まれるなら半角ズレの処理が必要。
0540529
2013/02/13(水) 21:41:12.88に感謝する。
0541デフォルトの名無しさん
2013/02/13(水) 21:47:03.49という気はする
0542デフォルトの名無しさん
2013/02/13(水) 21:49:52.39ttp://ideone.com/sGZYZP
0543542
2013/02/13(水) 21:50:46.63> char *s = "Hello";
> char t[11] = "**********";
見てなかった
0544片山博文MZパンク ◆0lBZNi.Q7evd
2013/02/13(水) 21:53:12.81char buf[11];int i,len = strlen(s);
for(i=0;i<len;i++){
strcpy(buf,t);strcpy(buf,s+i);puts(buf);}
for(i=10-1;i>=0;i--){
strcpy(buf,t);
if(10-i>len)strcpy(buf+i,s);else memcpy(buf+i,s,10-i);
puts(buf);}
}
0545デフォルトの名無しさん
2013/02/13(水) 22:01:49.73#include <windows.h>
#pragma comment(lib, "kernel32")
int main()
{
char *s = "Hello";
char t[11] = "**********";
int i,j;
strncpy(t, s, strlen(s));
while (1) {
for (i=0; i<strlen(t); i++){
for (j=0; j<strlen(t); j++){
putchar(t[(i+j)%strlen(t)]);
}
putchar('\r');
Sleep(500);
}
}
return 0;
}
0546デフォルトの名無しさん
2013/02/13(水) 22:09:57.460547デフォルトの名無しさん
2013/02/13(水) 22:25:13.69http://ideone.com/jEPHbb
0548デフォルトの名無しさん
2013/02/13(水) 22:25:28.000549デフォルトの名無しさん
2013/02/13(水) 22:32:48.27ttp://ideone.com/NmsutK
0550529
2013/02/13(水) 22:51:31.080551デフォルトの名無しさん
2013/02/14(木) 16:06:39.96本に、if分のネスト数には限界があるとのことでした
また、else-ifの梯子は、
if(){
}else if(){
}else if(){
}else if(){
…
と書きますが、実際には
if(){
}else
if(){
}else
if(){
}else
if(){
…
とのことでした
つまり、else-ifでの分岐にも限界があるのでしょうか
0552デフォルトの名無しさん
2013/02/14(木) 16:09:06.170553デフォルトの名無しさん
2013/02/14(木) 16:32:41.282つの例ともにネストされてないんじゃないの?
JIS規格によると、15段までと規定されいているらしい。
0554デフォルトの名無しさん
2013/02/14(木) 16:43:12.09規格でどう捉えるのかは知らんけど
0555デフォルトの名無しさん
2013/02/14(木) 16:46:50.620556デフォルトの名無しさん
2013/02/14(木) 16:46:56.88} else {
if () {
} else {
if () {
} else {
if () …
}
}
}
0557デフォルトの名無しさん
2013/02/14(木) 16:48:11.64改行しただけで
0558デフォルトの名無しさん
2013/02/14(木) 16:54:59.940559デフォルトの名無しさん
2013/02/14(木) 17:17:50.91typedef struct {
int **a;
} b
0560デフォルトの名無しさん
2013/02/14(木) 17:19:46.51ttp://ideone.com/mWTotN
例えば make_code(2);を実行すると、以下のような test.c を生成。
-- test.c ------------------
int main(int argc, char *argv[])
{
if(argc == 1) {
return 1;
} else if(argc == 2) {
return 2;
}
return 0;
}
----------------------------
system(); で test.c をコンパイルするのを、else-ifの数を増やして挟みうちして、
コンパイルが成功/失敗するelse-ifの数を表示して終了する。
現在131072個をコンパイル中だが、CeleronM 1.86MHzでは結果が出るまで かなり時間かかりそう。。
0561デフォルトの名無しさん
2013/02/14(木) 17:21:05.81typedef struct {
int **a;
} b;
func()
{
b data;
data->a = NULL;
}
0562デフォルトの名無しさん
2013/02/14(木) 17:25:50.590563デフォルトの名無しさん
2013/02/14(木) 17:26:56.98おかしいだろ
data->aじゃなくてdata.aだろ
0565560
2013/02/14(木) 18:08:32.90ノートPCですが、コンセントがつながっているのにいきなり電源切れました。
電源ボタンを押してもウントモスントモいいませんでした。
CPUのファンの出口がかなり熱くなっていました。
PC買って6年くらいだと思うけど初めての現象。
コンセント抜いて少し時間おいたら普通に起動出来たけど、
#############################################
# #
# >>560のプログラムは危険かも知れません!! #
# #
#############################################
131072個のif-elseを Debian で gcc でコンパイルしていただけなのに。。
0566デフォルトの名無しさん
2013/02/14(木) 18:49:13.660567デフォルトの名無しさん
2013/02/14(木) 18:53:14.57*の数は何回アドレスを辿れるかってことでしかない
0568デフォルトの名無しさん
2013/02/14(木) 19:02:32.320569デフォルトの名無しさん
2013/02/14(木) 19:03:15.58> 131072個のif-elseを
1572864とか平気で通ってる, それ以上になるとスワップが足りないらしい
0570デフォルトの名無しさん
2013/02/14(木) 19:08:05.540571560
2013/02/14(木) 19:18:18.50試して頂いて感謝です。
if-else 1572864個で平気ですか。
私のPC(Dynabook AX53C, CeleronM 1.86MHz, Mem 1.0GB, Debian 7, gcc 4.7.2)
が熱暴走したのかな。。
0573デフォルトの名無しさん
2013/02/14(木) 19:24:03.680574デフォルトの名無しさん
2013/02/14(木) 20:25:18.20吹いたw
0575デフォルトの名無しさん
2013/02/14(木) 21:05:39.210576デフォルトの名無しさん
2013/02/14(木) 22:49:23.55PCは落ちないけど3022x個近辺でSegmentation faultが出る。
30227個, 30229個, 30225個と、安定しない。
0577デフォルトの名無しさん
2013/02/14(木) 23:21:33.50VC++だとコンパイラが上限設定してたと思う
最近のは知らんが
0578デフォルトの名無しさん
2013/02/14(木) 23:40:03.07そのときはブルースクリーンでPC落ちた。今やるとどうなるかは知らない。
0579デフォルトの名無しさん
2013/02/15(金) 00:00:49.20この場合はいいコンパイラだと思ってしまうな
0580デフォルトの名無しさん
2013/02/15(金) 03:29:51.35if(1)
if(2)
if(3)
printf("3\n");
みたいな感じで、elseはなし。
VC++8.0.50727だと124段目でネスト深すぎのエラー終了。
Ideon-Cだと8000でも通った(8200位で文字数制限なのかソースが途中で切れて書式エラー)。
そういえばIdeon-C++で試してないけど、まぁ似た様な感じだろうな。
0581デフォルトの名無しさん
2013/02/15(金) 05:38:02.310582デフォルトの名無しさん
2013/02/15(金) 08:06:14.110583デフォルトの名無しさん
2013/02/15(金) 08:59:06.04使えるけど
$ gcc -dumpmachine
i686-pc-cygwin
$ gcc --version
gcc (GCC) 4.5.3
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
これで↓が普通にコンパイルできて動く
#include <stdio.h>
int main(void) {
long long val = 12345;
printf("%lld\n", val);
return 0;
}
0584デフォルトの名無しさん
2013/02/15(金) 11:08:13.950585デフォルトの名無しさん
2013/02/15(金) 11:30:00.180586デフォルトの名無しさん
2013/02/15(金) 11:59:35.64だと。
http://pastebin.com/GPwnb1HC
ISO/IEC 9899:1999 (E) 5.2.4.1 Translation limits
1023 case labels for a switch statement (excluding those for any nested switch statements)
0587デフォルトの名無しさん
2013/02/15(金) 16:37:19.91>>560をswitchにして
int main(int argc, char *argv[])
{
switch(argc) {
case 1:return 1;
……
case 123:return 123;
default:break;
}
return 0;
}
みたいなのを生成→gccコンパイルを試したら524288個くらいは出来ました。
ttp://ideone.com/YjokNL
それ以上は当方のスワップが足りなくなったのでやめましたが、それまで>>565みたいに
(ノートなのに)いきなり電源が落ちることはありませんでした。
0588デフォルトの名無しさん
2013/02/16(土) 12:53:13.67http://anago.2ch.net/test/read.cgi/bizplus/1360979117/
0589デフォルトの名無しさん
2013/02/16(土) 15:00:27.01BOOL wndcl(HINSTANCE); //プロトタイプ宣言
……
if(wndcl(hInst)==FALSE)return 0; //関数の呼び出し
……
関数の中身
if(RegisterClass(&wnc)==NULL)return FALSE;
return TRUE;}で動くのですが一応あってるのでしょうか?
サイトや参考書を見てもどれもATOM型という型を使っていて
ATOM型はウィンドウクラスを登録するための型と仰ってるサイトもあって不安です。
ATOM型はResisterClassの成否を戻り値にできるためにウィンドウクラスに使われていると考えていいのですか?
調べてみるとATOM型はWORD型だったりして、なら素直にWORD型やint型でもいいんじゃないかと思ってもうわからないです
0590デフォルトの名無しさん
2013/02/16(土) 22:10:37.97ソースに書かれた型が全部WORD型だったら、今扱ってる数値がアトムなのかウィンドウハンドルなのかファイルハンドルなのかインスタンスハンドルなのか
メニューハンドルなのかアイコンハンドルなのかビットマップハンドルなのかカーソルハンドルなのかデバイスコンテキストハンドルなのかモジュールハンドル
なのか、はたまたハンドルではなくIDなのかが一見して判らなくなるだろ
型の実装が被るのが気になるなら、
#define STRICT
#include <windows.h>
とかしておけば?
0591デフォルトの名無しさん
2013/02/16(土) 22:29:07.06異なるウィンドウクラスは必ず異なるアトムを持つ
アトムは0にはならないので、無効なアトムやエラーを表現するのに0が使える
アトムの型をATOMとしてるのは
アトムだと分かりやすくするためなので
アトムは素直にATOM型で扱おう
0592デフォルトの名無しさん
2013/02/16(土) 23:15:51.940593デフォルトの名無しさん
2013/02/16(土) 23:57:58.35ドキュメントにもエラー時は0を返すと書いてあるので
色んな意味で0と比較すべし
0594589
2013/02/17(日) 00:26:20.18ありがとうございます、ATOM型の用途が少しずつ見えてきました
異なるウィンドウハンドルを持つことが出来るということは
多重起動の判定なんかに使えると考えてもいいのでしょうか?
となるとBOOL型で関数を作るよりATOM型で関数を作るほうが色々と便利そうですね
>>592 >>593
NULLは0でdefineされてると聞いたのでNULLと0とFALSEを特に考えずに分けないで使ってました
きちんとポインタのみNULLを使うように心がけたいと思います
0595デフォルトの名無しさん
2013/02/17(日) 00:30:21.52C99 では処理系依存だったはず
C++ も最新の仕様では処理系依存になってたはず
実際ポインタに対してしか使えないよう
特殊な処理系独自の定義になってる事もある
0596デフォルトの名無しさん
2013/02/17(日) 01:52:46.230597デフォルトの名無しさん
2013/02/17(日) 01:56:44.16プリプロセッサーは NULLを0に戻し、
その0はコンパイラによってポインターとして解釈さ れる。
それでも特に関数の引数ではNULLに(0にも必要であるのと同じ で)明示的なキャストが必要かもしれない。
C FAQ 5章 ヌルポインター
www.kouno.jp/home/c_faq/c5.html
0598デフォルトの名無しさん
2013/02/17(日) 08:32:47.53>関数の引数ではNULLに(0にも必要であるのと同じ で)明示的なキャストが必要
これは
・プロトタイプを記述せずに前方参照をおこなった場合、
・かりにプロトタイプを記述するか前方参照が発生しないようにしても、可変長引数を呼び出す場合
ですね。後者は昔は (char *)0 とかを頻繁にみましたね。
0599デフォルトの名無しさん
2013/02/17(日) 10:27:54.51言語的に0です。
0を入れておけば、アーキテクチャ的にNULLが0でなくても
勝手にアーキテクチャ上のNULLになったオブジェクトが生成されます。
0600デフォルトの名無しさん
2013/02/17(日) 11:31:32.943,4行目は正しいが、
「言語的に0です。」なんてことは全く言ってないな。
0601デフォルトの名無しさん
2013/02/17(日) 12:42:38.776.3.2.3 Pointers
3 An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant.55)
If a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal to a pointer to any object or function.
4 Conversion of a null pointer to another pointer type yields a null pointer of that type. Any two null pointers shall compare equal.
7.17 Common de?nitions <stddef.h>
3 The macros are
NULL
which expands to an implementation-de?ned null pointer constant
0602デフォルトの名無しさん
2013/02/17(日) 12:48:17.800603デフォルトの名無しさん
2013/02/17(日) 13:02:00.59質問には答えなくていいです
0604デフォルトの名無しさん
2013/02/17(日) 13:09:27.21指摘が的はずれ
0605デフォルトの名無しさん
2013/02/17(日) 13:58:53.54どう解決したのか書くのが礼儀じゃないか?
0606デフォルトの名無しさん
2013/02/17(日) 16:10:13.810607デフォルトの名無しさん
2013/02/17(日) 21:26:20.53どんだけ的はずれなのか、訳してあげるからよく考えてみな。
6.3.2.3 Pointers
3
ポインタにおいて値が零の整数表現、つまりvoid *にキャストされた零表現をヌルポインタ定数と呼ぶ。
ヌルポインタ表現がポインタ型に変換されたとき、この結果、すなわちヌルポインタは他のどのようなオブジェクトや関数へのポインタとも異なることが保証される。
4
ヌルポインタを別のポインタ型に変換した結果は、そのポインタ型におけるヌルポインタとなる。(各ポインタ型における)ヌルポインタはすべて等しくなければならない。
7.17.3
マクロ NULL は処理系規定のヌルポインタ定数に展開される。
0608デフォルトの名無しさん
2013/02/17(日) 22:02:04.320609デフォルトの名無しさん
2013/02/17(日) 22:08:16.61#define NULL 0
か
#define NULL ((void *)0)
のいずれか
コンパイラメーカーの都合できめてもよい
0610デフォルトの名無しさん
2013/02/17(日) 22:15:47.04アホ
0611デフォルトの名無しさん
2013/02/17(日) 23:04:01.700612デフォルトの名無しさん
2013/02/17(日) 23:23:28.60ヌルポインタは言語的に0で表現されるが、
NULLの定義は0とは限らない
あまり適当な事は言うな
0613デフォルトの名無しさん
2013/02/17(日) 23:24:47.010614デフォルトの名無しさん
2013/02/17(日) 23:25:49.230615デフォルトの名無しさん
2013/02/17(日) 23:26:10.390616デフォルトの名無しさん
2013/02/17(日) 23:30:27.64これの後さんざん荒れたのを見た記憶があるけど何処だったっけ
0617デフォルトの名無しさん
2013/02/18(月) 07:12:06.54何代か前のこのスレ、free(0)の話がえんえんと、QZが負けた
0618デフォルトの名無しさん
2013/02/18(月) 09:31:44.29char *a;
int b;
} aaa;
を初期化する方法として
memset(&aaa, 0, sizeof(aaa));
が良く使われるが、環境依存なので避けなければいけない。
0619デフォルトの名無しさん
2013/02/18(月) 09:39:14.95おぅっ?
いきなり何の燃料やねん?
0620デフォルトの名無しさん
2013/02/18(月) 09:41:08.72さすがに書籍のコードをそのまま載せるわけにはいかないので、バグ(?)を再現できる短いソースコードを作りました。
#include <stdio.h>
int main(void){
char c;
scanf("%x%*c",&c);
printf("0x%X\n",c);
}
ここで表示されるのが0x80でなくで0xFFFFFF80となるのはなぜなのでしょう?
ご教示ください。
0621デフォルトの名無しさん
2013/02/18(月) 09:44:30.58#include <stdio.h>
int main(void){
char c;
sscanf("0x80\n", "%x%*c",&c);
printf("0x%X\n",c);
}
失礼しました。。。
0622デフォルトの名無しさん
2013/02/18(月) 09:49:21.61%x使うときはunsigned intでないとだめだよ。
0623デフォルトの名無しさん
2013/02/18(月) 10:04:38.27この現象はprintf関数が勝手に変数cをint型だと解釈して、cの先の3バイトに格納された
値も読んで表示しちゃったって解釈でいいんですかね?
0624デフォルトの名無しさん
2013/02/18(月) 10:10:47.04#include <stdio.h>
int main(void){
char c[2];
c[1] = 0xab;
sscanf("0x80\n", "%x%*c",&c[0]);
printf("0x%X\n",c[0]);
}
でも動作は同じになるから>>623の解釈は間違い・・・?
0625デフォルトの名無しさん
2013/02/18(月) 10:16:38.59おそらく
sscanfの時点で本来unsigned intを取るべきところに
signed charを使っているので0x80が-8と解釈されて
リトルエンディアンでは
80 FF FF FF
が代入されているんだろう。
0626デフォルトの名無しさん
2013/02/18(月) 10:21:32.12なんとなくわかった気がします。
0627デフォルトの名無しさん
2013/02/18(月) 10:27:20.43俺の環境だと、
sscanfで
80 00 00 00
が入って、
printfで
80が-8と解釈されてunsigned intに変換された結果
FFFFFF80
と表示されるようだ。
0628デフォルトの名無しさん
2013/02/18(月) 10:28:52.25下手すりゃメモリ破壊ってことですか?
0629デフォルトの名無しさん
2013/02/18(月) 11:24:41.450630デフォルトの名無しさん
2013/02/18(月) 12:15:05.86cのアドレスにintで読み込んでメモリ壊してるのはあってるけど、
> sscanfの時点で本来unsigned intを取るべきところに
> signed charを使っているので0x80が-8と解釈されて
sscanfは渡されたアドレスがunsigned intなのかsigned charなのかわかるわけがない。
従って、
> signed charを使っているので0x80が-8と解釈されて
はウソ。
0xFFFFFF80となるのは
> printf("0x%X\n",c[0]);
c[0]が -128(char)から-128(int)に格上げさるから。
0631デフォルトの名無しさん
2013/02/18(月) 12:35:34.260632デフォルトの名無しさん
2013/02/18(月) 12:45:03.670633デフォルトの名無しさん
2013/02/18(月) 12:54:51.42サインがされてないってことです
0634デフォルトの名無しさん
2013/02/18(月) 13:10:35.470635デフォルトの名無しさん
2013/02/18(月) 13:24:57.60このキャストは仕様で規定されてますか?
0636デフォルトの名無しさん
2013/02/18(月) 13:30:35.410637デフォルトの名無しさん
2013/02/18(月) 13:47:52.83signed -> 最上位ビットを符号ビットとして 扱 う 。
unsigned -> 最上位ビットを符号ビットとして 扱 わ な い 。
0X80 =( 1 0 0 0 0 0 0 0 )2
↑
最上位ビット
0638デフォルトの名無しさん
2013/02/18(月) 13:50:36.938ビット時
1 0 0 0 0 0 0 0
↑
最上位ビット
0639デフォルトの名無しさん
2013/02/18(月) 14:08:06.25> このキャストは仕様で規定されてますか?
キャストとは呼んでいない。
JISが手元にないけど「格上げ」を使っていたはず、原文だとpromotion。
0640デフォルトの名無しさん
2013/02/18(月) 15:01:19.390641デフォルトの名無しさん
2013/02/18(月) 15:07:59.750642デフォルトの名無しさん
2013/02/18(月) 15:24:59.41なるほどすごい分かりやすいです
ありがとうございます
0643デフォルトの名無しさん
2013/02/18(月) 15:53:54.530644デフォルトの名無しさん
2013/02/18(月) 16:54:22.64重ね重ねお礼申し上げます
0645デフォルトの名無しさん
2013/02/18(月) 17:09:50.990646620
2013/02/18(月) 17:44:03.66みなさんからのアドバイスをもとにいろいろググってみたところ、
暗黙の型変換やら符号拡張やらまだまだ学ばなければならないことがたくさん見つかりました。
謹んで修行いたします。
そして、こんなバグやらメモリ破壊やらを放置して平然とサンプルコードとして載せている
この参考書の使い方も、ゆっくり考えたいと思います。
なんか誤字脱字も多いし。。。
0647デフォルトの名無しさん
2013/02/18(月) 17:57:36.870648デフォルトの名無しさん
2013/02/18(月) 18:00:38.42これだから資格をバカにするやつらは困る
0649デフォルトの名無しさん
2013/02/18(月) 18:02:07.260650デフォルトの名無しさん
2013/02/18(月) 22:10:33.37たとえば、int i = 1, char c = 1 と ~0 との & とか。
0651デフォルトの名無しさん
2013/02/18(月) 22:13:33.89汎整数昇格でググれ
可変長引数は自動的に inategral promotion を適用されるのです。
0653デフォルトの名無しさん
2013/02/19(火) 10:03:15.13ファイルの位置も確認しましたし、位置アドレスをテキストコピーして貼り付けても、管理者として開いても駄目でした
作ろうとしたもの:本によればCコンパイラを使用できるvcバッチ(10日で覚えるC言語入門教室)
使っているもの:Visual Studio2010
OS:Windows7
メーカー:emachines
備考:家族と共用でアカウント分けているから指定しないといけない?
よろしくお願いします
0654デフォルトの名無しさん
2013/02/19(火) 10:08:19.88その参考書の始めの方に環境設定とか実行方法の節ないのか? ないなら捨てろ。
0655デフォルトの名無しさん
2013/02/19(火) 10:08:28.190656デフォルトの名無しさん
2013/02/19(火) 10:10:32.260657653
2013/02/19(火) 10:28:18.60試しにvcvars32とコンパイラを開いてみたら必要なdllが入っていないようでした
後でこの参考書は窓から投げ捨てよう
0658デフォルトの名無しさん
2013/02/19(火) 11:15:17.77うまくいかないのはお前の読込み不足。
0659デフォルトの名無しさん
2013/02/19(火) 11:21:27.090660デフォルトの名無しさん
2013/02/19(火) 12:34:01.600661デフォルトの名無しさん
2013/02/19(火) 16:17:06.850662デフォルトの名無しさん
2013/02/19(火) 17:24:07.320663デフォルトの名無しさん
2013/02/19(火) 17:25:51.400664デフォルトの名無しさん
2013/02/19(火) 17:40:57.73マロック
0665デフォルトの名無しさん
2013/02/19(火) 17:43:23.750666デフォルトの名無しさん
2013/02/19(火) 17:44:07.110667デフォルトの名無しさん
2013/02/19(火) 17:44:09.42ぶひひ
0668デフォルトの名無しさん
2013/02/19(火) 19:46:03.27よりにもよって2chなんかで聞くハメになろうとは
従ってその本は焚書
まるでお前の役に立ってないからだ
0669デフォルトの名無しさん
2013/02/19(火) 20:05:37.74ますますビットフィールドは洋ナシ
0670デフォルトの名無しさん
2013/02/19(火) 20:13:00.240671デフォルトの名無しさん
2013/02/19(火) 20:17:34.66これへのレスだろきっと
0672デフォルトの名無しさん
2013/02/19(火) 20:23:24.490673デフォルトの名無しさん
2013/02/19(火) 21:08:57.69まだ、60ページくらいしかよんでないです。
結局皆さんは、Cで何を作ってるんですか?
0674デフォルトの名無しさん
2013/02/19(火) 21:09:34.280675デフォルトの名無しさん
2013/02/19(火) 21:18:11.61Cで便利なコマンドをつくりましょう
0676デフォルトの名無しさん
2013/02/19(火) 21:18:31.130677デフォルトの名無しさん
2013/02/19(火) 21:28:17.32何を作ったかすぐ忘れるくらいに
作り飛ばした
おもったことをパッとやる
自分用のならその程度
0678デフォルトの名無しさん
2013/02/19(火) 21:35:24.30俺もそれ読んでるわ
まあ俺ゲーム作りたくて基本を学んでる
最終的にはC#でVITAゲーム作りたいんだけどね
0679デフォルトの名無しさん
2013/02/19(火) 22:37:04.77他人のだともし削除したくないのが消されるかもしれないし
0680デフォルトの名無しさん
2013/02/19(火) 22:40:19.700681653 657
2013/02/19(火) 23:12:45.52テキストの誤植で見本に\抜けてた
時間と手間返せ
0682デフォルトの名無しさん
2013/02/19(火) 23:15:57.71関数わからない人用にゴミソースですけど
0683デフォルトの名無しさん
2013/02/19(火) 23:34:10.40という絶対的な真理を学んだようだな
こりゃすばらしい
それだけでその本の元はとれた
0684デフォルトの名無しさん
2013/02/20(水) 00:01:04.35正直あり得ない
常に誤植を疑うくらいでないと
(でも大抵は自分のミスなんだけどねw)
0685デフォルトの名無しさん
2013/02/20(水) 00:02:26.52正直あり得ない
常に誤植を疑うくらいでないと
(でも大抵は自分のミスなんだけどねw)
0686デフォルトの名無しさん
2013/02/20(水) 00:05:34.69正直あり得ない
常に誤植を疑うくらいでないと
(でも大抵は自分のミスなんだけどねw)
0687デフォルトの名無しさん
2013/02/20(水) 00:21:13.66正直あり得ない
常に誤植を疑うくらいでないと
(でも大抵は自分のミスなんだけどねw)
0688デフォルトの名無しさん
2013/02/20(水) 03:24:54.59正直あり得ない
常に誤植を疑うくらいでないと
(でも大抵は自分のミスなんだけどねw)
0689デフォルトの名無しさん
2013/02/20(水) 12:47:20.840690デフォルトの名無しさん
2013/02/20(水) 13:10:32.830691デフォルトの名無しさん
2013/02/20(水) 13:12:30.580692デフォルトの名無しさん
2013/02/20(水) 13:17:55.520693デフォルトの名無しさん
2013/02/20(水) 19:01:59.15自分で何も考えてない証拠
本を読むことは、他人の考えた過程を反復的にたどることにすぎない。
実際、本を読む際にはものを考える苦労はほとんどない。
ショウペンハウエル
0695デフォルトの名無しさん
2013/02/21(木) 02:24:53.580696デフォルトの名無しさん
2013/02/21(木) 04:37:46.80全く理解できない本を読んでも何も身に付かない
Qにとって都合の良い言葉を必死に探してきただけだろう
0697デフォルトの名無しさん
2013/02/21(木) 05:54:56.98その書き込みがショウペンハウエルに考えてもらって何も考えてないってことを証明してるよなw
0698デフォルトの名無しさん
2013/02/21(木) 07:26:02.89自己言及のパラドクスがえしにしては、いまいち
0699デフォルトの名無しさん
2013/02/21(木) 11:24:14.15オヌヌメ
0700デフォルトの名無しさん
2013/02/21(木) 13:43:59.24パラドクスでもなんでもねーよw
0701デフォルトの名無しさん
2013/02/21(木) 16:07:23.06メイン関数内に
a=1;
b=1;
と代入の処理を2件書いた場合と
メイン関数内に
a();←中身はa=1;を行う関数
b();←中身はb=1;を行う関数
という前者の処理を外部のサブ関数に書いた場合
飛ぶ処理分だけ後者の方が遅いですか??
頻繁にループするような処理の場合は
出来るだけループ中に別の関数に飛ばさずに
全部ベタ書きした方が処理速度あがるんですかね…。
もちろん関数使った方が綺麗ですが。
0702デフォルトの名無しさん
2013/02/21(木) 16:09:16.67関数で作って実行してみる
その部分で時間がかかっているようなら inline 修飾する
0703デフォルトの名無しさん
2013/02/21(木) 16:28:01.160704デフォルトの名無しさん
2013/02/21(木) 16:31:38.91とりあえず作ってやってみます
0705デフォルトの名無しさん
2013/02/21(木) 20:13:31.000706デフォルトの名無しさん
2013/02/22(金) 00:01:07.690707デフォルトの名無しさん
2013/02/22(金) 00:08:22.090708デフォルトの名無しさん
2013/02/22(金) 00:11:10.43まともなコンパイラなら、最適化でインライン展開してくれる。
0709デフォルトの名無しさん
2013/02/22(金) 00:23:32.74規格表にもない事を言われてもねえ
0710デフォルトの名無しさん
2013/02/22(金) 00:26:50.290711デフォルトの名無しさん
2013/02/22(金) 00:56:00.26処理系依存の話は処理系依存スレへ
0712デフォルトの名無しさん
2013/02/22(金) 01:12:57.120713デフォルトの名無しさん
2013/02/22(金) 02:55:50.95main(){
avc * pa;
}
なんでこれでコンパイラ警告でないの?
0714デフォルトの名無しさん
2013/02/22(金) 03:04:12.53struct avcst の中身がわからなくても pa の確保サイズはわかるから
0715デフォルトの名無しさん
2013/02/22(金) 07:40:06.06規格票な
0716デフォルトの名無しさん
2013/02/22(金) 07:54:35.82それだけだとエラーも警告も出ないけど、
pa = (void *)0; //ここまではOK
pa++; //ここでエラー
になる。サイズが未定義の構造体へのポインタは
演算することができない。
0717デフォルトの名無しさん
2013/02/22(金) 09:36:34.180718デフォルトの名無しさん
2013/02/22(金) 12:26:29.400719デフォルトの名無しさん
2013/02/22(金) 20:21:19.83吐瀉物の泉とデスマーチの最後尾になる
0720デフォルトの名無しさん
2013/02/23(土) 14:44:33.850721デフォルトの名無しさん
2013/02/23(土) 14:57:06.380722デフォルトの名無しさん
2013/02/23(土) 16:13:56.92そんな批判するなよ
0723デフォルトの名無しさん
2013/02/24(日) 03:31:06.30そんなお前は・・・グフッ・・・俺はもうダメだ・・・(ガクッ
うああああああああっ兄さあああああああああああんっっ!
何故だっ、どうしてお前は兄さんにこんな・・・ひっ酷いことをっ・・・
ゆ・・・許さねえええええええええええええええ!!
0724デフォルトの名無しさん
2013/02/24(日) 06:01:23.52なんで兄さんは死ぬ直前に気持ち悪い笑い声発してるの?
0725デフォルトの名無しさん
2013/02/24(日) 14:09:56.952倍も3倍も変わるのであれば書きなおそうと思ってるのですが・・・。
0726デフォルトの名無しさん
2013/02/24(日) 14:24:30.860727デフォルトの名無しさん
2013/02/24(日) 14:25:03.05ある意味 C より全然早いんだが > C#
さすがにページング効率とかキャッシュ効率を十分
考えてコーディングされてる奴には負ける
# ほとんど勝ち目がないのは並列計算が必要な所で
# 並列命令使いまくった FORTRAN
# C でも勝てない
# MS の FORTRAN は使ったことがないが…
0728デフォルトの名無しさん
2013/02/24(日) 15:25:46.060729デフォルトの名無しさん
2013/02/24(日) 17:34:28.14アルゴリズムの工夫>>>>>>>越えられない壁>>>>並列化>>>>>小手先の最適化>=言語
くらい
0730デフォルトの名無しさん
2013/02/24(日) 17:36:14.98明らかにC#は100倍くらい遅い
0731デフォルトの名無しさん
2013/02/24(日) 17:40:34.860732デフォルトの名無しさん
2013/02/24(日) 17:46:54.01結果的に最初からCで書いた方が早かったんじゃないかなんてことがしばしばあるけど
C#ではさすがにそこまではないな
0733デフォルトの名無しさん
2013/02/24(日) 17:50:19.070734デフォルトの名無しさん
2013/02/24(日) 18:42:00.870735デフォルトの名無しさん
2013/02/24(日) 20:09:35.270736デフォルトの名無しさん
2013/02/24(日) 20:21:00.840737デフォルトの名無しさん
2013/02/24(日) 23:13:41.93C++はCと別言語
0738デフォルトの名無しさん
2013/02/24(日) 23:15:13.120739デフォルトの名無しさん
2013/02/24(日) 23:23:16.53そうだけどC#から呼ぶためにインターフェイス部分はCにしてるよ。
0740デフォルトの名無しさん
2013/02/24(日) 23:29:40.290741デフォルトの名無しさん
2013/02/24(日) 23:40:26.12case 'g':
return x;
case 's':
x=v;
}
これを三項演算子で書くとどうなりますか?
0742デフォルトの名無しさん
2013/02/24(日) 23:41:44.13訳:わたくしには分かりません
0743デフォルトの名無しさん
2013/02/24(日) 23:46:00.580744デフォルトの名無しさん
2013/02/24(日) 23:48:08.370745デフォルトの名無しさん
2013/02/24(日) 23:51:44.540746デフォルトの名無しさん
2013/02/25(月) 00:02:15.44冗長になるけど機能としては一緒だろ
0747デフォルトの名無しさん
2013/02/25(月) 00:59:19.670748デフォルトの名無しさん
2013/02/25(月) 06:20:49.80http://toro.2ch.net/test/read.cgi/tech/1313183984/594
0749デフォルトの名無しさん
2013/02/25(月) 11:13:42.68printf("%s\n", flag ? "true" : "false");
0750デフォルトの名無しさん
2013/02/25(月) 12:20:12.220751デフォルトの名無しさん
2013/02/25(月) 12:29:05.840752デフォルトの名無しさん
2013/02/25(月) 12:55:21.87if (・・・)
n = 式1;
else
n = 式2;
式1と式2がほぼ同じで微妙に違うときとか条件演算子でまとめたくなるな。
まとめるのもやりすぎるとゴチャっとなるから悩むけど。
0753デフォルトの名無しさん
2013/02/25(月) 13:01:32.73だよな…
こう書くべきだな
printf("%c\n", (!flag)["TF"]);
0754デフォルトの名無しさん
2013/02/25(月) 13:32:18.41いや、寧ろprintf("%c\n", (!!flag)["FT"]);だろ。
ってのはさておき、"FT"[!!flag]だな。
0755デフォルトの名無しさん
2013/02/25(月) 13:37:18.270756デフォルトの名無しさん
2013/02/25(月) 13:45:03.21if (flag) {
printf("true");
} else {
printf("false");
}
0757デフォルトの名無しさん
2013/02/25(月) 15:10:17.19printf(flag ? "true" : "false");
派はいないのか?w
0758デフォルトの名無しさん
2013/02/25(月) 15:13:52.23コンパイラが荒れ狂う可能性が高くなるからねぇw
0759デフォルトの名無しさん
2013/02/25(月) 15:18:37.270760デフォルトの名無しさん
2013/02/25(月) 15:34:05.52printf の第一引数に非リテラルな文字列渡し
たまたま渡した文字列中にフォーマット制御の意図ではない % が居た
こんなんしか思い浮かばん
0761デフォルトの名無しさん
2013/02/25(月) 15:58:02.03>>758は低脳っぽいっからこの事を言っているのではないと思うが。
0762デフォルトの名無しさん
2013/02/25(月) 18:16:02.39http://ideone.com/0wPHZl
0763デフォルトの名無しさん
2013/02/25(月) 22:06:13.29char a[10];
scanf("%s", a);
としたとき、10こよりたくさん入力されてしまったら困るので、
do whileとstrlen(a)で10以上入力されたとき再入力させるようにしたのですが、
10こよりたくさん入力されたら、結局他の変数の領域までつぶしちゃうようなのです。
どうすれば回避できますか?
なんか見当違いならごめんなさい。
0764763
2013/02/25(月) 22:09:26.100765デフォルトの名無しさん
2013/02/25(月) 22:19:34.22%9s
0766デフォルトの名無しさん
2013/02/25(月) 22:24:50.220767デフォルトの名無しさん
2013/02/25(月) 22:26:45.600768デフォルトの名無しさん
2013/02/25(月) 22:38:38.16char a[10];
int len = 0;
int idx = 0;
int c;
while((c = getchar()) != EOF)
{
len++;
if(len < 10)
{
if(c == '\n')
{
a[idx] = '\0';
break;
}
else
{
a[idx++] = c;
}
}
else
{
if(c == '\n')
{
len = idx = 0;
continue;
}
}
}
return 0;
}
0770デフォルトの名無しさん
2013/02/25(月) 22:44:15.56かっこいいソースコードよろしく
0771763
2013/02/25(月) 22:46:35.20試してみましたが、
どうやら次のscanfに、はみ出た分を渡してしまってるような・・・。
>>766
10といったのは例えでそこはどっちでもいいです。
説明不足済みません。
>>768
試してみます
0772デフォルトの名無しさん
2013/02/25(月) 22:57:29.27ホンモノはvramに出力させる
0773デフォルトの名無しさん
2013/02/25(月) 22:58:18.90ソースコードはよ
0774デフォルトの名無しさん
2013/02/25(月) 23:02:31.340775デフォルトの名無しさん
2013/02/25(月) 23:10:01.120776デフォルトの名無しさん
2013/02/25(月) 23:18:54.11次のscanfで読み取られてしまいます。
で、落ち着いてhttp://ja.wikipedia.org/wiki/Scanfをみたら
char a[10];
scanf("%9s%*[^\n]", a);
getchar();
でいけました。
みなさんありがとう。
0777デフォルトの名無しさん
2013/02/26(火) 05:00:19.66>>769は他のスレでも質問者に嘘を教えたりスレ違いの話題を投下して喜んでるマジモンの荒らしだから放置よろ
我慢できないならNG追加、質問者も混乱を避けるためにNG追加よろ
0778デフォルトの名無しさん
2013/02/26(火) 09:51:34.320779デフォルトの名無しさん
2013/02/26(火) 11:14:19.780780デフォルトの名無しさん
2013/02/26(火) 11:15:52.630781デフォルトの名無しさん
2013/02/26(火) 11:18:45.090782デフォルトの名無しさん
2013/02/26(火) 11:56:39.37荒らし方が巧妙になってきてるから、
多少の注意喚起はしといたほうがいい。
0783デフォルトの名無しさん
2013/02/26(火) 11:58:34.400784デフォルトの名無しさん
2013/02/26(火) 12:05:43.790785デフォルトの名無しさん
2013/02/26(火) 12:09:35.36そういうことにしたら満足したか?
0786デフォルトの名無しさん
2013/02/26(火) 13:57:43.960787デフォルトの名無しさん
2013/02/26(火) 14:40:03.66ほんとそれ思う
顔本と連携させてそういうのできないのかね
0788デフォルトの名無しさん
2013/02/26(火) 15:07:58.140789デフォルトの名無しさん
2013/02/26(火) 15:17:50.97実名晒しの脅しはゴミ山の十八番なんだから。
それを奪ったらかわいそうだよ。
0790デフォルトの名無しさん
2013/02/26(火) 21:31:06.04ガチでなんにも分かんないから一から始められるやつが欲しいんだけど
0791デフォルトの名無しさん
2013/02/26(火) 21:31:58.940792デフォルトの名無しさん
2013/02/26(火) 23:37:18.42『Cプログラミング入門以前』
から始めるといいかと思います
0793デフォルトの名無しさん
2013/02/27(水) 00:05:35.810794デフォルトの名無しさん
2013/02/27(水) 00:55:56.87JavaScriptからはどうか。
実効環境はブラウザ。
書いたテキストの拡張子をいろいろといじるだけ。
まずプログラミングのなんたるかのさわりを楽しみたいなら
実行環境がコストゼロで与えられているJavaScriptではどうだろう
入門書を探すのは、同時に、プログラミングを楽しみたい・使いたいという
隠れた欲求がある。
それを満たしてくれるのは備え付けのブラウザくらいだ
0795デフォルトの名無しさん
2013/02/27(水) 01:01:52.170796デフォルトの名無しさん
2013/02/27(水) 05:13:52.020797デフォルトの名無しさん
2013/02/27(水) 08:49:11.650798デフォルトの名無しさん
2013/02/27(水) 08:54:43.990799デフォルトの名無しさん
2013/02/27(水) 09:05:02.340800デフォルトの名無しさん
2013/02/27(水) 09:39:32.51GUI や IDE はその次だな。
0801デフォルトの名無しさん
2013/02/27(水) 19:10:01.23フォントもカッコイイと思う
0802デフォルトの名無しさん
2013/02/27(水) 19:22:07.97ポインタ分からないとか、参考書一冊読んだけど何も出来る気がしない、という未来が見える
0803デフォルトの名無しさん
2013/02/27(水) 20:03:40.03Cどころか様々なことができる
もしかするとLINUX/UNIX環境への悟りが発生して
離れられなくなるかも
0804デフォルトの名無しさん
2013/02/27(水) 21:35:33.01今更言語の勉強なんかしてどうするのよ、それより英語の勉強しろ
0805デフォルトの名無しさん
2013/02/27(水) 21:36:15.710806デフォルトの名無しさん
2013/02/27(水) 21:38:58.27そうでもない。そうでもないから新しいフリーソフトが公開されるんだよ
0807デフォルトの名無しさん
2013/02/27(水) 21:40:23.920808デフォルトの名無しさん
2013/02/27(水) 22:06:39.30>今のサービス無しで一体どうやっていたのか思い出せない、といった事がしばしば起こる。
>既存のものを根底から変えることは仲々想像し難く、また現実的な問題があって一挙に変化が起こるわけではない。
>それでも、今までの方法が余りに融通が利かなすぎる場合には、少しの改善でも大きな喜びを持って迎えられるのである。
0809デフォルトの名無しさん
2013/02/27(水) 22:10:31.18ShowWindow関数を使わないと表示されないのですが何が悪さしているのでしょうか?
一応ShowWindowを入れれば目に見えるようになるんですが
#include "resource.h"
#include<windows.h>
DIG DIALOG 10 , 10 , 150 , 150
FONT 12, "MS ゴシック"
STYLE WS_VISIBLE | WS_POPUPWINDOW
CAPTION "モードレスダイアログボックス"
BEGIN
DEFPUSHBUTTON "ok",IDOK,7,69,50,14
PUSHBUTTON "cancel",IDCANCEL,100,69,50,14
LTEXT"モードレスダイアログボックスです",IDC_STATIC,39,16,94,8
END
//リソースになります
switch(msg){
case WM_COMMAND:
switch(LOWORD(wp){
case IDM_DLG:
hDlg=CreateDialog(hInst ,TEXT("DIG"), hWnd , DialogProc);
//ShowWindow(hDlg,SW_SHOW);
break;}
break;
//ダイアログボックスの呼び出しになります
0810デフォルトの名無しさん
2013/02/27(水) 22:44:19.83win32APIの仕様です。
0811デフォルトの名無しさん
2013/02/28(木) 09:15:14.95gccの最適化のダメっぷりはよく知ってるんだけど、ISO C標準でないってどういう意味?
0812デフォルトの名無しさん
2013/02/28(木) 09:57:29.80お前が意味不明だよ
何のことだかさっぱり分からん
0813デフォルトの名無しさん
2013/02/28(木) 12:21:01.45gccつーても化石の2.xから最新の4.7や4.8まで色々あるけど
4.6や4.7の最適化のダメさってどういうところ?
0814デフォルトの名無しさん
2013/02/28(木) 17:02:41.66低能rubistが群がってさらにアホなことになってるだけじゃねーの
高尚な話題出してるつもりが
本人たちの気付かぬところで低空飛行してるだけだ
閉鎖集団になると
横から口出ししても厄介野郎と思われて
そいつらの本当のレヴェルの低さが露呈しない
危険だよ
大本営なみに危険だ
優秀で高尚だと凝り固まってるアホの集団が
本当におぞましい議論をそこらじゅうに拡散させようとしてる
0815デフォルトの名無しさん
2013/02/28(木) 18:52:20.86亀だけど、ゼロからなら技術評論社の『C言語スタートブック』って本がいいかも。
コンパイラもついてるし、コマンドプロンプトの使い方やパスの通し方も載ってる。
要するにパソコンの使い方さえある程度知っていればプログラミング環境は整うような本。
内容もわかりやすい。
ただ、情報量はあまり多くないから、いずれはほかの本を読まなきゃいけなくなる。
0816デフォルトの名無しさん
2013/03/01(金) 14:22:24.55そんなもんxhamsterとxvideosとtube8とその他諸々の
エロ動画収集を自動化するために決まってんだろ
0817デフォルトの名無しさん
2013/03/01(金) 14:24:36.250818デフォルトの名無しさん
2013/03/01(金) 16:36:28.48このサイトに
>※ 単にcharとした場合、符号つきか符号なしかは処理系に任されます。
ってあるけど省略したらsignedになるんじゃないの?
0819デフォルトの名無しさん
2013/03/01(金) 16:46:44.71省略した場合にunsignedになる処理系も認めると言うことです。
実際、コマンドラインオプションでsigned/unsignedを切り替えられる処理系もあります。
0820デフォルトの名無しさん
2013/03/01(金) 16:54:42.55そういうのあるんだ
始めて知った、ありがとう
0821デフォルトの名無しさん
2013/03/01(金) 17:47:04.900822デフォルトの名無しさん
2013/03/01(金) 17:53:28.380823デフォルトの名無しさん
2013/03/01(金) 19:31:45.44なんかアーキテクチャによってどっちが有利とかあるんだろうな。
0824デフォルトの名無しさん
2013/03/01(金) 20:05:53.80Microsoftのコンパイラなんだけど。
0825デフォルトの名無しさん
2013/03/01(金) 20:35:58.350826デフォルトの名無しさん
2013/03/01(金) 20:39:50.37入門スレで何をいきまいてんだか
0827デフォルトの名無しさん
2013/03/01(金) 22:50:38.68char* getChar() {
char *s;
s = "sss";
return s;
}
int main()
{ char *s = getChar();
0828デフォルトの名無しさん
2013/03/01(金) 22:54:12.870829デフォルトの名無しさん
2013/03/01(金) 22:55:47.250830デフォルトの名無しさん
2013/03/01(金) 22:56:07.290831デフォルトの名無しさん
2013/03/01(金) 23:22:30.58"sss"がどのセクションに置かれるか考えれば自明
0832827
2013/03/01(金) 23:23:07.11ポインタに入れているのに、配列としてアクセスしているから死んじゃうって事ですか?
>>829
getChar()の変数sはメモリから消えているはずですが、mainで安全な理由がわからないです。
文字列"sss"はヒープに取られているということなのでしょうか?
javaだとthis.globalString = "aa";というコードよく書きますが、
C言語でm_globalChar = "aa";は安全なんですか?
"aa"は関数を抜ければ消えちゃう気がするんですが
0833デフォルトの名無しさん
2013/03/01(金) 23:26:05.68君の側にずっといるから、安心して
0834デフォルトの名無しさん
2013/03/01(金) 23:27:56.39で規格のどこを読めばいいの?
0835デフォルトの名無しさん
2013/03/01(金) 23:30:50.37>ポインタに入れているのに、配列としてアクセスしているから死んじゃうって事ですか?
違う。main()/s がさしているのは "sss"、これは文字リテラルと呼ばれ、格納先は書き込み可能な場所とは限らない。読むだけならば問題がない。
>"aa"は関数を抜ければ消えちゃう
大丈夫、消えない。
0836デフォルトの名無しさん
2013/03/01(金) 23:44:03.250837デフォルトの名無しさん
2013/03/02(土) 00:04:00.240838832
2013/03/02(土) 00:29:17.77char* inputTest() {
char *s:
if (条件)
s = "a";
else
s = "b";
return s;
}
main() { char *s; s = inputTest();
この場合でもmainの変数sは安全なのでしょうか?
0839デフォルトの名無しさん
2013/03/02(土) 00:41:53.470840デフォルトの名無しさん
2013/03/02(土) 00:54:30.330841デフォルトの名無しさん
2013/03/02(土) 01:07:34.50多分、関数を抜けた後にローカル変数の領域(スタック)が消滅してしまう事を知ったから不安なのだろう。
inputTest();の char *s;のために用意された領域は、関数を抜けると確かに消える。
しかし、inputTest();内で s= で得られた値(リテラルのアドレス値)は、関数をの戻り値として
main();の char *s; が受け取っている。そして、それを使っている。
inputTest();の char *s;の領域が無くなっても、main();のchar *s;がリテラルのアドレス値を
持っているから、それを使っても大丈夫。
ああ、説明がよく分からなかったら、無視してください。。
0842デフォルトの名無しさん
2013/03/02(土) 13:21:16.40言語によってはポインタが無効になるとそれが指す先も無効になる
(ガベージコレクション)があるけど、Cはそういうややこしいものは無い
0843デフォルトの名無しさん
2013/03/02(土) 14:24:44.98�@パラメータ入力を要求するメッセージを表示
�Aパラメータ入力
�B計算結果を羅列
↑のような流れのプログラムがあるんですが
�@、�Aだけは常に表示させて
�Bはリダイレクトやパイプを使わないときだけ表示させたいです
0844デフォルトの名無しさん
2013/03/02(土) 14:30:47.060845デフォルトの名無しさん
2013/03/02(土) 14:38:42.460846デフォルトの名無しさん
2013/03/02(土) 14:39:19.620847デフォルトの名無しさん
2013/03/02(土) 15:06:46.560848デフォルトの名無しさん
2013/03/02(土) 15:13:49.190849デフォルトの名無しさん
2013/03/02(土) 17:09:28.980850デフォルトの名無しさん
2013/03/02(土) 17:13:44.040851デフォルトの名無しさん
2013/03/02(土) 17:14:35.390852デフォルトの名無しさん
2013/03/02(土) 17:15:08.400853デフォルトの名無しさん
2013/03/02(土) 17:15:33.820854デフォルトの名無しさん
2013/03/02(土) 17:19:02.970855デフォルトの名無しさん
2013/03/02(土) 17:45:17.450856デフォルトの名無しさん
2013/03/02(土) 18:18:29.600857デフォルトの名無しさん
2013/03/02(土) 18:25:36.900858デフォルトの名無しさん
2013/03/02(土) 18:37:59.060859デフォルトの名無しさん
2013/03/02(土) 18:54:52.750860デフォルトの名無しさん
2013/03/02(土) 19:00:26.12このソフト[a.exe]について作者は動作保証も使用に関しての責任は一切負いません。
0861デフォルトの名無しさん
2013/03/02(土) 19:09:45.310862デフォルトの名無しさん
2013/03/02(土) 19:12:25.040863デフォルトの名無しさん
2013/03/02(土) 20:24:19.110864デフォルトの名無しさん
2013/03/02(土) 20:56:12.08別に法的拘束力があるとかの意味じゃないよ。
無用なトラブルを避けらける(可能性が上がる)くらいの意味での無難。
0865デフォルトの名無しさん
2013/03/02(土) 22:01:24.79と書いたとしても、a.exeがウィルスだったら逮捕されるよ
0866デフォルトの名無しさん
2013/03/02(土) 22:56:07.000867デフォルトの名無しさん
2013/03/02(土) 23:31:43.86西洋合理主義ってほんとどこまでいってもクソだな
0868デフォルトの名無しさん
2013/03/02(土) 23:33:08.650869デフォルトの名無しさん
2013/03/02(土) 23:39:47.480870デフォルトの名無しさん
2013/03/02(土) 23:50:21.80そんな物ブラフだっつーの
0871デフォルトの名無しさん
2013/03/02(土) 23:58:10.020872デフォルトの名無しさん
2013/03/03(日) 00:01:53.58チョンが信用ならないのは事実だがそれ以上に胡散臭い連中だ
震災以後はとくにそれが目立ってきている
0873デフォルトの名無しさん
2013/03/03(日) 00:18:26.620874デフォルトの名無しさん
2013/03/03(日) 00:20:00.81何かが起こる前に現政権を妥当しなくてはならない
国民よ立ち上がれ
戦いのときは近い
0875デフォルトの名無しさん
2013/03/03(日) 00:23:08.640876デフォルトの名無しさん
2013/03/03(日) 00:34:20.690877デフォルトの名無しさん
2013/03/03(日) 00:36:55.800878デフォルトの名無しさん
2013/03/03(日) 00:38:40.870879デフォルトの名無しさん
2013/03/03(日) 01:05:21.160880デフォルトの名無しさん
2013/03/03(日) 05:59:37.210881デフォルトの名無しさん
2013/03/04(月) 17:15:04.78作成したプログラムのスタックサイズを調べる方法はありませんか?
関数単位、プログラム全体で知りたいです。
0882デフォルトの名無しさん
2013/03/04(月) 17:58:42.74....
return gethaddr(__FUNCTION__),r; とでも
あとは出力結果から定消費を考慮した引き算といっちゃんデカイアドレスを探すだけだよ
0883デフォルトの名無しさん
2013/03/04(月) 18:17:55.910884デフォルトの名無しさん
2013/03/04(月) 18:25:08.40オレは使い方知らない
0885デフォルトの名無しさん
2013/03/04(月) 19:16:40.560886デフォルトの名無しさん
2013/03/04(月) 19:30:28.880887デフォルトの名無しさん
2013/03/04(月) 19:40:26.450888デフォルトの名無しさん
2013/03/04(月) 21:54:41.82関数が相互再起してる場合はどうカウントするんだ?
0889デフォルトの名無しさん
2013/03/05(火) 10:10:34.21アセンブリ出力をして、スタックを操作しているニモニックを関数ごとに抽出。
関数こーリングツリーを作成して、再帰がない関数までのスタック操作量を積算。
再帰関数では再帰深度をロジックから解析し、スタック操作量を積算。
0890デフォルトの名無しさん
2013/03/05(火) 13:18:27.05使ってる共有ライブラリの中も考慮しろよ
というか普通は静的に分かるものじゃない
0891デフォルトの名無しさん
2013/03/05(火) 13:50:16.400892デフォルトの名無しさん
2013/03/05(火) 19:04:21.19入力した行の長さを返すサンプルプログラムで
cygwinのgccではテキストファイルからリダイレクトできて
$ ./a.exe <text.txt
47
と実行できるのですが、DOSのコマンド上では同じソースファイルをコンパイルしても
C:\>プログラム名.exe <text.txt
C:\>
となってしまいます。コンパイラは LSI C-86 Ver.3.30 試食版 です。
0893デフォルトの名無しさん
2013/03/05(火) 19:06:45.91プログラムが間違ってるんじゃね
0894デフォルトの名無しさん
2013/03/05(火) 19:08:38.81まずこれをすてろ。話はそれからだ。
0895デフォルトの名無しさん
2013/03/05(火) 19:19:40.59これで試してみて
#include <stdio.h>
int main(void)
{
int p=0, c, l=0;
while((c=getchar())!=EOF)
{
if(c=='\n') l++;
p=c;
}
if(p!='\n') l++;
printf("%d\n", l);
return 0;
}
0896デフォルトの名無しさん
2013/03/05(火) 19:28:09.89今更やるだけ無駄のような
0897デフォルトの名無しさん
2013/03/05(火) 19:34:45.72エミュレータを使ってもいいし
マイコンでも20MHzいけるからRAMとか繋いでやればDOSくらい動きそうだ
0898デフォルトの名無しさん
2013/03/05(火) 19:39:18.98マシンはWindows XP の 32bit です。
マシンも古いし、何か軽い動作のものはないかと思いまして・・・
0899デフォルトの名無しさん
2013/03/05(火) 19:42:53.58int p=0, c, l=0;
↓
int p='\n', c, l=0;
0900デフォルトの名無しさん
2013/03/05(火) 19:43:47.580901デフォルトの名無しさん
2013/03/05(火) 19:45:41.49hello,worldは動いた?
0902デフォルトの名無しさん
2013/03/05(火) 20:03:58.39それは普通に
>>900
やり方をぐぐってみます。
0903デフォルトの名無しさん
2013/03/05(火) 20:10:00.84・文字コード
・改行コード
この二つについて精査しろ
報告もしろ
今すぐやれ
0904デフォルトの名無しさん
2013/03/05(火) 20:14:34.060905デフォルトの名無しさん
2013/03/05(火) 20:23:00.82もうコレ使えよ
捗るぞ
ただし文字コードはアレな。
0906デフォルトの名無しさん
2013/03/05(火) 21:47:45.34サンプルコードになにか原因があるような気がします。
http://ideone.com
に貼っていただければ納得のいく回答がつくかもしれません、おすすめです。
0907デフォルトの名無しさん
2013/03/06(水) 00:44:41.31せめてクソブンツだろ
0908デフォルトの名無しさん
2013/03/06(水) 01:06:14.030909デフォルトの名無しさん
2013/03/06(水) 03:43:53.670910デフォルトの名無しさん
2013/03/06(水) 07:04:18.050911デフォルトの名無しさん
2013/03/06(水) 23:09:39.460912デフォルトの名無しさん
2013/03/07(木) 04:42:42.33閃光はflashで、flushは(バッファを)吐き出すって意味だったということを知って衝撃を受けた。今まさに。
ポーカーのフラッシュもflushだし、いろんな所で誤用、誤記してきた気がするわ…orz
0913デフォルトの名無しさん
2013/03/07(木) 05:14:30.220914デフォルトの名無しさん
2013/03/07(木) 08:28:00.69たしか高校のころかな
英語の偏差値が30くらいだった
懐かしい
0915デフォルトの名無しさん
2013/03/07(木) 14:02:38.02シグナルハンドラ(SIGSEGV?)などで取得して、その情報をファイルや標準出力に吐いてから落ちたいのですが、
どうやればよいのでしょうか。
イメージ的には、落ちた時に作成されるコアファイルを用いてgdbで起動して、btコマンドで出力される
バックトレースの情報が取得できればと思っています。
サンプルとなるソースコードがあるサイトなどがありましたらお願いします。
0916デフォルトの名無しさん
2013/03/07(木) 14:08:05.60わからん
0917デフォルトの名無しさん
2013/03/07(木) 14:09:41.690918デフォルトの名無しさん
2013/03/07(木) 14:15:53.40int *p=NULL;
*p=4649;
0919デフォルトの名無しさん
2013/03/07(木) 14:17:12.890920デフォルトの名無しさん
2013/03/07(木) 15:08:07.02書いたこと無いな。
たぶん頭のできが違うんだろう。
0921デフォルトの名無しさん
2013/03/07(木) 15:38:50.37障害解析用の情報を取っておけるようにしておきたいのです。
0922デフォルトの名無しさん
2013/03/07(木) 15:45:29.450923デフォルトの名無しさん
2013/03/07(木) 15:48:42.280924デフォルトの名無しさん
2013/03/07(木) 15:55:34.810925デフォルトの名無しさん
2013/03/07(木) 16:09:16.890926デフォルトの名無しさん
2013/03/07(木) 16:40:41.21SG(セキュリティー・ガード)に登録しないと個人情報がバレますよ。
SGに登録せずに書き込んだ場合、あなたのパソコン内の
情報は他人に見られていると考えてほぼ間違いないでしょう。
個人情報がばれる方の多くはこの登録を怠っています。
初期の頃から2ちゃんねるにいる方達は、ほとんどの方が
このBBSのコマンドの仕組みを知っています。
ですから簡単にあなたのIPアドレス等を抜き取り個人情報を見破ってしまいます。
このコマンドの方法は決して教えないというのが初期の頃から
2ちゃんねるにいる方達の間で暗黙の了解となっていましたが、
あまりの被害の多さに心を痛めた私はあえて公開することにしました。
SGしておけばまず抜かれるコマンド自体が無効になってしまうのでどんなにスキルが
ある人でもIPアドレスを抜くことが不可能になります。
SGに登録する方法は、
名前欄に「 fusianasan 」と入れて書き込みする。
これだけでSGの登録は完了します。
一度登録すれば、Cokkieの設定をOFFにしない限り継続されます。
fusianasanは、正式にはフュージャネイザン、又はフュジャネイザンと読みます。
元々はアメリカの学生達の間で、チャットの時にセキュリティを強化する為に
開発されたシステムです。これを行うことにより同一人物が書き込んでいるか
どうか判別する手段が遮断されるので安心です。
ぜひ書き込む前には
名前欄にfusianasanと入力してください。自分の身は自分で守りましょう
0927デフォルトの名無しさん
2013/03/07(木) 18:22:22.860928デフォルトの名無しさん
2013/03/07(木) 18:47:41.86コアファイル出力設定
�@「/etc/profile」内
ulimit -S -c unlimited > /dev/null 2>&1
�A「/etc/init.d/functions」内
corelimit = "ulimit -S -c unlimited"
と、該当箇所を変更し、システム再起動。
0929デフォルトの名無しさん
2013/03/07(木) 21:22:09.85さすがにそれは的外れすぎ
0930デフォルトの名無しさん
2013/03/07(木) 22:01:02.780931デフォルトの名無しさん
2013/03/08(金) 01:02:39.720932デフォルトの名無しさん
2013/03/08(金) 18:06:47.24二重解放を知らず知らずに起こしてたり、エラーが起きた場合の解放し忘れやら
プログラム自体は動く事が多いから気づきにくいし、どんなあたりに気をつければ
安定で安全なプログラムになるの?
終了したら自動的にメモリ解放してくれればいいのに、GCは偉大と思う
0933デフォルトの名無しさん
2013/03/08(金) 18:10:50.680934デフォルトの名無しさん
2013/03/08(金) 18:11:43.670935デフォルトの名無しさん
2013/03/08(金) 18:17:35.11なるべく解放しないようにする
0936デフォルトの名無しさん
2013/03/08(金) 18:21:31.25とりあえずelectric fence使ってみれば。
0937デフォルトの名無しさん
2013/03/08(金) 18:50:58.080938デフォルトの名無しさん
2013/03/08(金) 19:27:33.270939デフォルトの名無しさん
2013/03/08(金) 19:49:00.75調べてみたら結構便利そうね
今までwallopやデバッガで怪しそうなのは見てきたけど
注意力散漫だから見落とす事があったし
にしてもcallocやらmallocやらgloballockやらnewやらheapやらと多すぎて
自分以外に混乱起こす人いると思うんだ…たぶん
0940デフォルトの名無しさん
2013/03/08(金) 19:51:11.26ツールを使ってもよいが漢なら自分でなんとかする
0941デフォルトの名無しさん
2013/03/08(金) 19:58:33.710942デフォルトの名無しさん
2013/03/08(金) 20:41:46.960943デフォルトの名無しさん
2013/03/08(金) 21:28:36.44月一でリブートするからおkってとこがあったなー
0944デフォルトの名無しさん
2013/03/08(金) 21:30:14.61>セグメンテーションフォルトよりはメモリリークのほうがいいから
それはプログラムの用途による。
しかし、daemonやサービスなどプログラムが走りっぱなしにするものでは、
エラーでコケる方がマシで、メモリリークは不具合箇所の特定が難しい。
それに長期運用しないと、不具合自体が顕在化しないので
セグメンテーションフォルトの方がずっとマシ、と言う感覚。
0945デフォルトの名無しさん
2013/03/08(金) 21:49:45.030946デフォルトの名無しさん
2013/03/09(土) 01:42:45.89C始めたばっかなんで冗長なコードだとは思うが
質問したいのは104行目の戻り値がなぜかbnという変数に入ってしまう(ように見える)んだがその理由と改善策
あと116行目以降の戻り値でキャストなしでポインタをうんぬんという警告が出るんだが、ポインタのあたりがよく分かってない
0947デフォルトの名無しさん
2013/03/09(土) 01:58:14.76stratの返値はintと指定したのにintでない物をreturnしてる
124行目のセミコロンはおそらく誤記
carddとstrat関数に返値をreturnしないパスが存在する
0948デフォルトの名無しさん
2013/03/09(土) 02:11:20.590949デフォルトの名無しさん
2013/03/09(土) 02:19:01.290950デフォルトの名無しさん
2013/03/09(土) 02:20:11.480951デフォルトの名無しさん
2013/03/09(土) 02:25:35.580952946
2013/03/09(土) 02:29:50.71>>947
えーと実際に走らせてみると多分102-108行目でbnが変な挙動をするんだよなぁ……
ポインタを返したいときは関数は何にすればよいのでしょう
0953デフォルトの名無しさん
2013/03/09(土) 02:34:04.11なら関数はchar*関数名(int)にするとreturnで文字列を返せる
0954946
2013/03/09(土) 02:34:06.49carddをvoidで書いてreturnなしにしてもbnが思い通りに動かなかったから
戻り値がおかしいわけではないようだ
要するにstrategyが3のときにbnが2になってくれないのです……なんでじゃ
0955デフォルトの名無しさん
2013/03/09(土) 02:41:17.690956デフォルトの名無しさん
2013/03/09(土) 02:45:51.62突っ込みどころだらけではなしにならないんだが、取り敢えず>947の指摘はチェックしよう。
それと、慣れないうちは必ずブロック化した方がいいぞ。
0957946
2013/03/09(土) 02:48:51.8757行目と80行目のprintfは確認用なんだが、その間でどうもbnが動いてる
どう考えてもくさいのは58行目のcardd関数なんだが……
もしちょっと時間あるなら実際に走らせてみてもらえればわかるんだが、
結果の文章のplayerAで始まる各行の末尾の数字がそろわない行があると思う
0958デフォルトの名無しさん
2013/03/09(土) 02:53:09.410959946
2013/03/09(土) 02:56:48.13ポインタとセミコロンの件は分かった。ありがとう
[carddとstrat関数に返値をreturnしないパスが存在する]
「パス」の意味がちょっと分からんのだがパスでググっても出なさそうなので教えてくれ
ブロック化は今すぐしてみる
0960デフォルトの名無しさん
2013/03/09(土) 02:58:25.630961デフォルトの名無しさん
2013/03/09(土) 03:39:39.56パス(path)は道のこと
http://ja.wikipedia.org/wiki/%E9%81%93_%28%E3%82%B0%E3%83%A9%E3%83%95%E7%90%86%E8%AB%96%29
0963デフォルトの名無しさん
2013/03/09(土) 12:02:58.94文字通りreturnしないパスだよ
0964デフォルトの名無しさん
2013/03/09(土) 12:15:07.20{
if(a==1)
{
return 123;
}
}
パス1:関数に入る→ifで判定、真→returnで関数を抜ける
パス2:関数に入る→ifで判定、偽→returnせずに関数を抜ける
0965デフォルトの名無しさん
2013/03/09(土) 12:23:11.720966デフォルトの名無しさん
2013/03/09(土) 12:30:47.290967デフォルトの名無しさん
2013/03/09(土) 12:37:51.520968デフォルトの名無しさん
2013/03/09(土) 12:41:02.560969946
2013/03/09(土) 12:41:57.43パスのことは分かりました、ありがとう
あとから色々付け加えるためにelseじゃなくてelse ifのままにしてたんだけど一応直した
>>966
とは?
0970デフォルトの名無しさん
2013/03/09(土) 12:46:09.92対戦回数が少ない
0971デフォルトの名無しさん
2013/03/09(土) 12:48:46.170972946
2013/03/09(土) 12:55:17.83あーそれはこれから色々付け加えるんだが
その前にtftがきちんと動いてくれないのでみんなに質問させてもらってる
もう一回質問したいことを繰り返すけど
strategyが3のときにbnが2以上になってくれない(というか多分59行目でcardd関数に入るとbnの値がおかしくなる)
のでその原因分かる人がいればおしえてください、ということです
自分の態度が悪いとかなんかあればスマン。以後気を付ける
Cはホントに初心者なんでわかんないことがあって聞き返すことがあるかもしれんがご容赦ください
0973デフォルトの名無しさん
2013/03/09(土) 12:57:16.220974946
2013/03/09(土) 13:10:54.80battle関数の中でfor文があると思うんだが
その中で同じプレーヤー同士が何回か繰り返し対戦することになってる
そこでbnを増やしてるんだが、「strategy=3のときだけ」bnがおかしくなるんですよ……
0975デフォルトの名無しさん
2013/03/09(土) 13:15:55.01else if(player[a].strategy == 3) ;
0976デフォルトの名無しさん
2013/03/09(土) 13:17:51.17> for(c = 1; c < 3; c++) {
で良いの?
0977デフォルトの名無しさん
2013/03/09(土) 13:17:54.57>struct info player[3];
を
struct info player[4];
にしたか?
0978デフォルトの名無しさん
2013/03/09(土) 13:20:41.83それなら37行目は
> for (j = 0; j < num; j++) {
じゃなくて
> for (j = 0; j < num - 1; j++) {
では?
0979デフォルトの名無しさん
2013/03/09(土) 13:22:33.570980デフォルトの名無しさん
2013/03/09(土) 13:37:28.990981946
2013/03/09(土) 14:00:55.15player[4]にしたらちゃんと動いた!ありがとう!!
でも理由が分からん……とりあえずnum+1の数の配列を用意すればいいのか?
オーバーフローなのかなあ
0982デフォルトの名無しさん
2013/03/09(土) 14:14:49.08struct info player[3];をstruct info player[NUM];にしとけ
for(j = 0; j < num; j++)なんかもfor(j = 0; j < NUM; j++)
0983デフォルトの名無しさん
2013/03/09(土) 14:16:46.60>>980
0984デフォルトの名無しさん
2013/03/09(土) 14:19:00.05ゼロオリジンを理解してないからだ
0985デフォルトの名無しさん
2013/03/09(土) 14:32:07.510986デフォルトの名無しさん
2013/03/09(土) 14:37:21.790987946
2013/03/09(土) 14:38:11.53そうかplayer[4]と書いて0,1,2,3か……
大変お騒がせしましたorz
0988デフォルトの名無しさん
2013/03/09(土) 14:41:12.22向いてないよ
人の話きかね―モン
聞いてから40分で解決してンだろ?
> 949 デフォルトの名無しさん [sage] 2013/03/09(土) 02:19:01.29
> 配列の添え字はゼロオリジン
0989946
2013/03/09(土) 14:46:31.19その証拠に実は>>980は俺なんだ
思い込みの強い性格でな……まあそれが向いてないってことなんだろうけど
いい教訓になったよ、ありがとう
0990デフォルトの名無しさん
2013/03/09(土) 15:38:06.700991デフォルトの名無しさん
2013/03/09(土) 15:59:43.62いや言い訳は良いんだけど、それよりも前に、今までアドバイスくれたレスに返事レスが無いと
聞いているんだか聞いていないんだか分からない。
いちいち1レスごとにレスするのはまどろっこしいので、修正したソースをideoneに(新しく)上げるのが手っ取り早いと思うよ。
0992946
2013/03/09(土) 16:37:58.82配列関係のレスに返事をしなかったのは配列には問題ないと「思い込んで」いたためです
申し訳なかった。
ideone.com/iLJYb1
こんな感じでバリバリ思い通りに動いてます!
これから遺伝アルゴリズムを入れるのですが
また詰まったらお世話になるかもしれません
そのときはできるだけ思い込みを排して人の話を聞くようにするので許してね!
0993デフォルトの名無しさん
2013/03/09(土) 16:40:24.48荷物を一つなくしてしまったのではないかと心配していた。
「そんなことないわよ、あなた!」と妻は言った。
「六つともここにあるじゃないの」。
「そんなはずないよ」とシェルピンスキーは言った。
「何度も数えたんだ。ゼロ、1、2、3、4、5」
の逆バージョン
0994デフォルトの名無しさん
2013/03/09(土) 16:41:02.49これ見た後に
># 1: hide clone 8 minutes 6 seconds ago
>result: not running
これ見てなんか笑った
0995デフォルトの名無しさん
2013/03/09(土) 16:47:13.53not runnningとなってるのは
アップロード時にコンパイルして走らせるチェックを選択しなかったためですw
自分のPC上では問題なく動いてますw
0996デフォルトの名無しさん
2013/03/09(土) 19:26:10.92http://toro.2ch.net/test/read.cgi/tech/1362824689/
0997デフォルトの名無しさん
2013/03/09(土) 19:47:16.960998デフォルトの名無しさん
2013/03/09(土) 19:47:49.840999デフォルトの名無しさん
2013/03/09(土) 19:48:31.951000デフォルトの名無しさん
2013/03/09(土) 19:48:36.0710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。