C言語なら俺に聞け(入門編)Part 114
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/04/22(月) 04:47:19.70★前スレ
C言語なら俺に聞け(入門編)Part 113
http://toro.2ch.net/test/read.cgi/tech/1362824689/
★過去スレ
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++の宿題片付けます 164代目
http://toro.2ch.net/test/read.cgi/tech/1364700745/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
# サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0002デフォルトの名無しさん
2013/04/22(月) 05:45:22.910003デフォルトの名無しさん
2013/04/22(月) 08:34:20.72おつおつ〜
0004デフォルトの名無しさん
2013/04/22(月) 16:27:33.640005デフォルトの名無しさん
2013/04/22(月) 20:35:36.96自動的に滑らかな輪郭のシャボン玉の形を作成したいんだけど
どんな実装したらいいですかね?かなり困ってて.....
一応C言語を使用します
00065
2013/04/22(月) 20:38:58.94曲線をパーツとして作っていって繋げたらカクカクしそうだし
0007デフォルトの名無しさん
2013/04/22(月) 20:44:07.400008デフォルトの名無しさん
2013/04/22(月) 20:44:47.29外形とグラデーションを別々に描画してから後で合成する
0009片山博文MZパンク ◆0lBZNi.Q7evd
2013/04/22(月) 20:48:19.59ベジェ曲線、スプライト曲線など
透明な背景に不透明度(α値)付の描画で画像作成
00105
2013/04/22(月) 20:52:26.45意味がちょっと分かりません
00115
2013/04/22(月) 20:59:50.31ありがとうございます
スプライト曲線が使えそうですね
00125
2013/04/22(月) 21:02:06.91閉曲線作るプログラム書いてくれませんかね?Cは画像ライブラリもってないんで
Swingで...
0013デフォルトの名無しさん
2013/04/22(月) 21:11:16.1800145
2013/04/22(月) 21:11:55.04すいません
Cのグラフィックスライブラリ教えて下さい
0015デフォルトの名無しさん
2013/04/22(月) 21:21:08.08Linuxは知らん
0016デフォルトの名無しさん
2013/04/22(月) 21:24:26.9800175
2013/04/22(月) 21:31:23.490018デフォルトの名無しさん
2013/04/22(月) 21:46:01.820019デフォルトの名無しさん
2013/04/23(火) 03:24:53.080020デフォルトの名無しさん
2013/04/23(火) 11:41:37.66sub(){
static char buf[38];
char CHR[7]
fgets(buf,36,fp);
fscanf(fp,"%6s\n",CHR);
puts(CHR);
}
main(){
fp = fopen("test.txt", "r");
sub();
}
こんなプログラムが書きたいんですが,putsで表示したCHRがフフフフフってなります.
おそらくfpがsub関数に渡せていないのが問題だと思うのですが,main関数からどうやって渡せばいいでしょうか?
グローバル関数は使いたくないのでそれ以外の方法でお願いします.
0021デフォルトの名無しさん
2013/04/23(火) 11:42:57.940022デフォルトの名無しさん
2013/04/23(火) 11:46:13.88sub() { → sub(FILE *fp) {
main() {
FILE *fp = fopen("test.txt", "r");
sub(fp);
}
CHRがフフフフフ は別件だと思うがなー
0023デフォルトの名無しさん
2013/04/23(火) 11:49:02.260024デフォルトの名無しさん
2013/04/23(火) 11:55:19.29戻らない
sub(FILE **fp) {
*fp = fopen("test.txt", "r");
}
main() {
FILE *fp;
char CHR[7], buf[100];
sub(&fp);
fgets(buf,36,fp);
fscanf(fp,"%6s\n",CHR);
...
return 0;
}
最初の頃はこれではまったわ
C++ならFILE*& fp) とポインタのリファレンスを使うと呼び出し元の&は省略出来る
それとこれはFILEだからいいけど、コンソールは基本的にgets()系とscanf()系は混合
すると改行文字が変な働きをして動作がおかしくなるので、FILEもどちらか一方に
統一してるわ
002520
2013/04/23(火) 13:03:32.07別関数にtxt行数数えるコードがあるうのを失念してまして,rewindし忘れてました.
うまくいきました
0026デフォルトの名無しさん
2013/04/23(火) 13:33:00.270027デフォルトの名無しさん
2013/04/23(火) 19:14:33.770028デフォルトの名無しさん
2013/04/23(火) 19:42:37.780029デフォルトの名無しさん
2013/04/23(火) 20:23:07.100030デフォルトの名無しさん
2013/04/23(火) 20:58:51.76@visual stadio
0031デフォルトの名無しさん
2013/04/23(火) 21:11:25.640032デフォルトの名無しさん
2013/04/23(火) 21:27:01.190033デフォルトの名無しさん
2013/04/23(火) 21:47:32.58キーボードから入力された文字列の中に、特定の文字の列"abc"が含まれるなら"found!"を出力し、無ければ"Not found!"を出力するプログラムをつくれ。
入力は右の文を使います。char str[50];scanf("%s", str);
○文字列の探し方:
1.str[]の中から、まず先頭の文字'a'を探す。しかし、文字列の終端に達すると'\0'が現れるので、これが現れたら見つからなかったことになる。
2.'a'が見つかったら、次の要素が'b'かチェック。もし'b'ではないなら1に戻る。
3.'b'が見つかったら、さらに次の要素が'c'かチェック。もし'c'ではないなら1に戻る。
0034片山博文MZパンク ◆0lBZNi.Q7evd
2013/04/23(火) 22:14:09.10#include <stdio.h>
int main(void){
int i; char str[50];
printf("入力: ");
scanf("%s", str);
for(i=0;str[i]!='\0';i++)
if(str[i]=='a'&&str[i+1]=='b'&&str[i+2]=='c')
{printf("found!\n");return 0;}
printf("Not found!\n");
return 0;}
0035デフォルトの名無しさん
2013/04/23(火) 22:16:19.380036デフォルトの名無しさん
2013/04/23(火) 22:27:02.19まじすか
そんなに難しくない?
0037デフォルトの名無しさん
2013/04/23(火) 22:32:56.460038デフォルトの名無しさん
2013/04/23(火) 22:35:31.580039デフォルトの名無しさん
2013/04/23(火) 22:46:12.56問題は、x=10に対してe^xの値をテイラー展開の式を使って解け。ただし、項の大きさが10^(-8)以下になるまで和を取りexp(x)の値と比較せよ。
#include <math.h>
int main(void){
float x,t,s,a;
x=10.0;
t=1.0;
s=t;
exp(x)=1.0;
do{
t=t*x/a;
s=s+t;
exp(x)=exp(x)+1.0;
}while(fabs(t)>1.0e-8);
printf("%e\n",exp(x));
return 0;
}
0040デフォルトの名無しさん
2013/04/23(火) 22:48:21.34それがどーやってdllファイルを入手するのか、どーやって使うのかよくわからないんです。
もうまる2日ぐぐって格闘してるんですが…
0041片山博文MZパンク ◆0lBZNi.Q7evd
2013/04/23(火) 22:52:12.94exp(x)は値を返すだけの関数なので値を代入できない。値を代入できるのは変数。
#include <stdio.h>がない。
0042デフォルトの名無しさん
2013/04/23(火) 22:59:25.630043デフォルトの名無しさん
2013/04/23(火) 23:01:49.03回答ありがとうございます。
exp(x)との比較はどうすれば良いですか?
イマイチわかりません
0044デフォルトの名無しさん
2013/04/23(火) 23:02:01.22gunzip DLL
0045片山博文MZパンク ◆0lBZNi.Q7evd
2013/04/23(火) 23:05:18.11差の絶対値
0046片山博文MZパンク ◆0lBZNi.Q7evd
2013/04/23(火) 23:09:32.31MinGW版だとwindowsでも使えるけど
0047デフォルトの名無しさん
2013/04/23(火) 23:22:00.74何度もすみません。その差の絶対値の取り方がわからないんです。教えていただけないですか?
0048デフォルトの名無しさん
2013/04/23(火) 23:24:01.44先生に聞けよ
0049デフォルトの名無しさん
2013/04/23(火) 23:30:20.06察しろよ
0050片山博文MZパンク ◆0lBZNi.Q7evd
2013/04/23(火) 23:44:29.270051デフォルトの名無しさん
2013/04/23(火) 23:54:59.37DLLの使い方ならともかく、DLLの入手方法なんて
圧縮解凍ソフトの「ユーザとしての」初心者レベルの話だぞ…?
ソフトウェア板にでも行きなされ
0052デフォルトの名無しさん
2013/04/24(水) 00:05:53.00おまえがどっかいけばすむ話かもしれないね
0053デフォルトの名無しさん
2013/04/24(水) 00:07:53.040054デフォルトの名無しさん
2013/04/24(水) 00:15:45.730055デフォルトの名無しさん
2013/04/24(水) 00:18:53.49効いてる効いてる
0056デフォルトの名無しさん
2013/04/24(水) 00:19:04.34マジで親のダイヤの結婚指輪のネックレスを指にはめてぶん殴るぞ
多分奥歯が揺れるくらいの威力はあるはずだしね
0057デフォルトの名無しさん
2013/04/24(水) 00:20:01.260058デフォルトの名無しさん
2013/04/24(水) 00:21:25.82なんだおまえ?ズタズタに引き裂いてやってもいいんだぞ
あまり調子こくとリアルで痛い目を見て病院で栄養食を食べる事になる
0059デフォルトの名無しさん
2013/04/24(水) 00:22:44.33びびって逃げちゃったのかな?
0060デフォルトの名無しさん
2013/04/24(水) 00:29:39.50効いてる効いてる
0061デフォルトの名無しさん
2013/04/24(水) 00:36:42.30その一般人どもが一級廃人のおれに対してナメタ言葉を使うことでおれの怒りが有頂天になった
この怒りはしばらくおさまる事を知らない
0062デフォルトの名無しさん
2013/04/24(水) 00:52:26.510063デフォルトの名無しさん
2013/04/24(水) 00:53:37.600064デフォルトの名無しさん
2013/04/24(水) 05:13:13.22やってみれば?
>>56
>親のダイヤの結婚指輪のネックレス
なにそれ?あと
>親
(爆笑)自分のじゃないの?
0065デフォルトの名無しさん
2013/04/24(水) 07:18:06.760066デフォルトの名無しさん
2013/04/24(水) 08:19:31.34へえ、こんなのがあったんだ昔から踊らされてしまったねえww
0067デフォルトの名無しさん
2013/04/24(水) 13:22:34.220068デフォルトの名無しさん
2013/04/24(水) 18:29:41.80ファイル入出力以外の事をシーケンス制御って言うんですか?
中学校でプログラミング必修化するっていう記事で基本的なプログラミング
(ファイル入出力・シーケンス制御)等をやるとか書いてました。
0069デフォルトの名無しさん
2013/04/24(水) 18:41:56.710070デフォルトの名無しさん
2013/04/24(水) 18:44:33.45こりゃプログラマーの立場がww
0071デフォルトの名無しさん
2013/04/24(水) 18:50:02.420072デフォルトの名無しさん
2013/04/24(水) 19:00:03.47C以外あり得ねー
中2 春C 秋C++
中3 春GUI 秋ネットワーク
これくらいで無理なく幅広く勉強できるんじゃないか?
0073デフォルトの名無しさん
2013/04/24(水) 19:04:04.080074デフォルトの名無しさん
2013/04/24(水) 19:11:44.420075デフォルトの名無しさん
2013/04/24(水) 19:14:50.110076デフォルトの名無しさん
2013/04/24(水) 19:27:45.40だから基礎的な文法とかはって事
中学校の授業レベルの話だろう
0077デフォルトの名無しさん
2013/04/24(水) 21:16:11.120078デフォルトの名無しさん
2013/04/24(水) 21:19:34.88C++の方が初心者向きだが、基本からとなるとPASCALの方が良いかな
0079デフォルトの名無しさん
2013/04/25(木) 01:17:22.700080デフォルトの名無しさん
2013/04/25(木) 01:19:15.4720 screen 3: cls 3
30 line(0,160)-(330,160)
40 line(0,240)-(330,240)
50 for S=-1 to 1 step 2
60 for T=int(-sqr(2000)) to 60
70 X1=T: Y1=sqr(3600-X1^2)
80 X=X1+330+int(sqr(2000)): Y=-Y1*S+200
90 pset (X,Y)
100 next: next
110 for R=1 to 10
120 for S=0 to 14
130 for T=7 to 0 step -7
140 for U=0 to 15
150 circle (460+S*25,200+2*S^2),U,T
160 next: next: next: next
170 line input "CLS 3 OK?";A$
180 cls 3
190 end
0081デフォルトの名無しさん
2013/04/25(木) 08:57:29.170082デフォルトの名無しさん
2013/04/25(木) 10:35:42.220083デフォルトの名無しさん
2013/04/25(木) 21:30:05.20乙
0084デフォルトの名無しさん
2013/04/25(木) 22:41:02.83Cが基礎だって言うやつって、言語が低水準であることと基礎と区別がつかないのかね。
PCのアーキテクチャが分かるってなら、アセンブラでも進めりゃいいのに。
0085デフォルトの名無しさん
2013/04/25(木) 22:49:16.680086デフォルトの名無しさん
2013/04/25(木) 22:58:29.41アセンブラは自分で注意しないといけない部分が多すぎる
0087デフォルトの名無しさん
2013/04/25(木) 23:01:26.35機械制御とかにもすぐ使えて便利
0088デフォルトの名無しさん
2013/04/25(木) 23:18:16.13今の環境でアセンブラだけで実行ファイル作るのはかなり困難
0089デフォルトの名無しさん
2013/04/25(木) 23:22:10.690090デフォルトの名無しさん
2013/04/25(木) 23:22:45.05話にならない
0091デフォルトの名無しさん
2013/04/25(木) 23:24:00.21でもプログラム初心者にマイコン勧めるかというと
0092デフォルトの名無しさん
2013/04/25(木) 23:26:05.72CPUによって独自なところが残念。覚えてもほとんど役に立たない。
現実、アセンブラに近いくらい簡単で、覚えて役に立つのはCだと思う。
もしJavaやるなら、Cをやったあとでいいと思う。
0093デフォルトの名無しさん
2013/04/25(木) 23:31:20.79組み込み関数で近い事はできるしレジスタ効率もコンパイラ任せにできるんだが、
ちと物足りない
0094デフォルトの名無しさん
2013/04/25(木) 23:34:20.190095デフォルトの名無しさん
2013/04/26(金) 00:02:11.99順番
分岐
この3つが基本だろ?
オブジェクト指向はややこしいから普通にCでいいじゃん
中学生の頭なら3週間で連立方程式を解くプログラム作れるように
なるでしょ
0096デフォルトの名無しさん
2013/04/26(金) 00:12:56.15scanf()
for()
while()
goto()
こんなシンプルな文法の言語のどこが難しいんだwww
0097デフォルトの名無しさん
2013/04/26(金) 00:19:14.170098デフォルトの名無しさん
2013/04/26(金) 00:32:54.63だからCでいいかと。javaとか難しすぎるわ。
0099デフォルトの名無しさん
2013/04/26(金) 00:59:50.500100デフォルトの名無しさん
2013/04/26(金) 05:55:00.08なんだかんだでBASIC系の扱い易さは残してるし
プログラマに限らず扱う言語ではあるし
0101デフォルトの名無しさん
2013/04/26(金) 08:05:46.170102デフォルトの名無しさん
2013/04/26(金) 11:10:33.30アスペきたよ。
低水準言語→基礎 って考えがバカらしいって例で極論だしてるのにそれに極論ってツッコミ入れてどうすうる。
0103デフォルトの名無しさん
2013/04/26(金) 11:15:06.03コンパイラでも作るなら言語仕様が小さくてシンプルなほうが楽だけど、その言語で
なにか処理を書くなら、機能の少ない言語のほうがコードが複雑になるって、ふだんなにか
コードを書いてる人間なら分かるよな。
0104デフォルトの名無しさん
2013/04/26(金) 12:16:47.22sizeof ary;
このときsizeofに渡されるのはaryの先頭アドレスでしょうか
それともary全体を渡すイメージでしょうか
教えてくださいよろしくお願いいたします
0105デフォルトの名無しさん
2013/04/26(金) 12:57:26.91どっちを渡すイメージかなんてどうでもいいだろ
0106はちみつ餃子 ◆8X2XSCHEME
2013/04/26(金) 13:02:05.13ary の型は int[256] だよ。
なので sizeof は ary 全体のサイズ (int が 4 バイトなら 1024 ということになる) を返す。
ポインタ型になるのは条件が揃ったときにだけ暗黙の型変換が適用されるからで、
本来は配列型とポインタ型とは別物。
0107デフォルトの名無しさん
2013/04/26(金) 13:17:21.06むしろアスペじゃないプログラマとかいるのかと
0108デフォルトの名無しさん
2013/04/26(金) 13:31:33.45指数表示じゃ分りにくいし
0109デフォルトの名無しさん
2013/04/26(金) 13:36:52.64サイコパスは軽蔑の言葉だが
0110デフォルトの名無しさん
2013/04/26(金) 13:52:26.62大抵のアスペは強烈な自己愛も併発しててキチガイ化してる
0111デフォルトの名無しさん
2013/04/26(金) 14:03:17.65誇りに思うべき
0112デフォルトの名無しさん
2013/04/26(金) 14:10:59.120113デフォルトの名無しさん
2013/04/26(金) 14:10:59.390114デフォルトの名無しさん
2013/04/26(金) 14:18:49.43構文解析からやる必要があるから挫折したけど
0115デフォルトの名無しさん
2013/04/26(金) 14:29:03.65あれどういう仕組み?あんなアナログ線だと当たり判定どうしてんの?
0116デフォルトの名無しさん
2013/04/26(金) 14:29:57.60その「誇りにおもうべき」という部分が自己愛なんだよな
アスペにはこの思考がない
0117デフォルトの名無しさん
2013/04/26(金) 14:31:04.92係数だけ入力させればいいじゃん
0118デフォルトの名無しさん
2013/04/26(金) 18:30:11.26プラモデルみたいに既にある程度形が出来上がっているパーツを組み立てるより、
レゴブロックでモジュールを作りそれを組み合わせて一つの構造物を作り上げたほうが良い。
…と例えてみる。
0119デフォルトの名無しさん
2013/04/26(金) 18:56:25.940120デフォルトの名無しさん
2013/04/26(金) 19:04:31.55お前はアホか
0121デフォルトの名無しさん
2013/04/26(金) 19:34:20.90摂動検知が結構やっかい
0123デフォルトの名無しさん
2013/04/26(金) 20:22:39.83例えばchar *x="abc";として
abc
acb
bac
bab
cab
cac
みたいな感じにしたいです。
アルゴリズムてかコードお願いします。
0124123
2013/04/26(金) 20:30:05.52とりあえず良く分かりません。
0125デフォルトの名無しさん
2013/04/26(金) 20:30:52.82作りたいなら作れよ
作って下さいじゃないんだろ
0127デフォルトの名無しさん
2013/04/26(金) 20:36:55.850129デフォルトの名無しさん
2013/04/26(金) 20:49:12.99http://toro.2ch.net/test/read.cgi/tech/1354393458/
こっちで聞いてみては如何に
結果がn!(n=strlen(x))なので再起関数を使う予感ガス
ぼくにもよくわからない
0130デフォルトの名無しさん
2013/04/26(金) 21:06:38.67これは難しいぞ
abcをどう並べ替えたらcacになるんだよ。
解説してくれ。
0131デフォルトの名無しさん
2013/04/26(金) 21:20:55.30babとかcacとか意味が分からん
0132デフォルトの名無しさん
2013/04/26(金) 22:31:24.06ttp://ideone.com/qC7i2M
再帰だとこんな感じで
0133デフォルトの名無しさん
2013/04/26(金) 22:40:06.10つダブル
そういう事です。
お願いします......
どうすれば?
0134デフォルトの名無しさん
2013/04/26(金) 22:44:59.234!/2!=8通りだけど
それを考慮してなくて
16通り全部書いてしまってます。
どうすればいいでしょう?
基本はそれでいいと思います。
0135デフォルトの名無しさん
2013/04/26(金) 22:56:38.020136デフォルトの名無しさん
2013/04/26(金) 22:58:12.31まるで訳が分からんぞ
0137デフォルトの名無しさん
2013/04/26(金) 22:59:24.54これはもう並べ替えじゃない、入力を元に新たな文字列を生成するプログラムになっている
そして、どういう出力を求めてるのか定義が曖昧すぎる
日本語できちんとまとめてから書き直すべき
0138デフォルトの名無しさん
2013/04/26(金) 23:01:32.81aacb
abca
abac
acab□
acba
abca
abac
acab□
acba
aabc△
aacb
bcaa
bcaa
baac
baca
baca
baac
caab
caba
caba
caab
cbaa○
cbaa○
こういう事です。
0139デフォルトの名無しさん
2013/04/26(金) 23:04:49.690140デフォルトの名無しさん
2013/04/26(金) 23:13:53.430141デフォルトの名無しさん
2013/04/26(金) 23:17:33.09ttp://ideone.com/dSiqXY
0142デフォルトの名無しさん
2013/04/26(金) 23:18:21.600143デフォルトの名無しさん
2013/04/26(金) 23:23:54.36プレゼンカってなんだ?
0144デフォルトの名無しさん
2013/04/26(金) 23:24:48.52ありがとうございます。
出来れば配列に格納してから重複分を省略するのではなく
再帰の過程で重複をスルーするというのは無理ですか?
0145デフォルトの名無しさん
2013/04/26(金) 23:25:51.78jをフラグに使うのは間違いと気付き、修正
ttp://ideone.com/amccIr
0146デフォルトの名無しさん
2013/04/26(金) 23:31:56.96ttp://ideone.com/tGdfKa
0147デフォルトの名無しさん
2013/04/26(金) 23:34:08.07ttp://ideone.com/cJLU0O
トイレして風呂入って寝ます。
あとは頑張ってください。
0148デフォルトの名無しさん
2013/04/26(金) 23:49:46.30ありがとうございます。
再帰凄いですね。たった57行ですむんですか。
自分が作ったのはstrcmpとか再帰使ってないから
300行超えましたww
57行からもっと短くする事はさすがに無理ですか?
0149123
2013/04/26(金) 23:56:14.46この時コードどうなりますかね?
0150デフォルトの名無しさん
2013/04/27(土) 00:09:45.42・kekka_shori();をnarabe();のkekka_shori使っているところに埋め込む
・コメント削除
・行連結
これで 3行になる
http://ideone.com/aYxnm5
0151デフォルトの名無しさん
2013/04/27(土) 00:11:13.800152デフォルトの名無しさん
2013/04/27(土) 00:21:34.730153デフォルトの名無しさん
2013/04/27(土) 13:48:55.65手抜きしやがって
0154デフォルトの名無しさん
2013/04/27(土) 14:34:58.85改めて凄い賢いプログラム。
並び替える時、二つの文字を選んで交換することしか思い付かなかったけど
シフトレジスタ的に考えればいいのか。しかも再帰。
やっぱりプログラマは天才が多い。
0155デフォルトの名無しさん
2013/04/27(土) 14:37:09.40まさか再帰使うと思わなかった。
再帰ってn!とかクイックソートくらいしか使えないと思ってたわ。
やっぱりプログラマーになるには再帰使いこなさないとだめですかね?
0156デフォルトの名無しさん
2013/04/27(土) 14:39:39.500157デフォルトの名無しさん
2013/04/27(土) 14:45:19.96>>147のプログラム理解できません....
whileじゃダメなんですか?
narabe関数の中にnarabe関数は一つだけですよね?
つまり右から左に一直線に戻るだけですよね?
そこらへん分からないので教えて下さい。
0158デフォルトの名無しさん
2013/04/27(土) 14:58:01.85並べ替えは再帰が基本
でも C++ の next_permutation みたいに
再帰を使わないアルゴリズムもある
理解が非常に難しいのでライブラリとして使う分にはいいけど
自分の作るのは難しいね
0159デフォルトの名無しさん
2013/04/27(土) 15:03:38.86見にくくなるしアルゴリズムの練習くらいでしか使わねーよ
0160デフォルトの名無しさん
2013/04/27(土) 15:05:41.52{
int i, j, len = strlen(d);
char c;
if (n <= 1) {
kekka_shori(d);
return;
}
for (j = 0; j < n; j++) {
narabe(d, n - 1);
c = d[len - n];
for (i = 0; i < n - 1; i++)
d[len - n + i] = d[len - n + i + 1];
d[len - n + i] = c;
}
}
ここなんだけど
一直線じゃないなforでn回呼び出してる。
どういうこと?
0161デフォルトの名無しさん
2013/04/27(土) 15:09:17.57木構造扱う場合に普通に使うだろ
サブフォルダ全検索とかツリービューとか
0162デフォルトの名無しさん
2013/04/27(土) 15:13:31.470163デフォルトの名無しさん
2013/04/27(土) 15:15:41.97したい処理が自分自身なら自分自身を使えばいいだけの話
0164デフォルトの名無しさん
2013/04/27(土) 15:35:31.13再帰じゃないとめんどくさくね
0165デフォルトの名無しさん
2013/04/27(土) 15:58:32.70だな
0166デフォルトの名無しさん
2013/04/27(土) 16:38:25.53再帰の深さが決まってるとか、知って使っているならよいが
と、組み込みのみの感覚ですかね
0167デフォルトの名無しさん
2013/04/27(土) 16:52:47.810168デフォルトの名無しさん
2013/04/27(土) 17:18:06.56だな
0169デフォルトの名無しさん
2013/04/27(土) 17:23:13.63後は、ディレクトリ構成された複数のファイルに何かしらの機械処理を施すような捨てプログラムとか。
perlとかjavascriptとかで。
0170デフォルトの名無しさん
2013/04/27(土) 18:50:14.320171デフォルトの名無しさん
2013/04/27(土) 19:09:00.68ナイーブな再帰を組込みで使うのは確かに贅沢。
尤も、再帰が必要かもという複雑度なら継続相当の実装が吉。
オフィス系業務プログラムなら、PCのメモリに余裕あるから、よほど酷いコーディングでなければ再帰もあり。
ハイパフォーマンス向けなら、コンパイラを選べば再帰レベルは気にしなくていい。
実際は、再帰に展開されるか否か以外の問題の方が大きい。
0172デフォルトの名無しさん
2013/04/27(土) 19:43:56.09あんまり使いたくはないけどね。
0173デフォルトの名無しさん
2013/04/27(土) 19:53:50.41非再帰化するけどね
0174デフォルトの名無しさん
2013/04/27(土) 20:05:52.83再帰を使うのは、パパっと組むのにその方が簡単だから。
それを製品とかに使うかどうかはまた別の話。
0175デフォルトの名無しさん
2013/04/27(土) 21:46:14.61ループのがよほど難しいけど、ループのが効率的だからループが使われるのであって
難しいってのが実は最大の勘違い、多分慣れの問題でしかない
0176デフォルトの名無しさん
2013/04/27(土) 21:52:59.01非再帰化もそう難しいわけじゃない
ただ美しくない
0177デフォルトの名無しさん
2013/04/27(土) 22:04:04.16void abc(int n)
{
�@
abc(n-1);
�A
}
x番目に格納されてるabc関数の�@と�Aの場所でnの値が変わったりする事
ありますかね?
0178デフォルトの名無しさん
2013/04/27(土) 22:15:10.800179デフォルトの名無しさん
2013/04/27(土) 22:18:35.56再起
0180デフォルトの名無しさん
2013/04/27(土) 22:31:09.89abcを呼び出したことによって�@と�Aで変わってることってなんなんですか?
これが理解できません。
0181デフォルトの名無しさん
2013/04/27(土) 22:37:01.89その関数ではあまり意味がないよ
まずは簡単な階乗計算とかを見た方が良いと思うよ
0182デフォルトの名無しさん
2013/04/27(土) 23:06:11.23printfとかしてりゃ出力内容は変わるわな
そういう事してなけりゃ何も変わらない
再帰関数で戻り値の型がvoidなのは
そういう副作用を伴う場合しか意味が無い
階乗を求める関数を考えてみる
unsigned int factorial(unsigned int n)
{
if (n <= 1) {
return 1;
} else {
unsigned int tmp = factorial(n - 1);
return n * tmp;
}
}
factorial の再帰の前後で何か状態が変わるかと言うと、全く変わらない
状態は変わらないけど、新たに戻り値が得られる
戻り値は関数への引数が変われば異なる値になる
この関数は数式の
0! = 1
1! = 1
n! = n * (n-1)!
を素直にそのまま関数にしたもの
数式が理解できるならCのコードも理解できなければおかしい事に気付くこと
0183デフォルトの名無しさん
2013/04/27(土) 23:33:01.02組み込みで再帰は基本禁忌
0184デフォルトの名無しさん
2013/04/27(土) 23:39:11.080185デフォルトの名無しさん
2013/04/27(土) 23:59:21.68豪勢な環境もあるし
0186デフォルトの名無しさん
2013/04/28(日) 00:57:12.79理由は組み込みだから、としか言えないが
0187デフォルトの名無しさん
2013/04/28(日) 01:06:04.89まあ確かに入門書にはそう書いてあるな。
0188デフォルトの名無しさん
2013/04/28(日) 01:13:24.620189デフォルトの名無しさん
2013/04/28(日) 01:54:27.300190デフォルトの名無しさん
2013/04/28(日) 01:55:58.870191デフォルトの名無しさん
2013/04/28(日) 02:44:57.590192デフォルトの名無しさん
2013/04/28(日) 03:40:39.80順列(集合)=集合の各要素(但し同じ物は除く)と順列(残りの集合)
0193デフォルトの名無しさん
2013/04/28(日) 09:36:58.260194デフォルトの名無しさん
2013/04/28(日) 09:40:51.45多倍長演算ライブラリ使え
結果がunsigned long longに収まっているなら、正確にもとまる。
0195デフォルトの名無しさん
2013/04/28(日) 10:16:18.38#include <stdio.h>
long long gcd(long long a, long long b){
long long c;
while((c=a%b)) a=b, b=c;
return b;
}
void cdiv(long long *a, long long *b){
long long t;
t=gcd(*a, *b);
*a/=t;
*b/=t;
}
long long nCr(int n, int r){
long long u=1, l=1, mu, ml, i;
for(i=1;i<=r;i++){
mu=n-(i-1);
ml=i;
cdiv(&u, &ml);
cdiv(&l, &mu);
u*=mu;
l*=ml;
cdiv(&u, &l);
}
return u;
}
int main(void){
printf("%I64X\n", nCr(66, 33));
return 0;
}
0196デフォルトの名無しさん
2013/04/28(日) 10:20:39.77long long nCr(int n, int r){
long long u=1, mu, ml, i;
for(i=1;i<=r;i++){
mu=n-(i-1);
ml=i;
cdiv(&mu, &ml);
cdiv(&u, &ml);
u*=mu;
}
return u;
}
大丈夫
あるとき回路が通じて、それ以降は再帰で**しか**書けない体に変身します‥‥多分幸せになれると思います、いやしあわせになれるかな、なれるかもしれない、なれるかどうかわからないけれどもふしあわせじゃないとおもいこめることはたしかだ、たしかか?
ダイナミックに確保も禁忌、というのは、ある意味すごいですね。確かに安産性は向上するような気がしますけれども。
アマチュアには想像すらできない世界なんでしょうね
0199デフォルトの名無しさん
2013/04/28(日) 11:57:02.08×片腹痛し
○傍痛し
0201デフォルトの名無しさん
2013/04/28(日) 12:05:59.27プログラムだけでなくて国語まで出来ないのか
0202デフォルトの名無しさん
2013/04/28(日) 12:07:00.02しかも揚げ足取りになってなくて墓穴を掘ってるし
0203デフォルトの名無しさん
2013/04/28(日) 12:18:27.56×片腹痛し
○傍痛し
言葉の意味を十分にappreciateしてないからこんな間違いをする
0204デフォルトの名無しさん
2013/04/28(日) 12:20:09.02まとめて隔離スレへ引っ込め
0205デフォルトの名無しさん
2013/04/28(日) 12:34:46.80だからどっちでも同じ意味なんだって
日本語分からない?
0206デフォルトの名無しさん
2013/04/28(日) 12:43:46.35ごめん
0207デフォルトの名無しさん
2013/04/28(日) 12:45:27.14通例がそうだから、という理由だけで先人の間違いを無批判にそのまま踏襲してしかもそのことに無自覚‥‥
0208デフォルトの名無しさん
2013/04/28(日) 13:04:37.01早く生まれたからと言って無条件に尊敬してもらえると思ってる馬鹿?
通例がそうだからそれでいいじゃん
頭大丈夫?なわけないか
精神科行ってるんだもんな
0209デフォルトの名無しさん
2013/04/28(日) 13:32:46.190210デフォルトの名無しさん
2013/04/28(日) 14:04:09.94だから精神科行って薬飲んでるんじゃね?
0211デフォルトの名無しさん
2013/04/28(日) 15:41:08.48毎回同じことしか書いてなくて面白いよね。
0212デフォルトの名無しさん
2013/04/28(日) 15:45:40.99そりゃあ頭が悪いボキャブラリーが少ない同一人物が書いてるからだろう
0213デフォルトの名無しさん
2013/04/28(日) 15:50:35.670214デフォルトの名無しさん
2013/04/28(日) 16:11:55.35そうなると勉強の途中で自分自身に大きな精神の歪みがある事を嫌でも自覚せざるを
得ない時期が訪れる
それを乗り越えて初めて精神医学が身に付くのだが、恐らくQには無理で、途中で
逃げ出すだろう事が火を見るより明らかだ
0215デフォルトの名無しさん
2013/04/28(日) 16:18:16.01if (!msg) return -1;
if (!(msg[0])) return -1;
0216デフォルトの名無しさん
2013/04/28(日) 16:20:07.71要る
0217デフォルトの名無しさん
2013/04/28(日) 16:24:14.65ありがとうございます
0218デフォルトの名無しさん
2013/04/28(日) 16:38:34.940219デフォルトの名無しさん
2013/04/28(日) 17:46:13.21msgがポインタか配列かわからないのでどちらでも対応可能にする。
1行目はmsgがNULLポインタだったら-1を返す。
2行目はmsgが仮に配列であっても要素0の値が0なら-1を返す。
0220デフォルトの名無しさん
2013/04/28(日) 18:50:57.030221デフォルトの名無しさん
2013/04/28(日) 20:50:01.43なるほど、解説ありがとうございました。
0222デフォルトの名無しさん
2013/04/28(日) 23:13:52.481行目いらなくね?
0223デフォルトの名無しさん
2013/04/28(日) 23:16:52.33ん?組み込みはスタックサイズ小さいからメモリ確保は、基本ヒープをつかうときいたことがあるのだけど勘違いか?
昔のcomを作るイメージ
0224デフォルトの名無しさん
2013/04/28(日) 23:17:07.31msg == NULL だと二行目で落ちる
0225デフォルトの名無しさん
2013/04/28(日) 23:18:22.51いやいやヒープとスタックが衝突するのが怖い(そしてこれを厳密に回避することは困難だ)からヒープすら使わずにべったりstaticなのでは?
0226デフォルトの名無しさん
2013/04/28(日) 23:32:42.68msg[0] != 0だったら、msg==NULLってあり得ないかと
>>223
基本ヒープ使っちゃダメだよ
昔のメモリ事情だとどうだったんだろうか
0227デフォルトの名無しさん
2013/04/28(日) 23:56:06.840228デフォルトの名無しさん
2013/04/29(月) 00:16:49.37NULL番地のデータが0でないのがあり得るあり得ないの問題じゃなくて
NULL番地のデータを読み出そうとした時点でOSに落とされるからチェックが要るのよ
0229デフォルトの名無しさん
2013/04/29(月) 00:24:21.72パンツ脱ぐのとうんこ出すのと
順序間違えると大変なことに
0230デフォルトの名無しさん
2013/04/29(月) 01:12:09.61ああ、そういうことね
組み込みだと普通に0番地使うから、分からんかったわ
0231デフォルトの名無しさん
2013/04/29(月) 02:04:05.88問題のコードではmsgがNULLポインタだったらリターンしてしまうから
2行目が実行されることはあり得ない。
0232デフォルトの名無しさん
2013/04/29(月) 02:44:38.79msgがchar配列、ポインタが32bitの場合で、msg[0]==0でmsg[1]〜[3]のどれかに0以外が入ってるなら2行目行くんじゃね
0233デフォルトの名無しさん
2013/04/29(月) 07:59:37.32その問題のコードの1行目が要らなくねってレスがあったから説明したんよ
0234デフォルトの名無しさん
2013/04/29(月) 12:47:06.15ヒープ使っちゃいけなかったのか。
覚えとく、ありがとう
0235デフォルトの名無しさん
2013/04/29(月) 20:52:06.60ばっかみたいw
0236デフォルトの名無しさん
2013/04/30(火) 08:37:47.670237デフォルトの名無しさん
2013/04/30(火) 20:06:32.530238デフォルトの名無しさん
2013/04/30(火) 21:00:28.73いきなりわけわかんないレスをするな
0239デフォルトの名無しさん
2013/05/01(水) 03:30:10.770240デフォルトの名無しさん
2013/05/01(水) 13:09:29.46これって、f(x)とg(y)のどっちが先に実行されるかって
仕様で決まってたっけ? それとも不定?
0241デフォルトの名無しさん
2013/05/01(水) 13:18:02.560242デフォルトの名無しさん
2013/05/01(水) 14:53:33.390243デフォルトの名無しさん
2013/05/01(水) 14:54:27.12ここ最近このスレで不正に宿題と思わしき質問が投下されたので注意が必要
監視を続ける
0244デフォルトの名無しさん
2013/05/01(水) 14:58:04.04にはこのコピペが最適↓
ネットでののQ&A見たら、何も勉強してこなかった
日本人の絶望的なほど劣悪なレベルを見せ付けられる想いだ。
質問者の意図も理解できないし、理解する姿勢に欠ける。
自分で確かめもしないで、思いつきで断片だけを回答する。
質問者も自分で解決したら、なにも示さず解決したという
コメントで終了する。
甘やかされて低脳さを遺憾なく発揮している。もう理系も絶望
的だから文系はどうかと思へば、悲惨のひとことだ。
もう日本の大学を折りたためよ文部省。
こういう自分でプログラミング言語を開発する極一部の有能な若者が、
浮いてただ利用されるだけで本当に気の毒だね。
0245デフォルトの名無しさん
2013/05/01(水) 15:30:02.88どうやってみればいいでしょう?
gcc -S test.cだとアセンブラソースが作られてみれるんですがソースだけで肝心のトレース部分をみることができません
eipやebpやスタックの動きを見れるやり方教えてください
Windows7です
0246デフォルトの名無しさん
2013/05/01(水) 15:36:57.37>教えてください
情報に見あった金額が提示されてないのに誰が答えるの?
0247デフォルトの名無しさん
2013/05/01(水) 15:52:40.25Eclipse CDT入れろ
デバッガで見れる
>>246
カス
0248はちみつ餃子 ◆8X2XSCHEME
2013/05/01(水) 15:53:37.24インラインアセンブラで書いても gcc は最適化しちゃうんで、
最適化をオフにするか volatile 指定を付けるのが楽。
プログラム的に必要っていうのではなく、挙動を観察したいという場合ならデバッガを使った方がいいと思う。
gcc と連携しやすいデバッガと言えば gdb だけど Windows なら OllyDBG か Immunity Debugger が人気。
0249245
2013/05/01(水) 16:07:48.38わざわざElipseなんていらねーよバカが死ね
>>248
やっぱりgdbですか
インラインアセンブラはダサいのでデバッガのほうにしてみます
0250デフォルトの名無しさん
2013/05/01(水) 16:09:44.62レジスタ と読んでの前提
まさかデバッガを作りたい って話じゃないよな?
0251デフォルトの名無しさん
2013/05/01(水) 16:14:41.280252デフォルトの名無しさん
2013/05/01(水) 16:34:30.420253デフォルトの名無しさん
2013/05/01(水) 17:28:19.21いや、馬鹿すぎて笑えないレベル
0254デフォルトの名無しさん
2013/05/01(水) 18:50:20.97高いから数買えないんです。・°°・(>_<)・°°・。
0255デフォルトの名無しさん
2013/05/01(水) 19:00:49.86leaveっていう命令でてこずってます
leaveって
mov esp,ebp
pop ebp
これと等価らしいんですが
gdbでトレースしてleaveをsiで実行してespを見たけどebpの値になりません
ebp=0xbffff4e8
esp=0xbffff4b8
leaveをやったら espはebpの0xbffff4e8になるはずですが
espは0xbffff4ecになります
何故ですか?教えてください
0256デフォルトの名無しさん
2013/05/01(水) 19:14:02.44遅いだけ
0257デフォルトの名無しさん
2013/05/01(水) 19:16:31.230258デフォルトの名無しさん
2013/05/01(水) 19:17:59.00popする前に代入してますよね?バカ?
0259デフォルトの名無しさん
2013/05/01(水) 19:21:15.430260デフォルトの名無しさん
2013/05/01(水) 19:23:40.28だから、代入してからpopしてるから
popでずれてんだろw
0261デフォルトの名無しさん
2013/05/01(水) 19:49:44.54未知のフォーマットで書かれたものに対して
中身を調べて=バイナリの並びから 型に合ってるかどうかを知る術がない
0262デフォルトの名無しさん
2013/05/01(水) 20:25:49.04ありがとう
不定であってたのね
0263デフォルトの名無しさん
2013/05/01(水) 20:30:09.06esp=0xbffff4ec ebp=0xbffff508
コード
push %ebp 実行時
esp=0xbffff4e8 ebp=0xbffff508 スタックに0xbffff508
mov %esp,%ebp 実行時
esp=0xbffff4e8 esp=0xbffff4e8 スタックに0xbffff508
sub $0x30,$esp 実行時
esp=0xbffff4b8 esp=0xbffff4e8 スタックに0xbffff508
0264デフォルトの名無しさん
2013/05/01(水) 20:30:25.46バカ
0265デフォルトの名無しさん
2013/05/01(水) 20:32:24.66途中からebpが行方不明になってるぞ
0266デフォルトの名無しさん
2013/05/01(水) 20:38:27.453.5のパラグラフ3〜4と7.1.1のパラグラフ8を総合した結果だろうな
分かりづらいけど、例もあるし、少なくとも間違いはない
0267デフォルトの名無しさん
2013/05/01(水) 20:38:43.59leave 実行時
esp=0xbffff4ec ebp=0xbffff508
leaveの命令
mov esp,ebp
pop ebp
ebpをespにやるんだから espは0xbffff4e8になるはず 代入してる
popで最初にpushしておいたebpを取り出して ebpは0xbffff508であってるけど
espがなんでcall時の0xbffff4ecになる?
0268266
2013/05/01(水) 20:40:29.430269デフォルトの名無しさん
2013/05/01(水) 20:42:12.930270デフォルトの名無しさん
2013/05/01(水) 20:43:29.12popしたらスタックポインタが動くのは当たり前だろ
popが何をするものか分かってるか?
というかスレ違いだ
0271デフォルトの名無しさん
2013/05/01(水) 20:48:35.19やっとわかった
espがスタックの末尾にあってプッシュやポップにあわせて常に変化するってことをわすれてた
だからpopしたときプッシュ前のアドレスになったわけね
0272デフォルトの名無しさん
2013/05/01(水) 20:50:25.84って言ってやるべきだろ
0273デフォルトの名無しさん
2013/05/01(水) 22:03:20.07このpushされたebpアドレスはどこでみれんの?
info fってやっても表示されないけど
0274デフォルトの名無しさん
2013/05/01(水) 22:04:22.71このpushされたebpアドレスが保存されてるスタックって
縦長に見る方法ない?
こんなふうに
+++++++++++
ESP + 戻り値 +
+++++++++++
+ one +
+++++++++++
+ two +
+++++++++++
+ three +
+++++++++++
EBP + 基底 +
+++++++++++
0275デフォルトの名無しさん
2013/05/01(水) 22:17:43.800276デフォルトの名無しさん
2013/05/01(水) 22:22:57.850277デフォルトの名無しさん
2013/05/01(水) 23:35:55.72saved eip(戻り値アドレス)は表示されるけど
push %ebpが表示されない
プッシュされたものが表示できたら便利なのに表示できねーのか?クソだな
0278デフォルトの名無しさん
2013/05/02(木) 02:55:13.74ここでやってればCしか出来ない奴にスゲーって思わせられるからいいんだよ
俺はずっとここにいるぜ
0279デフォルトの名無しさん
2013/05/02(木) 04:09:08.75https://twitter.com/TreeBoa2/status/329628271329296385/photo/1
0280デフォルトの名無しさん
2013/05/02(木) 09:38:26.940281デフォルトの名無しさん
2013/05/02(木) 13:44:19.46以下のようにすると初期化されないので
void *myfree(void *p)
{
free(p);
p=NULL;
return;
}
仕方なく以下のようにNULLを返してますが、p = myfree(p)のようになり美しくありません
もっとスマートな方法はないでしょうか?
void *myfree(void *p)
{
free(p);
return NULL;
}
0282デフォルトの名無しさん
2013/05/02(木) 13:55:17.87#include<stdio.h>
#include<stdlib.h>
void *myfree(void **p)
{
free(*p);
*p = NULL;
return NULL;
}
int main()
{
char *p = (char *) malloc(123);
printf("%p\n", p);
p = myfree((void **) &p);
printf("%p\n", p);
return 0;
}
0283デフォルトの名無しさん
2013/05/02(木) 13:55:31.38void myfree(void** pp)
0284デフォルトの名無しさん
2013/05/02(木) 13:55:55.12{
free(*p); *p = NULL;
}
呼び出しで &付きになるからキショイ
0285デフォルトの名無しさん
2013/05/02(木) 13:58:33.76#include<stdio.h>
#include<stdlib.h>
void myfree(void **p)
{
free(*p);
*p = NULL;
}
int main()
{
char *p = (char *) malloc(123);
printf("%p\n", p);
myfree((void **) &p);
printf("%p\n", p);
return 0;
}
キショいね
0286デフォルトの名無しさん
2013/05/02(木) 14:04:25.21#define MY_FREE(p) do { free(p); p = NULL; } while (0)
これも賛否ありそう
0287デフォルトの名無しさん
2013/05/02(木) 14:17:53.43規格上はダメ、ゼッタイ
voidポインタとそれ以外のポインタは互換性が保証されないので
あー、でも、charポインタと構造体共用体ポインタは互換性があったっけ?
まあ結局intポインタとかはだめだけど
だから、Cならマクロにするしかない
C++ならテンプレートにできるけど
0288デフォルトの名無しさん
2013/05/02(木) 14:33:07.570289デフォルトの名無しさん
2013/05/02(木) 14:37:51.26>仕方なく以下のようにNULLを返してますが、p = myfree(p)のようになり美しくありません
>もっとスマートな方法はないでしょうか?
って話なので、その案は微妙な線?かな?
0290281
2013/05/02(木) 14:49:28.70&でポインタへのポインタを使う方法は、自分の環境ではコンパイルエラーになりました
(エラーの正確な内容は失念しましたが、構造体のサイズが不確定というエラーだったような)
関数に渡す時に(void **) でキャストすればエラーが消えるのでしょうか。
しかし>>287さんによると規格上ダメとのことなのでやめておきます
>>288さんの方法は初見でしたが、ポインタ名を二回記述するやり方はポインタ名が長い場合に不便なので1回にしたいのです
マクロを使う方法が一番よさそうなので、試してみます
どうもありがとうございます
0291デフォルトの名無しさん
2013/05/02(木) 15:01:42.150292デフォルトの名無しさん
2013/05/02(木) 15:07:24.15アホはだまっとけ
http://www.kouno.jp/home/c_faq/c5/html#17
0293デフォルトの名無しさん
2013/05/02(木) 15:11:10.51http://www.kouno.jp/home/c_faq/c5.html#17
0294デフォルトの名無しさん
2013/05/02(木) 15:19:56.16やっぱゴミはゴミだな
0295デフォルトの名無しさん
2013/05/02(木) 15:30:43.47それができていないってことはプログラミングやる資格はないよ。
そしてそんな奴が調子に乗って回答してる。
>>292-293はこのスレのレベルがいかに低いかを身をもって示してくれている。
それでもまだここで質問するのはまともじゃないよ。
0296デフォルトの名無しさん
2013/05/02(木) 15:31:44.230297デフォルトの名無しさん
2013/05/02(木) 15:42:30.38マでなくとも人間なら普通おおかた>>292は池沼か社会経験のないニートか学生風情
0298デフォルトの名無しさん
2013/05/02(木) 16:16:54.810299デフォルトの名無しさん
2013/05/02(木) 16:20:21.38えっ
0300デフォルトの名無しさん
2013/05/02(木) 16:20:47.84携帯とかからわざわざ手打ちで貼ってんの?
0301デフォルトの名無しさん
2013/05/02(木) 16:28:55.60俺も思ったw
何をどうしたら間違えるんだろうなw
0302デフォルトの名無しさん
2013/05/02(木) 16:29:17.63それ以前にいちいちfreeすること自体が、設計ができない証。
0303デフォルトの名無しさん
2013/05/02(木) 16:30:23.01察しろ
0304デフォルトの名無しさん
2013/05/02(木) 16:34:15.61いやいやfree()はするだろ。
free()のあとに機械的にNULLクリアするってスタイルはヘタクソ。
0305デフォルトの名無しさん
2013/05/02(木) 16:41:17.41言動からしてレベルの低さが窺えるからスルーしかされないだろうに
0306デフォルトの名無しさん
2013/05/02(木) 16:44:30.84獲得したメモリをいちいち解放するなんて、
自分でメモリが管理できていない証拠じゃん。
設計ができていれば必要なメモリ量もわかるので
獲得した後解放するなんてありえない。
0307デフォルトの名無しさん
2013/05/02(木) 16:46:51.580308デフォルトの名無しさん
2013/05/02(木) 16:51:26.180309デフォルトの名無しさん
2013/05/02(木) 16:53:40.79やっぱりそうか
ケータイから手打ちしてまで書き込みたいとか
>>292は自己顕示欲の塊かよw
0310デフォルトの名無しさん
2013/05/02(木) 16:54:07.62free()のあとにNULLクリアをするって規則のコーディング。
0311デフォルトの名無しさん
2013/05/02(木) 16:58:36.89でも、全うな製品ならそれでもNULLクリアするのが普通だけど
0312デフォルトの名無しさん
2013/05/02(木) 17:01:44.360313デフォルトの名無しさん
2013/05/02(木) 17:03:09.21たぶん実際的な効果はなにも無いんじゃないのかね > NULLクリア
0314デフォルトの名無しさん
2013/05/02(木) 17:05:05.470315デフォルトの名無しさん
2013/05/02(木) 17:09:05.01NULL埋めしない人は経験上他も大体いい加減
0316デフォルトの名無しさん
2013/05/02(木) 17:15:52.650317デフォルトの名無しさん
2013/05/02(木) 17:16:27.830318デフォルトの名無しさん
2013/05/02(木) 17:18:55.52よくあるテクニックだよ。TLV式のプロトコル実装とか、当たり前のように
使ってるよね。
0319デフォルトの名無しさん
2013/05/02(木) 17:19:47.12nullクリアなんていらないけど
まだ使う気があるならnull入れておくかな
なんかバグったときにassertにひっかかってくれる
0320デフォルトの名無しさん
2013/05/02(木) 17:19:49.180321デフォルトの名無しさん
2013/05/02(木) 17:20:59.00ミスを根本的になくすことと同時に
ミスったときにそれを確実に拾えること
可能なら対処する(ごまかす)のは別の話だね
0322デフォルトの名無しさん
2013/05/02(木) 17:22:15.95そういう話じゃなくて、ルールで機械的に、処理とか文脈とか関係なしにNULLクリアしましょうってのが是か非かって話。
0323デフォルトの名無しさん
2013/05/02(木) 17:26:44.74そんなの、その場の空気と宗教に従え、以上の答えあるの?
答えが分かったうえで議論の練習したい人とかfj.lang.cごっこしたい人は
別のスレでやってね。ぜんぜん入門編じゃないからね。
0324デフォルトの名無しさん
2013/05/02(木) 17:29:30.17逃げたwww
0325デフォルトの名無しさん
2013/05/02(木) 17:37:47.56是でいいと思うよ
ふつうにうしろに処理足される可能性あるし
なによりnull入れて困ることはないってのが
でかい
0326デフォルトの名無しさん
2013/05/02(木) 17:41:27.29ポインタを別変数にコピーしてたテヘッ 用だね
0327デフォルトの名無しさん
2013/05/02(木) 18:00:02.460328デフォルトの名無しさん
2013/05/02(木) 18:02:04.79それは頭悪いですね
0329デフォルトの名無しさん
2013/05/02(木) 18:10:30.05NULLを入れる場合→参照するとほぼ死ぬ
どちらがミスった時に誤魔化すことを優先しているかは一目瞭然
NULLを入れない方だ
NULLを入れない人は想像力が貧困で、プログラムには向いていない
0330デフォルトの名無しさん
2013/05/02(木) 18:18:09.460331デフォルトの名無しさん
2013/05/02(木) 18:19:04.700332デフォルトの名無しさん
2013/05/02(木) 18:19:49.13自信がないからバグを必要以上に恐れている。
典型的似非プログラマの特徴。
0333デフォルトの名無しさん
2013/05/02(木) 18:21:03.750334デフォルトの名無しさん
2013/05/02(木) 18:21:44.38組み込みの世界ではそれが当たり前なことも珍しくない。
malloc/freeがあるとは限らない。
0335デフォルトの名無しさん
2013/05/02(木) 18:22:56.610336デフォルトの名無しさん
2013/05/02(木) 18:24:05.60プログラマが自分を信用しないのなんて常識じゃない
0337デフォルトの名無しさん
2013/05/02(木) 18:25:46.63プログラムが落ちないと品質を保証できないクズプログラマの典型。
0338デフォルトの名無しさん
2013/05/02(木) 18:28:05.34いちいちNULL入れる人って、mtraceとか使ってきちんとテストしたことないんだろうな、って思う。
0339デフォルトの名無しさん
2013/05/02(木) 18:30:04.45とうとう支離滅裂になったか
論理性の欠片もない
プログラマの資格もない
0340デフォルトの名無しさん
2013/05/02(木) 18:30:29.65プログラムが落ちることを前提にバグとりをする人って、
落ちないバグとりどうしてるの?
NULLだろうがNULLでなかろうが、参照すること自体がバグなのだから
落ちる落ちないってのは、楽をする方法なのであって、品質を確保する
方法でないってのはわかるよね?
0341デフォルトの名無しさん
2013/05/02(木) 18:37:46.77ただのフェイルセーフに何言ってんの?
何かあった時に検出できるというだけで、
基本お世話にならないようにプログラムするに決まってんじゃん
0342デフォルトの名無しさん
2013/05/02(木) 18:45:53.77ただ、NULLを入れた方がバグの検出確率が上がるしデバッグのしやすさも微増するから入れるってだけ
逆に聞くけど、入れないメリットって何よ
0343デフォルトの名無しさん
2013/05/02(木) 18:49:20.40空気嫁コミュ障が
0344デフォルトの名無しさん
2013/05/02(木) 18:51:56.160345デフォルトの名無しさん
2013/05/02(木) 18:57:50.08わざわざNULL入れる無駄な処理書いてる奴は給料泥棒
そんなくだらないことに時間使ってザンギョウガーデスマガー
0346デフォルトの名無しさん
2013/05/02(木) 19:03:13.400347デフォルトの名無しさん
2013/05/02(木) 19:05:22.28どんどん追い詰められていきますなぁw
0348デフォルトの名無しさん
2013/05/02(木) 19:12:10.55さっさと死ぬことだなゴミは
0349デフォルトの名無しさん
2013/05/02(木) 19:19:50.57通報した方がいいのかな?
0350デフォルトの名無しさん
2013/05/02(木) 19:24:55.44入れないメリットなんてないですよね。デバッグが少しでも楽になるのであれば、それが微増あっても入れておきます。いろいろ手を打ってお世話にならないようには心がけますけれどもね。
入れない人って、デバッグでのたうち回ったことのない人なんじゃないかなあ‥‥‥
>>290
>しかし>>287さんによると規格上ダメとのことなのでやめておきます
そんな規格はないと思います。void * から任意のポインタへの代入は、 C であればキャストなしに可能です。
また、自分が何をしているかわかっているのであれば、非void * をキャストして void * に代入することは、よくある手法です。
qsort() を調べてみてください。
>構造体のサイズが不確定というエラーだったような
void * をインクリメントしたりするのは、あまり行儀のよくない、とは C++エキスパートからはよく伺います。ただ、
>>287
C ならば、void * は char * と互換性がある。構造体のポインタが交換可能云々は、要はアラインメントの問題だね。
ISO/IEC 9899:1999 6.2.5.26
A pointer to void shall have the same representation and alignment requirements as a
pointer to a character type.(以下続くが略)
貴様は http://toro.2ch.net/test/read.cgi/tech/1313183984/ で勉強したまえ。:-)
0352デフォルトの名無しさん
2013/05/02(木) 19:47:19.73ジョブズはゲイツの次にすごいと思うよ、ITの先端ではね、
だけど自分の会社を、自分がいなくなった後でも存続できるように体制を整えたり、後継者を育てたりってことはできなかったよね
一番起業してはいけないタイプの人間
それじゃ残された社員や株主が可哀想
ゲイツはその点しっかりしている、生きてるうちに身を引いた
これはゲイツがすごいわけじゃなくて当たり前
その当たり前のことができず、チヤホヤされたいがために後継者育てずに新機種連発するゴミクズがジョブズ
技術やアイデアがすごくても残された人間の生活を考えない辺りクズすぎる
総合評価としては世の中に要らないゴミだったよねw
0353デフォルトの名無しさん
2013/05/02(木) 19:49:37.520354デフォルトの名無しさん
2013/05/02(木) 19:51:06.68今はvoid**の話だっつーの!
例えば、int*が4バイトでvoid*が8バイトの時に
int *p;
*(void**)&p = 0;
としたらどうなるか考えれ
>int*が4バイトでvoid*が8バイトの時に
far/near を思い出しますねえ :−)
int far * near * とか奇天烈なことをやっていた記憶があります‥‥‥すまん
0356デフォルトの名無しさん
2013/05/02(木) 20:01:59.86終わったな。
「ピークから35%下落したアップル株価」の背景
http://sankei.jp.msn.com/wired/news/130425/wir13042517450001-n1.htm
>デルの現在の価値のおよそ12倍が消え失せた
こんなに企業価値の目減りする企業なんて見たことない。
もう実際のところ瀕死なんじゃね。
他社のandroidをみると、サイズが大きすぎて片手に入らなくて使いにくそう‥‥
iphone を応援したいなあ、なにか支援する方法はないものか‥‥
obj-C ってむずかしいのですか?
0358デフォルトの名無しさん
2013/05/02(木) 20:27:04.290359デフォルトの名無しさん
2013/05/02(木) 20:45:40.86このクソコテwww
何も成長してねーんだなwww
0360デフォルトの名無しさん
2013/05/02(木) 20:55:56.040361デフォルトの名無しさん
2013/05/02(木) 20:57:36.90馬鹿
基地害
池沼
低能
情弱
阿呆
0362デフォルトの名無しさん
2013/05/02(木) 21:51:57.62あと、
お行儀の話でいえば、使い終わったバッファは0クリアしておくなんてのもあるなぁ。
(ヒープだけじゃなく、スタックも対象)
最近はそんなことやってないけどw
本来、秘密情報に対してはやっておかないとまずい。
0363デフォルトの名無しさん
2013/05/02(木) 21:52:21.590364デフォルトの名無しさん
2013/05/02(木) 22:06:54.54ここでうまくrootになれません
shに変わるんですが
試行錯誤してます
0365デフォルトの名無しさん
2013/05/02(木) 22:44:56.56suid権限あたえてなかたあああああああああああ
0366デフォルトの名無しさん
2013/05/03(金) 02:15:00.28おまえ単に気にくわねぇだけだろw
専門板に感情論は不要なんだが
0367デフォルトの名無しさん
2013/05/03(金) 04:06:53.570368デフォルトの名無しさん
2013/05/03(金) 04:55:58.67うるさいゴミ
0369デフォルトの名無しさん
2013/05/03(金) 11:46:29.37ゲーム用にある整数域の間でランダムな値を取りたくて、
関数を作っていたんですがなぜか返り値が固定されやがります。
しかもどの乱数に固定されているのか調べようとprintf仕込んだら、
今度は問題なく動いてくれちゃったりしてちんぷんかんぷんです。
できれば返り値を固定したくないのですが、どのようにしたらよいでしょうか?
以下、同じ状況を再現したコード。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int getrandom(int min,int max)
{
//printf("%d\n" , rand()); /* ←ここのコメントはずすと乱数が固定されない */
return ( min + (int)( (rand()/(1.0+RAND_MAX)) * (((double)(max-min)+1.0) ) ) );
}
int main(void) {
srand((unsigned int)time(NULL));
int x = getrandom(0,6);
printf("%d\n" , x);
return 0;
}
0370デフォルトの名無しさん
2013/05/03(金) 12:10:49.78書いてない部分のコードでメモリ破壊系のコーディングミスがあるとのエスパーでFA
0371デフォルトの名無しさん
2013/05/03(金) 12:15:11.79乱数種があまり変わらないので、
最初に出てくる乱数にもあまり差がないようだね
線形合同法の乗数が小さいんだと思う
だから、余りを使用する方式だと大丈夫だけど、
1+RAND_MAXで割る方式だとほぼ同じ値になるようだ
最初に数回rand()を呼ぶようにするといいよ
ウォームアップってやつ
0372デフォルトの名無しさん
2013/05/03(金) 13:00:40.64実は2種類くらい実行環境を用意して、
このコードそのまんま試してもダメだったんです・・・orz
>>371
ためしにrand()2回呼び出してみたら乱数の固定がなくなりました。
ウォームアップという発想が無かったので大変助かりました。
ありがとうごさいます。
0373デフォルトの名無しさん
2013/05/03(金) 13:08:28.68メルセ○○ツイスターとかいうのでいいんでは。
0374デフォルトの名無しさん
2013/05/03(金) 13:21:55.66こういう所で適当なのを拾うのも手だよ
0375デフォルトの名無しさん
2013/05/03(金) 13:53:57.300376デフォルトの名無しさん
2013/05/03(金) 14:05:46.60お前がクズ
引っ込んでろ
0377デフォルトの名無しさん
2013/05/03(金) 14:06:01.89間違えた
お前がクズ
0378デフォルトの名無しさん
2013/05/03(金) 14:29:34.45おがクズ
0379デフォルトの名無しさん
2013/05/03(金) 14:30:54.980380デフォルトの名無しさん
2013/05/03(金) 15:11:48.44それをすり抜けたとき用だろ
0381デフォルトの名無しさん
2013/05/03(金) 15:21:42.710382デフォルトの名無しさん
2013/05/03(金) 15:43:04.630383デフォルトの名無しさん
2013/05/03(金) 15:53:14.250384デフォルトの名無しさん
2013/05/03(金) 15:56:23.04悔しかったの?
0385デフォルトの名無しさん
2013/05/03(金) 16:04:33.590386デフォルトの名無しさん
2013/05/03(金) 16:21:09.55コピー先 buffer[500]
コピー元(argv[1]) 600バイト(NOP,シェルコード,偽の戻り値)
strcpy(buffer,argv[1]);
buffer
sfp
RET
になりbufferが600バイト分超過してsfp,RETが書き換えられますよね?
書き換えられたらどうなるんでしょうか?bufferの一番上からアドレスの中身を実行していくのでしょうか?教えてください
0387デフォルトの名無しさん
2013/05/03(金) 16:25:41.11どうなるかを知りたいならやってみればいい。
0388デフォルトの名無しさん
2013/05/03(金) 16:27:00.23nopスロープとかウイルス作る気満々じゃねーか
誰が答えてやるか通報すんぞ
0389デフォルトの名無しさん
2013/05/03(金) 16:31:59.160390デフォルトの名無しさん
2013/05/03(金) 16:36:27.890391デフォルトの名無しさん
2013/05/03(金) 18:51:05.77コンパイルオプションで外せなかったっけか
0392デフォルトの名無しさん
2013/05/03(金) 18:53:50.31そうすれば戻ったときアドレスが指してるNOPを実行してシェルコードにたどり着くんでした
0393デフォルトの名無しさん
2013/05/03(金) 19:39:07.01ブログでやれ池沼
0394デフォルトの名無しさん
2013/05/03(金) 20:37:16.76そもそもこんなこと聞いている>>392もあれだが。
0395デフォルトの名無しさん
2013/05/03(金) 20:52:13.360396デフォルトの名無しさん
2013/05/03(金) 23:07:08.80>使い終わったバッファは0クリアしておくなんてのもあるなぁ。(ヒープだけじゃなく、スタックも対象)
厳密なんですね‥‥輪廻転生されるとやっかいですからね‥‥私は乱数で埋めていました‥‥これはあんまり役にたちそうにないなぁ
0397デフォルトの名無しさん
2013/05/04(土) 00:57:03.09板違いだぞ。
自己紹介は自己紹介板でどうぞ。
0398デフォルトの名無しさん
2013/05/04(土) 02:01:04.970399デフォルトの名無しさん
2013/05/04(土) 03:46:03.16DEPはコントロールパネルの設定だからコンパイルオプションでは
回避不可能。DEPはXP SP2以降(SP3だったかも)に搭載されていて
デフォルトではWindowsの重要なサービスに対してのみ有効。
間抜けな(といっては失礼だが)ユーザのほとんどはDEPの設定など
知らないから、デフォルトのままで使っているはず。そういう間抜けを
出し抜くウィルスぐらいなら作れるだろう。
0400デフォルトの名無しさん
2013/05/04(土) 08:57:32.490401デフォルトの名無しさん
2013/05/04(土) 18:57:22.47下記のra->width、ra->heightの値は定義していないように見えるのですが
いったいいつ定義しているのでしょうか?
typedef struct{
int width;
int height;
} rectangle;
int compare_areas(const void* a, const void* b)
{
rectangle* ra = (rectangle*)a;
rectangle* rb = (rectangle*)b;
int area_a = ra->width * ra->height;
int area_b = rb->width * rb->height;
return area_a - area_b;
}
int main()
{
int i;
int scores[] = {543, 323, 32, 554, 11, 3, 112};
qsort(scores, 7, sizeof(int), compare_areas);
return 0;
}
0402デフォルトの名無しさん
2013/05/04(土) 19:03:56.63rectangle* rb = (rectangle*)b;
ここで既に宣言してる
0403デフォルトの名無しさん
2013/05/04(土) 19:31:09.06何か変なコードだな。
なんで compare_areas(); は int の配列の要素のアドレスを受け取って
それを rectangle と判断して処理しているのだろうか
0404デフォルトの名無しさん
2013/05/04(土) 19:34:56.61ありえんだろこのコードは
写し間違いじゃないのか?
0405401
2013/05/04(土) 19:43:24.86返信ありがとうございます。
写し間違いではありません。
内容としては「矩形を面積の小さい順にソートする」というものです。(P330)
あまり良いコードではないようなのでスルーして次に進もうと思います。
0406デフォルトの名無しさん
2013/05/04(土) 19:57:23.12Cで書かれたものって「良いコード」ばかりじゃないので、
一応は読み解けるようになっといた方がいいとは思う。
0407デフォルトの名無しさん
2013/05/04(土) 19:59:23.280408デフォルトの名無しさん
2013/05/04(土) 19:59:55.30読み解いた結果は
書いた奴バカ
0409デフォルトの名無しさん
2013/05/04(土) 20:22:40.73読
書
↑こいつつまんね悪読書ってなんだよ
0410デフォルトの名無しさん
2013/05/04(土) 20:23:15.02printf("%d\n",0xbffff508);
こんな感じでアドレスを指定して中身を出力させたいんですが・・・
0411デフォルトの名無しさん
2013/05/04(土) 20:27:02.54でした・・・事故解決しました
0412デフォルトの名無しさん
2013/05/04(土) 21:08:42.75↑
何でこの基地害はブログと2chの区別すらつかないんだろうな
0413デフォルトの名無しさん
2013/05/04(土) 21:10:37.46http://jbbs.livedoor.jp/bbs/read.cgi/computer/43761/1367197701/l100
0414デフォルトの名無しさん
2013/05/04(土) 21:12:46.73お前こそ一言余計
黙ってられない病気か?
0415デフォルトの名無しさん
2013/05/04(土) 21:20:42.880416デフォルトの名無しさん
2013/05/04(土) 21:25:32.39さっさと死ねよゴミ
死んだほうがいいですよ
楽になりますよ
0417デフォルトの名無しさん
2013/05/04(土) 21:34:07.82触らぬキチガイに祟りなし
0418デフォルトの名無しさん
2013/05/04(土) 22:38:55.12丸投げよりよっぽどいい
0419デフォルトの名無しさん
2013/05/05(日) 00:44:37.510420デフォルトの名無しさん
2013/05/05(日) 00:52:13.69とりあえず質問する癖がある雑魚
0421デフォルトの名無しさん
2013/05/05(日) 02:19:05.170422デフォルトの名無しさん
2013/05/05(日) 02:32:14.010423デフォルトの名無しさん
2013/05/05(日) 04:59:02.98/\___/\
/ ⌒ 俺 ⌒ ;\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| (●), 、(●)、 | | キンタマ中古C言語命!!”
⊂. | ,,ノ(、_, )ヽ、,, | < 今日もキンタマ中古C言語でソース乞食するゾォォオオ〜っ♪”
,r----、__|.Javaト‐=‐ァ' .::::| | 仕事レポート全部くれくれ乞食するぞォォォオオオオ〜っ!”
/Ruby \最強ニニ´ .:::/ \____________________
(ひま,/¬--v \____/⌒\
/⌒ ( ] |丶 ̄ ̄ /丿 丿 ─
(_ _丿 ,ノ--v_\ 糞 ノ ノ 今日も見にくい小文字でプログラミングするぞ〜!!(ギャハハ!!wwww”
 ̄ ノ宿敵 リ--─ーARM八
〔 マシン語 Python__,ノ′ヽ ギブ・ミー・レポート!!!! ギブ・ミー・ソース!!!!
,ノ'' ー--ー┘■■ ̄\ │
/ /  ̄■■■/ \ | #○&#$△#%&$▼&%#!!!!
ノ /]アンチ|■AMD命|\| \\ (↑意味不明w)
| / .| Intel | ) ノ
|/′ | .| |---く
| | \ ] ※)一部見苦しい部分がありますが御了承下さい。
.
0424デフォルトの名無しさん
2013/05/05(日) 05:40:12.130425デフォルトの名無しさん
2013/05/05(日) 12:11:47.330426デフォルトの名無しさん
2013/05/05(日) 16:53:03.02電卓プログラム作りたいんですが、文字列そのまま代入して
計算させたいです。
0427デフォルトの名無しさん
2013/05/05(日) 17:05:00.570428デフォルトの名無しさん
2013/05/05(日) 17:26:41.70馬鹿には無理だから引っ込んでろ
0429デフォルトの名無しさん
2013/05/05(日) 17:44:45.300430デフォルトの名無しさん
2013/05/05(日) 17:46:06.62「俺がする」とは誰も言ってない
>>429の馬鹿以外の誰かがするだろうよ
0431デフォルトの名無しさん
2013/05/05(日) 17:51:17.88結局他人頼みかボンクラ
テメーでやれよパーかおめ
0432デフォルトの名無しさん
2013/05/05(日) 17:52:36.12そこまで言うならお前がやったれや
俺は酒飲んでて今から寝るんだよ(笑)
0433デフォルトの名無しさん
2013/05/05(日) 17:55:14.270434デフォルトの名無しさん
2013/05/05(日) 18:04:07.980435デフォルトの名無しさん
2013/05/05(日) 18:12:31.48レス無しかよ。GWだなぁ。
0436デフォルトの名無しさん
2013/05/05(日) 18:14:48.620437デフォルトの名無しさん
2013/05/05(日) 18:18:53.390438デフォルトの名無しさん
2013/05/05(日) 18:25:50.66もう一度詳細に書いて
”文字列をインライン展開””文字列そのまま代入”の意味が伝わらない
0439デフォルトの名無しさん
2013/05/05(日) 18:29:19.720440デフォルトの名無しさん
2013/05/05(日) 18:30:07.11仕様書も出さずに作れとか馬鹿の極み
0441デフォルトの名無しさん
2013/05/05(日) 18:31:43.540442デフォルトの名無しさん
2013/05/05(日) 18:33:58.790443デフォルトの名無しさん
2013/05/05(日) 18:34:30.720444片山博文MZパンク ◆0lBZNi.Q7evd
2013/05/05(日) 18:43:16.88パーサジェネレータで検索
0445デフォルトの名無しさん
2013/05/05(日) 18:45:53.540446デフォルトの名無しさん
2013/05/05(日) 18:49:17.420447デフォルトの名無しさん
2013/05/05(日) 18:52:40.49yacc 使うまでもない感じ?
0448デフォルトの名無しさん
2013/05/05(日) 18:57:07.70ネットに入門サイトいくらでもあるじゃんね。
0449デフォルトの名無しさん
2013/05/05(日) 19:32:28.75ttp://ideone.com/clone/4uiNHy
実行例
input=1+2*(3-4)*(5+6*(7-8))
3
0450デフォルトの名無しさん
2013/05/05(日) 19:37:37.51課題だとしたらその辺りのこと想定してるんだろうし
0451デフォルトの名無しさん
2013/05/05(日) 19:46:06.82ここではIDナンバー1のほうが流行ってるの?
codepadのほうが見やすくて好きなんだが。
0452デフォルトの名無しさん
2013/05/05(日) 20:14:48.59お前の好みなんかどうでもいいんだよゴミ。
そんなに書きたきゃブログに書いてろクズが。
二度と来るな。
0453デフォルトの名無しさん
2013/05/05(日) 20:25:51.282度と来るなという事は3度目は来ていいんですか?
3度目来るためには2度目来ないといけないんですが(笑)
while(1){;}の後の関数の気分です。
0454デフォルトの名無しさん
2013/05/05(日) 20:26:52.00printf("%d\n",i[0]);
この結果15
char i="\x0f
0455デフォルトの名無しさん
2013/05/05(日) 20:27:23.49printf("%d\n",i);
この結果-32
何故?
0456デフォルトの名無しさん
2013/05/05(日) 20:31:56.75はい来ました
何か問題でも?
0457デフォルトの名無しさん
2013/05/05(日) 20:42:49.18signed char i = (signed char)&"\x0f"[0];
printf("%d\n", (int)i);
0458デフォルトの名無しさん
2013/05/05(日) 21:28:14.63同じ結果です
0459デフォルトの名無しさん
2013/05/05(日) 21:47:16.49char i = '\x0f';
0460デフォルトの名無しさん
2013/05/05(日) 21:57:56.290461デフォルトの名無しさん
2013/05/05(日) 22:29:52.16printf("%c\n",i);
これでできました
文字列リテラルの存在忘れてました
0462デフォルトの名無しさん
2013/05/05(日) 22:50:33.90printf("%c\n",i);
ではだめなのか?
何をやりたいかわけわからん。
0463デフォルトの名無しさん
2013/05/05(日) 22:51:45.32*& とかいるのか。
0464デフォルトの名無しさん
2013/05/05(日) 22:55:58.47''と""に入れたとき違いがよくわかってなかったので試してました
0465デフォルトの名無しさん
2013/05/06(月) 05:45:50.51どっちがいいでしょうか
static unsigned char* b;
void foo(const unsigned char* a)
{
b = a;
}
0466デフォルトの名無しさん
2013/05/06(月) 06:43:02.94リテラルを渡してやろう
foo("abc");
0467はちみつ餃子 ◆8X2XSCHEME
2013/05/06(月) 06:46:50.45const で宣言した変数が const でない挙動をする (キャストで const を剥がす) のは間違いのもと。
0468デフォルトの名無しさん
2013/05/06(月) 08:40:36.40それだと、「それなら、黙ってろ アホ!」とならね?
0469デフォルトの名無しさん
2013/05/06(月) 08:42:07.17>>428書いたの俺じゃねーし
>>428書いた奴に言ってくれ
0470デフォルトの名無しさん
2013/05/06(月) 09:46:23.220471デフォルトの名無しさん
2013/05/06(月) 10:28:25.740472デフォルトの名無しさん
2013/05/06(月) 11:53:19.42関数の引数が関数自身によって変更されない値を参照するポインタならば、関数の引数をconstとして宣言する
http://www.jpcert.or.jp/sc-rules/c-dcl13-c.html
const 修飾をキャストではずさない
http://www.jpcert.or.jp/sc-rules/c-exp05-c.html
ってことで、どうすりゃいいんだと思ったけど、リンク先の優先度見ると引数のconst外した方がいいのか
>>467はそういうことなのか
memcpy(&b, &a, sizeof(unsigned char*))なら文句言われないけど、パッと見分かりにくいわな
0473デフォルトの名無しさん
2013/05/06(月) 11:56:38.450474デフォルトの名無しさん
2013/05/06(月) 12:23:00.40引数と代入先がchar*じゃないってこと
0475デフォルトの名無しさん
2013/05/06(月) 12:24:52.76char *str2 = "hoge"; /* (B) */
このBのほうは文字列リテラルのhogeの先頭アドレスをポインタ変数*str2に入れてるのはわかるけど
この"hoge"の先頭アドレスはデータセグメントに入ってるの?
AのほうはAuto変数だからスタックセグメントに入ってるとわかります
定数はデータセグメント?教えてください
0476デフォルトの名無しさん
2013/05/06(月) 12:30:31.28どちらも"hoge"はデータセグメントです。
Aはmemcpyが走るだけです。Bはデータセグメントへのポインタが入ります。
0477デフォルトの名無しさん
2013/05/06(月) 12:38:55.20>(A) は、単なる配列なので 'h', 'o', 'g', 'e', '\0' というデータはスタックというところに置かれます。
と書いてあるけど?・・・
Aはstr1[0]='a';みたいに書き換えできるけど
Bはstr2[0]='a'みたいに書き換えできませんよね?
データセグメントの中にも書き換えできるのとできないのがあるんですか?
0478デフォルトの名無しさん
2013/05/06(月) 12:39:46.830479デフォルトの名無しさん
2013/05/06(月) 12:40:56.08str1,2ともローカル変数ならスタック、グローバルなら変数領域に割り当てられる
hogeの実体は、str1はstr1に、str2は定数領域に入る
ってggったら出てきた
0480デフォルトの名無しさん
2013/05/06(月) 12:43:36.910481デフォルトの名無しさん
2013/05/06(月) 12:48:08.650482デフォルトの名無しさん
2013/05/06(月) 12:52:58.610483デフォルトの名無しさん
2013/05/06(月) 12:57:34.51bがconstでない時点でconst宣言したアドレスをコピーするのはまずいだろう。
いつ書き換わるかわかんないのに
0484デフォルトの名無しさん
2013/05/06(月) 13:01:13.59>関数の引数が関数自身によって変更されない値を参照するポインタならば、関数の引数をconstとして宣言する
少なくとも関数内では書き変わらないから、関数自身による変更さえなきゃconstで宣言するものかと思ったんだが
0485デフォルトの名無しさん
2013/05/06(月) 13:09:36.08定数領域ってセグメントでいうどこ?
0486デフォルトの名無しさん
2013/05/06(月) 13:11:17.44rodata
0487デフォルトの名無しさん
2013/05/06(月) 13:16:20.95rodataって場所か
セグメントでぐぐってたからでてこなかったけど
セクションでぐぐったらでてきた
http://www.ertl.jp/~takayuki/readings/info/no02.html
ありがとう
0488デフォルトの名無しさん
2013/05/06(月) 13:29:46.400489デフォルトの名無しさん
2013/05/06(月) 16:10:41.710490デフォルトの名無しさん
2013/05/06(月) 16:14:03.620491デフォルトの名無しさん
2013/05/06(月) 16:44:53.130492デフォルトの名無しさん
2013/05/06(月) 16:55:26.15QZじゃねーから
証明できないけど、2ch運営にでもIPきいたら?
0493デフォルトの名無しさん
2013/05/06(月) 17:25:53.03お勧めですか?取り敢えずドスコマンドを自作するみたいな事から初めて
今はサーバークライアント型のプログラムに挑戦しています。
その内3Dゲームもやってみたいと思うんですがライブラリで何か良いの
ありますか?友達でプログラミング趣味の子全然いないんですよ。
0494デフォルトの名無しさん
2013/05/06(月) 17:26:59.75他人が自分ではないことの証明にはならないが。
0495デフォルトの名無しさん
2013/05/06(月) 17:29:20.78HSP
0496デフォルトの名無しさん
2013/05/06(月) 17:29:33.92やってもPCとスマホを使い分けて自演じゃないとか言い出すこと間違いなし
0497デフォルトの名無しさん
2013/05/06(月) 17:30:52.16そう。自演であることも自演でないことも客観的に証明できない
つまり、自演乙wwwwwとか言ってる奴はアホだということ
0498デフォルトの名無しさん
2013/05/06(月) 17:30:57.48C++
0499デフォルトの名無しさん
2013/05/06(月) 17:34:30.34C++やるならDXライブラリ
Unityでもいいけど、最初から便利すぎると勉強にならない気もする
0500デフォルトの名無しさん
2013/05/06(月) 17:37:21.21あー知ってます。てか一番最初に覚えた言語ですw
文法が簡単でゲームが作りやすかった記憶があります。
>>499
ありがとうございます。
自分で機能とかも作りたいので低水準のC++をとりあえず勉強してみます。
ただUnityが便利過ぎるというのは初耳ですが本当でしょうか?
リアルタイムレンダリングの機能とかありますか?
0501デフォルトの名無しさん
2013/05/06(月) 17:43:24.23Unityは開発環境だからそういうのとは別
ゲーム作りたいだけなら使えばいいんじゃね
悪い意味でなくて、趣味でやるなら好きにやればいいと思う
0502デフォルトの名無しさん
2013/05/06(月) 17:45:42.56色を付けたりする機能も実装されてますか?グラデーションとか。
0503デフォルトの名無しさん
2013/05/06(月) 17:48:08.850504デフォルトの名無しさん
2013/05/06(月) 17:48:58.57じゃぁ何使ってるんですか?ゲーム作ってる人って。
0505デフォルトの名無しさん
2013/05/06(月) 17:49:21.560506デフォルトの名無しさん
2013/05/06(月) 17:50:48.88【3Dゲームエンジン】Unity総合スレッド18
http://toro.2ch.net/test/read.cgi/gamedev/1362904281/
0507デフォルトの名無しさん
2013/05/06(月) 17:51:06.31だからそういうライブラリとUnityは別ってこと
ほんととりあえずぐぐれ
0508デフォルトの名無しさん
2013/05/06(月) 17:52:05.59向いてないって言います。どちらを信じれば?
0509デフォルトの名無しさん
2013/05/06(月) 17:54:20.283Dと相性は良いのでしょうか?
0510デフォルトの名無しさん
2013/05/06(月) 17:54:52.98【3Dゲームエンジン】Unity総合スレッド18
http://toro.2ch.net/test/read.cgi/gamedev/1362904281/
0511デフォルトの名無しさん
2013/05/06(月) 17:58:33.370512デフォルトの名無しさん
2013/05/06(月) 18:15:50.35Blender使え
0513デフォルトの名無しさん
2013/05/06(月) 18:24:09.69Unityの実績みたらPCゲームやネトゲで全く使われてないからな相当ゴミでハイクオリティなゲームには適してないんだろう
ゴミはたぶんFFとかドラクエとかで育ってきたゆとりのゴミだからスマフォ向けタワーディフェンスやブラゲとか作ってろゴミ
さっさと死ねキチガイ
0514デフォルトの名無しさん
2013/05/06(月) 18:25:55.25できません。あれって人体作ったらそれを動かすためにプログラムしないと
ダメなんでしょうか?
0515デフォルトの名無しさん
2013/05/06(月) 18:34:18.55簡単なことなら三角関数を使ってごまかすことができるが
座標変換は日常的に使うし外積つかった当たり判定とかフライトシミュ作ったりするならジンバルロックを考慮する必要がある
0516デフォルトの名無しさん
2013/05/06(月) 18:40:32.53きて華麗に宙返りして決めるっていうのでした。
ひとつひとつの動きをプログラミングで作っているのでしょうか?
0517デフォルトの名無しさん
2013/05/06(月) 18:45:06.810518デフォルトの名無しさん
2013/05/06(月) 18:46:59.100519デフォルトの名無しさん
2013/05/06(月) 18:55:03.28周りのみんなは受験勉強やら自己啓発で資格取得やら親しい友人と親睦深めたりしてるのに
ゲームプログラミングなんかしてても受験、就職、出世、何の評価にも繋がらないぞ
小学生なら受験勉強でもしてた方がなんぼかマシ
0520デフォルトの名無しさん
2013/05/06(月) 18:57:38.110521デフォルトの名無しさん
2013/05/06(月) 19:00:21.76だって周りがそういう友達ばかりだもん。
だから自分で趣味としてプログラムやって充実してるんだよ。
0522デフォルトの名無しさん
2013/05/06(月) 19:06:55.69被害妄想粘着童貞の振る舞い
0523デフォルトの名無しさん
2013/05/06(月) 19:12:52.25既存のハイクオリティで面白いゲーム以上のゲームが作れるっていうなら別
どうせミニゲームとかだろ
莫大な金かけて作ってるネトゲやPCゲーム以下
ゲー専、アマチュア(同人)とかもしょっべーゲームしか作れてない
変愚蛮怒,,Elona,オンラインゲーム作って運用このぐらいのゲームが作れてスタートライン
それ以下のゲームはさっさと死ぬべき
0524デフォルトの名無しさん
2013/05/06(月) 19:35:53.34http://www.amazon.co.jp/dp/4871481689/ : make, レイトレーシング、Ada風俺々コンパイラ
http://www.amazon.co.jp/dp/4871482006/ : 本格lispインタプリタ
http://www.amazon.co.jp/dp/4774100544/: lisp インタプリタを扱っているもう一つの書籍、ただしソースは完全ではないと個人的に思っているディスクサービスを申し込んでおけばよかた‥‥上記2冊以外を知らない
K&R1のCだがどうとでもなる、というかここで躓くようでは修行がたりない
0525デフォルトの名無しさん
2013/05/06(月) 19:37:03.340526デフォルトの名無しさん
2013/05/06(月) 19:40:31.100527デフォルトの名無しさん
2013/05/06(月) 19:48:44.90倉庫番とかマインスイーパとか
ゲーム作るなら、
ゲームプログラマになる前に覚えておきたい技術
って本がオススメ
ただし、C++の本は別に必要なのでちと高い買い物になるかも
C++をネットで勉強するのもありだが
0528デフォルトの名無しさん
2013/05/06(月) 20:14:52.650529デフォルトの名無しさん
2013/05/06(月) 20:19:10.120530デフォルトの名無しさん
2013/05/06(月) 20:20:31.13まずはみんなでアイデアを出そうぜ
0531デフォルトの名無しさん
2013/05/06(月) 20:20:56.78ふっ
0532デフォルトの名無しさん
2013/05/06(月) 20:30:30.420533デフォルトの名無しさん
2013/05/06(月) 20:33:33.10ああいう演出に凝った感じのやつ。
0534デフォルトの名無しさん
2013/05/06(月) 20:35:02.78テイルズオブ銀魂双六か。
0535デフォルトの名無しさん
2013/05/06(月) 20:38:35.75中卒+ゲー専門はこちら
ゲーム専門にクズが多い理由(笑)
http://toro.2ch.net/test/read.cgi/gamedev/1359679374/
0536デフォルトの名無しさん
2013/05/06(月) 20:39:22.78キャラが喋りなから秘奥義使ってるけど聞いてるほうが恥ずかしくなるような台詞が混ざってるよな
厨二病の俺でも恥ずかしくなるような台詞だぞ、どうなってんだ
0537デフォルトの名無しさん
2013/05/06(月) 20:40:55.830538デフォルトの名無しさん
2013/05/06(月) 20:44:26.89中卒+ゲー専門がゲーム製作もこっち
ゲーム専門にクズが多い理由(笑)
http://toro.2ch.net/test/read.cgi/gamedev/1359679374/
0539デフォルトの名無しさん
2013/05/06(月) 20:45:12.890540デフォルトの名無しさん
2013/05/06(月) 20:50:33.02■評価できないところ
秘奥義のエフェクトを除けばグラもPSで再現できるレベル
ピカピカドカンズババババな技が多すぎ
基本&戦闘システムがほとんど進歩してない(凝ってない)
■評価できるところ
カメラアングルとかイラストの使い方はかなり研究されてる
ボイスデータが大量に入っている
エフェクトがきれい
0541デフォルトの名無しさん
2013/05/06(月) 20:51:11.330542デフォルトの名無しさん
2013/05/06(月) 20:51:15.18中卒+ゲー専門がゲーム製作もこっち
ゲーム専門にクズが多い理由(笑)
http://toro.2ch.net/test/read.cgi/gamedev/1359679374/
0543デフォルトの名無しさん
2013/05/06(月) 20:53:00.11最近あまり出てないっしょ。
任天堂がたまにマリオ出すくらいでロックマンも新作がでない。
0544デフォルトの名無しさん
2013/05/06(月) 20:53:32.91中卒+ゲー専門がゲーム製作もこっち
ゲーム専門にクズが多い理由(笑)
http://toro.2ch.net/test/read.cgi/gamedev/1359679374/
0545デフォルトの名無しさん
2013/05/06(月) 20:54:18.520546デフォルトの名無しさん
2013/05/06(月) 20:55:00.590547デフォルトの名無しさん
2013/05/06(月) 20:55:34.173Dが当たり前のように使えるのに2Dゲーなんかやりたいか?
0548デフォルトの名無しさん
2013/05/06(月) 20:56:47.340549デフォルトの名無しさん
2013/05/06(月) 20:58:19.03とりあえずネットで仲間集めてそこそこクオリティ高いゲーム作って
同人作品として売りたい。昔のゲームのリメイクとか作ったら良いん
じゃないかと考えてる。
0550デフォルトの名無しさん
2013/05/06(月) 20:58:27.292dなら酔わないとかあるだろ
あと直感的に分かりやすいとか
0551デフォルトの名無しさん
2013/05/06(月) 20:59:40.140552デフォルトの名無しさん
2013/05/06(月) 20:59:53.840553デフォルトの名無しさん
2013/05/06(月) 21:00:15.48中卒と低学歴のゲーム専門学校が荒らしてる感じ
邪魔だな
0554デフォルトの名無しさん
2013/05/06(月) 21:02:20.80いやドンキーコングならモンキーコングとかにする。
ダメかな?
0555デフォルトの名無しさん
2013/05/06(月) 21:02:52.99ゲームはスレ違いだから別スレでやれ
0556デフォルトの名無しさん
2013/05/06(月) 21:03:05.06プログラマー、イラストレーター、ドッター、モデラー、シナリオライター、ゲームデザイナー、作曲家、スクリプト組んだりする雑用
辺りが最低でも必要
0557デフォルトの名無しさん
2013/05/06(月) 21:04:42.52タイトルはギリギリセーフだと思うけど、
キャラとかはどうする?
0558デフォルトの名無しさん
2013/05/06(月) 21:05:29.84そういう細分化なぁ....
ゲームデザイナーとシナリオライターは一緒でしょ。
何かそうやってメーカーの構成にする事に酔ってる感じがする。
0559デフォルトの名無しさん
2013/05/06(月) 21:06:04.07嫌なら見るなよ精神異常
嫌だ嫌だと言いながら見てるとかマジで頭おかしいんじゃねw
0560デフォルトの名無しさん
2013/05/06(月) 21:10:37.57既存のものを派生させるっていうのは簡単でしょ。
むしろそこにモチベーションを持たないと。
とりあえず携帯ゲームブームに勝ちたい。
0561デフォルトの名無しさん
2013/05/06(月) 21:10:46.40違うぞ
デザイナはシステム作ったりバランス調整したりする奴だぞ
シナリオとは全く別のスキル
両方こなせる奴を探すのもありだけど、別々に探すほうが手っ取り早い
そのための細分化だ
酔ってるようで嫌なら
プログラム兼作曲兼グラフィック兼シナリオ兼デザイン担当を探してもいいとは思うけど
0562デフォルトの名無しさん
2013/05/06(月) 21:12:11.03かわいい女の子(ロリ)を書ける絵師が必須。
0563デフォルトの名無しさん
2013/05/06(月) 21:15:00.83エロゲのスタッフロール見たんだけどスタッフ多すぎるんだよ。
20人以上はいたんじゃないかなと?マニファクチュアは作業の混乱を防いで
効率的だけど自由な発想が制限されるんじゃないかと思う。
0564デフォルトの名無しさん
2013/05/06(月) 21:17:32.760565デフォルトの名無しさん
2013/05/06(月) 21:19:47.16趣味プロなんだから1人で十分だろw
大体のものはフリー素材でなんとかなる
0566デフォルトの名無しさん
2013/05/06(月) 21:20:28.29手軽さなんだよ。
0567デフォルトの名無しさん
2013/05/06(月) 21:32:13.34分業の楽しさを知りつつ成果を得たい。
0568デフォルトの名無しさん
2013/05/06(月) 21:50:29.25そうだよな、成果は重要
一番客観的で数値化できる成果というとやっぱり金だな
同人でも何でもいいから売ってどのくらい売れたのかってのがそれを一番簡単に測れる
0569デフォルトの名無しさん
2013/05/06(月) 21:53:37.10フレームワークを作るのこそが楽しいんだろ
ゲームが完成するかどうかなんて
どうでもいいことじゃないか
0570デフォルトの名無しさん
2013/05/06(月) 21:56:26.42http://jbbs.livedoor.jp/bbs/read.cgi/computer/43761/1367197701/l100
0571デフォルトの名無しさん
2013/05/06(月) 22:14:41.58フレームワークだけ作ってもおもしろくない
0572デフォルトの名無しさん
2013/05/06(月) 22:48:12.540573デフォルトの名無しさん
2013/05/06(月) 23:16:56.11プログラマ向いてないから
さっさとSE()にでもなった方がいいんじゃない?
0574デフォルトの名無しさん
2013/05/06(月) 23:19:24.73自演で大量に荒らしレスを連投するいつもの人が
派手に発作起こしちゃったから。
0575デフォルトの名無しさん
2013/05/06(月) 23:20:24.820576デフォルトの名無しさん
2013/05/06(月) 23:22:11.20アセンブラ君のほうがまともだったな
0577デフォルトの名無しさん
2013/05/06(月) 23:39:20.440578デフォルトの名無しさん
2013/05/06(月) 23:43:42.050579デフォルトの名無しさん
2013/05/06(月) 23:47:00.800580デフォルトの名無しさん
2013/05/07(火) 00:18:42.20自分でゲームを作ろうと思っている同志のいるこのスレを活動拠点にしたいと思います
質問などすると思いますがよろしくお願いします
0581デフォルトの名無しさん
2013/05/07(火) 00:43:29.02同品質の物が作れるなら、手間が少ないほうがいい。
ゲーム会社も、開発コスト、日数を下げるための工夫している。
[E3 2012]スクウェア・エニックスの独自開発エンジン「Luminous Studio」による,驚異のリアルタイム技術デモ「AGNI'S PHILOSOPHY」が公開
本デモ映像の制作に使用した「Luminous Studio」とは、当社が独自で開発を進める、ゲーム開発ツール・プログラム群を統合した次世代総合ゲーム開発環境(ゲームエンジン)です。
本ゲームエンジンは、ゲーム制作チームに大きな生産性の向上をもたらし、同時に圧倒的な品質のゲーム制作ができる環境を目指しています。
また、本ゲームエンジンは、ゲーム専用機、PC、スマートフォン、WEBなど、次世代を含む多様なゲームプラットフォームに対応する予定です。
http://www.4gamer.net/games/032/G003263/20120606107/
0582デフォルトの名無しさん
2013/05/07(火) 00:50:29.890583デフォルトの名無しさん
2013/05/07(火) 02:38:34.65基本的にどれも変わらんよな。
メインループ作って、リソース管理作って、データベース作って、って辺り。
0584デフォルトの名無しさん
2013/05/07(火) 02:58:50.10全アイテムはIDとアイテム名をセットにしておくと思うのですが、
所持アイテムはIDと個数をセットにしておくと思うんですよ
でもそれだとメニューから所持アイテム一覧を開いたとき、
全アイテム一覧からIDでアイテム名を引いてこなきゃいけないじゃないですか
全アイテム一覧はメモリに読み込んでおくんですか?
それともメニュー画面開くたびにHDDから必要なアイテム名だけ引いてくるんですか?
0585片山博文MZパンク ◆0lBZNi.Q7evd
2013/05/07(火) 03:23:25.99メモリに展開しておく。
ファイル読み込みだと、遅延が発生する恐れあり。
その手の処理ならC++が楽チン。
0586デフォルトの名無しさん
2013/05/07(火) 03:27:58.99黙って寝とけ
0587デフォルトの名無しさん
2013/05/07(火) 04:37:23.42本当にIDとアイテム名だけならどっちでもいい。
だけど最近のゲームみたいに解像度の高いアイコンと説明文が出るようなやつは毎回HDDから読み込んだほうがいい。
0588デフォルトの名無しさん
2013/05/07(火) 05:18:06.69合計1M以下なら読み込んでおくとか
自分で適当に閾値決めて
データ量がその閾値を超えないなら全部読み込んでおく
超えるならその都度読み込み&キャッシュじゃね
0589デフォルトの名無しさん
2013/05/07(火) 12:30:18.12これってどうなってんの?文字列リテラルだと定数領域に確保されてその先頭アドレスが返るって話だけど
配列の場合はスタック領域のアドレスが入ってたけど何で?
Auto変数だからスタックにstr配列が確保されて文字列リテラルで定数領域に文字列が確保されてその先頭アドレスからスタック領域にコピーしてるって感じ?
コピーしてる命令は配列とかがやってんの?教えてください
0590デフォルトの名無しさん
2013/05/07(火) 12:45:46.28実際どうなってるかは逆アセンブルしてみるしかない
0591デフォルトの名無しさん
2013/05/07(火) 12:57:27.47>>476がいってるmemcpyくさいなぐぐってみるか
メモリ理解とアセンブラ理解してるとしてないとでは全く違ってくるなこれ
0592デフォルトの名無しさん
2013/05/07(火) 15:01:27.75アイテム名の横に出るやつじゃなくて画面下の説明欄に一緒に出てくるやつ
アイコンというよりもはや絵だよな
0593デフォルトの名無しさん
2013/05/07(火) 15:09:55.57ID:qEqQNQf6O0594デフォルトの名無しさん
2013/05/07(火) 15:45:32.940595デフォルトの名無しさん
2013/05/07(火) 16:12:23.830596デフォルトの名無しさん
2013/05/07(火) 18:05:08.79定数領域に"ABC"取って、何らかの方法で"ABC"をstrへコピーしてる
何らかの方法ってのはコンパイラ次第で、memcpyと同じかも知れない
でいいのかな
0597デフォルトの名無しさん
2013/05/07(火) 18:51:17.57ID, ID!
0598デフォルトの名無しさん
2013/05/07(火) 19:00:25.550599デフォルトの名無しさん
2013/05/07(火) 19:31:33.81http://engawa.2ch.net/test/read.cgi/poverty/1367913537/
これが関係している?
0600片山博文MZパンク ◆0lBZNi.Q7evd
2013/05/07(火) 23:08:23.92他人に盗まれない仕事がしたいならC++にしろよ。
0601デフォルトの名無しさん
2013/05/07(火) 23:10:10.330602デフォルトの名無しさん
2013/05/07(火) 23:41:12.39そんな逆汗があるのか?URLよろ
0603デフォルトの名無しさん
2013/05/07(火) 23:51:15.510604デフォルトの名無しさん
2013/05/07(火) 23:55:08.930606デフォルトの名無しさん
2013/05/08(水) 08:18:40.99C#だったらわかるんだけど‥‥
0607デフォルトの名無しさん
2013/05/08(水) 08:41:18.56ねーよ
0608デフォルトの名無しさん
2013/05/08(水) 12:23:56.990609デフォルトの名無しさん
2013/05/08(水) 12:38:58.01fabs(x - constance) じゃだめなの?
0610デフォルトの名無しさん
2013/05/08(水) 12:49:06.270611デフォルトの名無しさん
2013/05/08(水) 12:52:54.21なら2chに来るな
それかお前が面白いネタを提供しろ
0612デフォルトの名無しさん
2013/05/08(水) 12:57:55.57DBL_MIN 2.2250738585072014e-308 最小の正の値
http://msdn.microsoft.com/ja-jp/library/k15zsh48(v=vs.80).aspx
0613デフォルトの名無しさん
2013/05/08(水) 13:00:51.220614デフォルトの名無しさん
2013/05/08(水) 13:05:32.610615デフォルトの名無しさん
2013/05/08(水) 13:46:08.03このCわかりやすくいけた
難易度これくらいでいいな
0616デフォルトの名無しさん
2013/05/08(水) 16:55:41.180617デフォルトの名無しさん
2013/05/08(水) 19:02:56.00完成させることって重要だよな。
やっぱりプログラムを作るとしても使い回し能力ってのは必要なの?
要領が悪いから最初から作らないといけないんだよ!とか
言われたりするの?
0618デフォルトの名無しさん
2013/05/08(水) 19:50:13.23ゲームデザインをシナリオと一緒にすんな
テトリスくらいならいいけど、最近のRPGみたいなやつを素人がデザインすると地獄絵図になるぞ
〜ゲームデザイナーなし劇場〜
開発者A「なぁ、このボスに到達するときにこのパーティーのレベルって高くない?」
開発者B「え?じゃぁ経験値少なくするか」
開発者C「おい、全体的に減らすなよ、その前のボス戦ではちょうどよかったんだから」
「じゃぁそのボス弱体化すればいいじゃん」
「えっ」
「えっ」
「そうじゃなくてAが言ってたボスを強くすればいいんじゃね?」
「強くって何を?HPあげるの?攻撃力あげるの?」
「HP上げたら長期戦になってダルいだけだろ、攻撃力上げろよ」
「・・・攻撃力あげてみたよ、攻撃力上げたら魔法使いが一撃で死んだよ」
「上げすぎなんだろ馬鹿」
「だってそのくらい上げないと他のキャラほとんどダメージ受けないんだもん」
「ダメージの計算式がおかしいんじゃね?」
「はい」
「はいじゃないが」
「いや、ダメージの計算式変えると全体のバランス変わってくるから無理です」
「普通に魔法使いの防御力が低すぎるだけだと思われ」
「そのボス直前の街で買える防具に、魔法使い用のもう1つ上位の防具追加したらどうよ」
「追加しなくてもその防具の防御力上げれば済む話だろ」
「属性防御が付いてる代わりに、防御力低くしてあるんだけど、防御力上げちゃうの?」
「いいから上げろよ」
「・・・防御力上げてみたよ、ボスはちょうどよくなったけど、雑魚戦でダメージほとんど受けないから面白くないんだが」
ってのが延々と続く
0619デフォルトの名無しさん
2013/05/08(水) 22:06:03.65{
int a = 10;
return &a;
}
これってマズい?
0620デフォルトの名無しさん
2013/05/08(水) 22:11:33.47別にコンパイルエラーにはならないと思うよ。
返り値を使わない分にはなんの問題もない。
0621デフォルトの名無しさん
2013/05/08(水) 22:33:04.89逆にいえばゲームデザイナーの意見に口出しできないって事じゃね?
0622デフォルトの名無しさん
2013/05/08(水) 22:46:10.600623デフォルトの名無しさん
2013/05/08(水) 23:30:15.90試せばいいだろ無能
0624デフォルトの名無しさん
2013/05/08(水) 23:38:50.210625デフォルトの名無しさん
2013/05/08(水) 23:47:45.310626デフォルトの名無しさん
2013/05/08(水) 23:54:57.51まずい
0627デフォルトの名無しさん
2013/05/09(木) 00:00:23.890628デフォルトの名無しさん
2013/05/09(木) 00:01:47.830629デフォルトの名無しさん
2013/05/09(木) 00:03:46.81この「わかる」というのはどの程度までを指すのでしょうか?
極端な話printf("hello");が何をしてるのか私は説明できません
printf()は引数を標準出力に出力する関数だということはわかります。構造はわかりません。
プログラムを理解するというのはどこまで掘り下げればいいのでしょうか?みなさんの意見をお聞かせ下さい。
0630デフォルトの名無しさん
2013/05/09(木) 00:05:09.40http://www7b.biglobe.ne.jp/~robe/cpphtml/html03/cpp03008.html
int* Func()
>{
> int a = 0;
> return &a;
>}
>のようなことは絶対にしてはいけません
0631デフォルトの名無しさん
2013/05/09(木) 00:15:09.870632デフォルトの名無しさん
2013/05/09(木) 00:27:11.87どう確保されるかよく分からない内部変数よりは
呼び出し規約により位置がはっきり決まる引数の方がよさげ
staticなら別に何ともない
0633デフォルトの名無しさん
2013/05/09(木) 00:46:28.63アセンブリ勉強きて実行ファイル逆アセして読めば?
0634デフォルトの名無しさん
2013/05/09(木) 02:25:07.91strtokやlocaltime, asctime, ctime辺りは、
staticかグローバルか知らないけど
そういうアドレス返しているね。
他にもあったかな?
0635デフォルトの名無しさん
2013/05/09(木) 11:00:37.10テキストファイル○○.docを読み込み、fscanf, strlenを使用して、長さが1以上の語の数を数えて出力するプログラムを書きなさい。
ただし、ファイル名の指定は、fopenの引数として直接プログラム中に書いて指定して下さい。(ヒント:テキストの中の単語をfscanfを使って1つずつ読み込み、その長さが2文字以上ならばワード数を1つインクリメントする。)
○文字列の長さを測る方法:strlen()を使用する。
○テキストファイル○○.docには長い英文が書かれている。
よろしくおねがいします。
0636デフォルトの名無しさん
2013/05/09(木) 11:14:44.990637デフォルトの名無しさん
2013/05/09(木) 11:16:53.580638デフォルトの名無しさん
2013/05/09(木) 11:22:30.700639デフォルトの名無しさん
2013/05/09(木) 11:36:09.85とくとご覧あれw
0640デフォルトの名無しさん
2013/05/09(木) 11:37:00.920641デフォルトの名無しさん
2013/05/09(木) 11:39:49.740642デフォルトの名無しさん
2013/05/09(木) 11:42:41.26http://ideone.com/L5XpbZ
0643デフォルトの名無しさん
2013/05/09(木) 11:43:36.560644デフォルトの名無しさん
2013/05/09(木) 11:47:47.55早速の回答本当にありがとうございます。
PS自演とか言って騒いでるやつなにが楽しいの⁈
0645デフォルトの名無しさん
2013/05/09(木) 12:02:12.93スタックオーバーフローを起こすんじゃないの
素直にループ使えないの?
0646デフォルトの名無しさん
2013/05/09(木) 12:05:08.250647デフォルトの名無しさん
2013/05/09(木) 12:09:21.500648デフォルトの名無しさん
2013/05/09(木) 12:12:15.13適当にcount=0;しておいて。
0649デフォルトの名無しさん
2013/05/09(木) 12:13:45.01ほらね
QZがものすごい勢いで書いたからウンコードになる
質問開始から1時間もたっていない
0650デフォルトの名無しさん
2013/05/09(木) 12:20:32.450651デフォルトの名無しさん
2013/05/09(木) 12:23:43.230652デフォルトの名無しさん
2013/05/09(木) 12:25:21.21count>=0
count>0
これってどう違うんですか?
0653デフォルトの名無しさん
2013/05/09(木) 12:26:25.050654デフォルトの名無しさん
2013/05/09(木) 12:34:52.58上は0以上。
下は1以上。
0655デフォルトの名無しさん
2013/05/09(木) 12:35:47.04上は count が 0 の場合に真だが、
下は count が 0 の場合に偽である。
「より大きい」と「以上」の違い。
0656デフォルトの名無しさん
2013/05/09(木) 12:36:25.59count が int とは限らないでよ。
0657652
2013/05/09(木) 12:46:23.28count>=-1
count>-1だと?
0658デフォルトの名無しさん
2013/05/09(木) 12:47:41.510659デフォルトの名無しさん
2013/05/09(木) 12:48:52.49不等号はマイナス値に使うと不定になる。
0660デフォルトの名無しさん
2013/05/09(木) 12:49:53.87>>652は自演の可能性がある
0661デフォルトの名無しさん
2013/05/09(木) 12:52:27.16頭腐ってんじゃないの?
0662デフォルトの名無しさん
2013/05/09(木) 12:53:06.400663デフォルトの名無しさん
2013/05/09(木) 12:57:01.350664デフォルトの名無しさん
2013/05/09(木) 13:03:08.65んなわけない。
0665デフォルトの名無しさん
2013/05/09(木) 14:04:50.860666デフォルトの名無しさん
2013/05/09(木) 15:31:24.24意味がわからん
0667デフォルトの名無しさん
2013/05/09(木) 15:50:15.00どこか一つのファイルで実体宣言して参照するファイルでexternで良いの?
0669デフォルトの名無しさん
2013/05/09(木) 16:05:25.14ttp://www7b.biglobe.ne.jp/~robe/cpphtml/html01/cpp01069.html
0670デフォルトの名無しさん
2013/05/09(木) 16:29:24.300671デフォルトの名無しさん
2013/05/09(木) 18:43:31.26今大学の研究室にC言語で作成したツールがあります
大体ソースコードが15個、ヘッダーも同じくらいあり、ソースコードは合計1万行くらいあります
このツールは私が研究室に入る前の先輩方が3人で作ったそうです
今回、先生がこのツールを全く新しく作り直したいと言い出し、私一人で同じようなツールを開発することになりました
そこで、既存のツールがどのような処理を行っているか知るためにソースコードを読み始めたのですが、説明などのドキュメントはおろか、ソースコードにコメントは一切書いてありませんでした
また、メイン関数の中身も宣言→よくわからない処理→宣言→関数など、宣言も関数もまとめて書いてあらず、インデントも適当です
変数名、関数名も意味がわかりません
このようなものを解析するには、やっぱり一つ一つ追っていくしかないのでしょうか?
私はC言語で入門書の演習くらいしかやったことがありませんのでこれから勉強をもっとしなければなりませんが、こういうツールを作成するのにオススメの勉強方法などありますか?
0672デフォルトの名無しさん
2013/05/09(木) 18:47:42.51とりあえずコード整形ツール通すのと
構造解析するツールに通しておけば
手間を2割くらい減らせる
あとの8割は……まあガンバレw
0673デフォルトの名無しさん
2013/05/09(木) 18:50:44.72であれば、今までのソースにたよらず動作や原理から仕様を作り新しく組むのが近道です
0674デフォルトの名無しさん
2013/05/09(木) 18:52:09.41ありがとうございます
Cを普通に扱える人だったら、どのくらいで理解できるんですかね...
自分は1ヶ月じゃ無理そうです...
0675デフォルトの名無しさん
2013/05/09(木) 18:57:11.30そうしようと思ったのですが、使えるところは流用しろとのことでして...
また、先輩方3人でアルゴリズムや構造体を考えるのに半年、ツール開発で結局2年かかったとのことだったので、正直しんどいです
0676デフォルトの名無しさん
2013/05/09(木) 19:01:31.260677デフォルトの名無しさん
2013/05/09(木) 19:04:41.91解決案か別の案か何か考えてくれると思うよ
0678デフォルトの名無しさん
2013/05/09(木) 19:06:31.41もしかしたらラッパー作ればいいだけかもしれん
0679デフォルトの名無しさん
2013/05/09(木) 19:14:35.53今の範囲であれば、やるだけ無駄だから外注に出せ、くらいだ
0680デフォルトの名無しさん
2013/05/09(木) 19:32:15.090681デフォルトの名無しさん
2013/05/09(木) 19:40:37.470682デフォルトの名無しさん
2013/05/09(木) 19:49:00.970683デフォルトの名無しさん
2013/05/09(木) 20:10:09.56doxygenというもの使ってみます!
作り直したい理由は、企業からそのツールが欲しいと言われたが今の何て出せるもんじゃないといった理由らしいです
あとは、前提として対応してこなかったものに対して対応できることがわかり、そのためには大幅な改変が必要だからと言った理由です
先生に相談してみます!
0684デフォルトの名無しさん
2013/05/09(木) 20:14:51.000685デフォルトの名無しさん
2013/05/09(木) 20:19:18.170686デフォルトの名無しさん
2013/05/09(木) 20:21:23.35学生が作ったものだからひどいですよwww
って言いながら企業に渡して、企業にリファクタしてもらえ。
当然リファクタ後の使用権と改修権は企業からもらう契約にしてな。
おまえじゃ無理。
0687デフォルトの名無しさん
2013/05/09(木) 20:29:02.38文章からしてゲー専
0688デフォルトの名無しさん
2013/05/09(木) 20:30:19.13そもそも専門の教授ってなんだよ
0689デフォルトの名無しさん
2013/05/09(木) 20:34:28.760690デフォルトの名無しさん
2013/05/09(木) 20:35:23.76動的に確保したメモリを広域変数に割り当てればいいんじゃね?
0691デフォルトの名無しさん
2013/05/09(木) 20:52:00.97サイズ不定なので不可能です
0692デフォルトの名無しさん
2013/05/09(木) 21:00:06.320693デフォルトの名無しさん
2013/05/09(木) 21:00:32.60main()
{
kuso=malloc();
}
0694デフォルトの名無しさん
2013/05/09(木) 21:03:39.58早く死んだほうがいいよ
0695デフォルトの名無しさん
2013/05/09(木) 21:08:56.900696デフォルトの名無しさん
2013/05/09(木) 21:19:49.13free忘れんなよ
0697デフォルトの名無しさん
2013/05/09(木) 21:25:35.95ソース整形も忘れずに。cならindentコマンドでもいける。
既存動作と比較できるツールも作る必要があると思うので、その分のスケジュールも相談するの忘れずに。
あと、可能なら既存動作を保証できるようにテストを先に作ってから修正始めた方がいい。
よくわからないものを修正するときはその方があとで楽。
0698デフォルトの名無しさん
2013/05/09(木) 21:45:15.35初心者に嘘教えるのが未だに居るな。
0699デフォルトの名無しさん
2013/05/09(木) 21:52:40.260700デフォルトの名無しさん
2013/05/09(木) 21:57:43.82それは聞き捨てならんな
・グローバル
・サイズ不定
というオーダーを満たしてやったうえ
変数名に心を込めたんだぞ
0701デフォルトの名無しさん
2013/05/09(木) 22:23:18.69引数くらい書けや
0702デフォルトの名無しさん
2013/05/09(木) 22:59:19.13どうでもいいことで煽るなよ。
0703デフォルトの名無しさん
2013/05/10(金) 00:29:43.30array[n][n]みたいな使い方できる?
型はint
0704デフォルトの名無しさん
2013/05/10(金) 00:35:23.40int *array = (int*)malloc(sizeof(int)*n*n);
[i][j] 番目 array[i*n + j]
どうしても array[i][j] と記述したいんだー ってんならポインタ配列にでも
0705デフォルトの名無しさん
2013/05/10(金) 00:39:13.37それで良いです
ありがとう
0706デフォルトの名無しさん
2013/05/10(金) 13:44:44.960707デフォルトの名無しさん
2013/05/10(金) 13:48:24.87他のモジュール内部を直接参照したり、一部を共有する。
http://mt-net.vis.ne.jp/ADFE_mail/0322.htm
ってあるけどCで書くとどんな感じ?
0708デフォルトの名無しさん
2013/05/10(金) 14:45:53.05普通の関数コール
0709デフォルトの名無しさん
2013/05/10(金) 14:53:39.27それはデータ結合と違うの?
引数渡すのがデータ結合らしいけど>>708の関数コールもデータ結合と同じじゃない?
test(a,b,c);みたいに引数送るときに呼び出してるし
関数コールって引数渡さずに関数だけ実行?
よくわからん
0710デフォルトの名無しさん
2013/05/10(金) 15:00:15.67localtime
strtok
0711デフォルトの名無しさん
2013/05/10(金) 15:01:04.13スタンプ結合:構造体を渡す
制御結合:制御にかかわる引数を渡す、渡す先のモジュールのif文なのどのflag
外部結合:別モジュールのグローバル変数を参照
共通結合:別モジュールのグローバルな構造体を参照
内部結合だけがよくわからん
>>708>>710の単語じゃわからない
0712デフォルトの名無しさん
2013/05/10(金) 15:11:05.860713デフォルトの名無しさん
2013/05/10(金) 15:36:10.12#define ][ *n+
array[x][y]
0714デフォルトの名無しさん
2013/05/10(金) 17:45:15.39関数内 static を暗に使いまわすようなのじゃない?
int *foo() { static int bar; return &bar; }
こんなのとか
0715デフォルトの名無しさん
2013/05/10(金) 18:14:49.04おまえの言ってることをマネしてあげよう
共有結合
金属結合
イオン結合
ファンデルワールス結合
炭素言語なら俺に聞け
0716デフォルトの名無しさん
2013/05/10(金) 18:18:15.33モジュールの定義がよく分からんな
Cだとソースファイルのことじゃないか?
関数だとローカルしかないわな
0717デフォルトの名無しさん
2013/05/10(金) 18:27:19.87http://members3.jcom.home.ne.jp/daruma_kyo/aboutooa/module_cohesion_coupling.html
>>707
内容結合 絶対番地を用いて直接相手モジュールを参照したり、相手モジュールに直接分岐する。
Cでも書けるだろうけど、まあアセンブラとかの話かな
0718デフォルトの名無しさん
2013/05/10(金) 19:10:31.810719デフォルトの名無しさん
2013/05/10(金) 19:20:31.58>内容結合 他のモジュールの内部を直接参照している
>絶対番地を用いて直接相手モジュールを参照したり、相手モジュールに直接分岐する。
main.c 他モジュール(mod.c)だとしたら
mod.cの内部を直接参照するっていうのがイマイチわからん
0720デフォルトの名無しさん
2013/05/10(金) 19:24:16.020721デフォルトの名無しさん
2013/05/10(金) 19:33:50.79それは外部結合
0722デフォルトの名無しさん
2013/05/10(金) 19:35:35.52それをソースファイル別に書いてみてくれない?
なんか近い気がする
レベル6:内容結合
これは、自身の所有するデータが、他の関数から直接操作される状態です。アセンブラの時代には、しばしば見られましたが、今日の言語ではあまり見かけなくなりました。
しかしながら「C言語」などで、自身のローカル変数のアドレスを下位の関数に渡し、そこからポインタを介して直接データを返してもらうような処理は珍しくはありません。
その場合、そのための専用のローカル変数を用意すれば問題ないのですが、それが面倒とばかり
直接アルゴリズムに関わっているローカル変数のアドレスを渡してしまうケースは、「内容結合的」でもありますので、注意して下さい。
0723デフォルトの名無しさん
2013/05/10(金) 20:59:13.93static int flg = 0;
void foo(void)
{
flg = 1;
goto A;
B:
flg = 0;
}
void bar(void)
{
static int baz = 0;
A:
baz = 1;
if (flg)
goto B;
}
0724デフォルトの名無しさん
2013/05/10(金) 21:02:30.51>直接アルゴリズムに関わっているローカル変数のアドレスを渡してしまうケースは、「内容結合的」でもありますので
これは普通にやるような気がするが、ダメなのかね
void foo(void)
{
int flg = 0;
bar(&flg);
if (flg)
hoge();
else
hage();
}
void bar(int* baz)
{
*baz = 1;
}
そもそもデータ結合と制御結合ってのに差があるのが分からん
0725デフォルトの名無しさん
2013/05/10(金) 21:06:08.77組み込み系のプログラム?
0726デフォルトの名無しさん
2013/05/10(金) 21:11:35.650727デフォルトの名無しさん
2013/05/10(金) 21:13:08.51組み込みだとercd = wai_flg(ID, 0xFFFF, TWF_ORW, &ptn );みたいなのあるね
ptnにフラグ受信パターンが入ってそれで制御とか、ありがち
0728デフォルトの名無しさん
2013/05/10(金) 21:20:46.50はっきり言って全然関係ない
0729デフォルトの名無しさん
2013/05/10(金) 21:23:05.77参考書もばらばらネットの情報もばらばら
本当に簡便
暗記になってしまうんだよ
0730デフォルトの名無しさん
2013/05/10(金) 21:41:50.61{
a[1][1]=0.1;//単に二次元配列だという事を言いたかっただけ。
}
こういう二次元配列を関数で扱うとき、呼び出すときどうしたらいいですか?
x(a);じゃエラーが出るんですが.....
確か配列の場合呼び出す時x(a);でよかった気がするんですが二重ポインタ
の場合はダメなんですかね?
0731デフォルトの名無しさん
2013/05/10(金) 21:46:07.69それ二次元配列じゃなくてポインタのポインタだろ
関数の入り口見れば分かるはず
a[1][1]のように一見二次元配列と同じ書き方ができるので同一の物だと
勘違いしやすいが、生成されるコードは恐らく全然違う
まずポインタ配列の一つを取り出し、そのアドレスを行と見做して列の
1次元配列をアクセスするという二段階アクセスのコードに多分なるだろう
0732デフォルトの名無しさん
2013/05/10(金) 21:48:37.85とかじゃねえの?
しょべえなこいつ
0733デフォルトの名無しさん
2013/05/10(金) 21:50:09.79そうなんですか...では
どうよびだしたらいいですか?
int main(void)
{
double a[3][3];
x(a);//←エラー
x(a[]);//←エラー
x(*a);//←エラー
x(&a);//←エラー
x(&&a);//←エラー
x(a[][]);//←エラー
}
int x(double **a)
{
a[1][1]=0.1;
}
全部エラーです。x関数自体は間違っていません。
0734デフォルトの名無しさん
2013/05/10(金) 21:55:18.43コンパイル通してみた
#include <stdio.h>
#include <stdlib.h>
double test_test(double[][2]);
int main(void) {
double test[][2] = {{1,2}, {3,4}};
puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
printf("test: %f.", test_test(test));
return EXIT_SUCCESS;
}
double test_test(double test[][2])
{
return test[0][1];
}
0735デフォルトの名無しさん
2013/05/10(金) 21:58:24.73関数は変えないでmainの中でどうすればいいですかね?
関数自体は自作ではなく何の問題も無いコードですから。
0736デフォルトの名無しさん
2013/05/10(金) 21:59:28.250737デフォルトの名無しさん
2013/05/10(金) 22:05:09.43つまんね死ね
0738デフォルトの名無しさん
2013/05/10(金) 22:11:39.11よく意味がわからないんですが、関数 x の返り値は何ですか?
あるいはこんなことがしたいんですか?
http://codepad.org/HDMMSTVX
0739デフォルトの名無しさん
2013/05/10(金) 22:13:06.41実体を double a[M][N]; と二次元配列で定義せず、
double **a; の a に、double型[M][N]のサイズのメモリを割り当てて、
それをアクセスする。
具体的には
ttp://ideone.com/m7HYw4
みたいにする。俺は。
(>>738と同じ理屈)
0740デフォルトの名無しさん
2013/05/10(金) 22:14:56.380741デフォルトの名無しさん
2013/05/10(金) 22:15:16.49void (double **a){//関数の中でaは二次元配列}
となってるときmainからどういう書式で引数を渡せばいいか
知りたいだけです。関数の中でやってる事は分かりますので言いません。
0742デフォルトの名無しさん
2013/05/10(金) 22:18:37.680743デフォルトの名無しさん
2013/05/10(金) 22:19:35.01ありがとうございます。
main内部で値を入力(初期値代入)してから関数呼び出したいんですが
その場合は
double **a;
a[0][1]=1.0;
としても大丈夫なのでしょうか?
0744デフォルトの名無しさん
2013/05/10(金) 22:24:17.84最近プログラム板にこういう暴言増えたね。
ここだけじゃなくて他のスレでも。
同じ奴なんだろうなwww
0745738
2013/05/10(金) 22:25:17.59>main内部で値を入力(初期値代入)してから関数呼び出したいんですが
つまり、
main() で二次元配列を初期化してからその二次元配列を関数x に渡し、関数 x 内では渡された二次元配列を使う、ということでいいですか?
もしそうならば、関数 x の中で使う二次元配列のサイズのサイズは具体的にはどれくらいが必要でしょうか?○×○の○はいくつですか?
0746739
2013/05/10(金) 22:25:38.83> main内部で値を入力(初期値代入)してから関数呼び出したいんですが
それは >>739 のコードにも書いてあるとおり、
メモリ確保した後に代入すれば良いです
0747739
2013/05/10(金) 22:28:14.40> main内部で値を入力(初期値代入)してから関数呼び出したいんですが
ちなみに静的に初期化したいのであれば、>>738の方法がスマートだと思います
0749デフォルトの名無しさん
2013/05/10(金) 22:34:47.34739
さんありがとうございます。
ちょっと考えて見ます。
0750デフォルトの名無しさん
2013/05/10(金) 22:42:45.51{
return *(int*)a - *(int*)b;
}
これ何で引いてるの?
>
<
とどう違うの?
0751デフォルトの名無しさん
2013/05/10(金) 22:47:21.91> これ何で引いてるの?
大小を比較するため
0752デフォルトの名無しさん
2013/05/10(金) 22:57:56.90double **a;
a[0][0]=1.0;
return 0;
コンパイルはできますが、
Segmataion faultがおきます。
何故でしょう?
0753デフォルトの名無しさん
2013/05/10(金) 23:02:52.72サイズは適当に20*20くらいでいいですね。
とにかく二次元配列をmainで作って関数に渡したいです。
double**a;
a[0][1]=1.0;
は何故コンパイル成功するのに実行エラーなんでしょう?
代入される値に問題もないしインデックスもアクセスできない
範囲ではないと思うし。
0754デフォルトの名無しさん
2013/05/10(金) 23:03:26.75基礎からやり直して
0755デフォルトの名無しさん
2013/05/10(金) 23:09:22.47><と同じ理由は?
0756デフォルトの名無しさん
2013/05/10(金) 23:09:59.200757デフォルトの名無しさん
2013/05/10(金) 23:15:09.42性格悪いなぁー
リアルでも平気で人に死ねっていうんか?
言うんだろうな
0758デフォルトの名無しさん
2013/05/10(金) 23:16:35.23周りに不幸を撒き散らしてるけど
0759デフォルトの名無しさん
2013/05/10(金) 23:19:42.810760デフォルトの名無しさん
2013/05/10(金) 23:21:14.47ぼぼ一人だけだから。
0761デフォルトの名無しさん
2013/05/10(金) 23:23:04.05コンパイルオプション付けて、警告、エラーを出してみなよ。
0762738 ◆QZaw55cn4c
2013/05/10(金) 23:29:05.91じゃあこれで
http://codepad.org/WbYjbaN5
>double**a;
>a[0][1]=1.0;
>は何故コンパイル成功するのに実行エラーなんでしょう?
今はただ、
「double *a と double a[] は交換可能の場合もあるが、double **a と double a[][] は絶対に交換可能にはなりえない」
とだけ申し上げておきましょうか。
上の codepad でも
static double *a[N];
for (i = 0; i < N; i++)
a[i] = &b[i * M];
が存在している理由がまさしくこれです。詳しくは C FAQ http://www.kouno.jp/home/c_faq/c6.html#0 にあるとおり、時期がくればわかるようになるかと。
0763デフォルトの名無しさん
2013/05/10(金) 23:40:17.31aの値とbの値は配列の隣接する要素ですか?
4, 2, 3, 6, 3, 2, 1, 3, 5, 7
a=4
b=2
であってるでしょうか?
0764デフォルトの名無しさん
2013/05/10(金) 23:47:46.71> aの値とbの値は配列の隣接する要素ですか?
呼び元でそう指定すればそうなるし、
そう指定しなければそうならない。
0765デフォルトの名無しさん
2013/05/10(金) 23:52:04.804-2で正の値ですが正の値を返すとどうなるんですか?
負の数も0も返した後の処理がわからないんですが
どのような勝利を行っているんでしょうか?
*a が *b よりも先であるとき 負の値
*a と *b とのどちらが先でもいいとき 0
*a が *b よりも後であるとき 正の値
0766デフォルトの名無しさん
2013/05/11(土) 00:25:56.89ん?
return *(int*)a - *(int*)b;
は、
[ポインタ値(アドレス) a に入っている int値] - [ポインタ値(アドレス) b に入っている int値]
でしょ
0767デフォルトの名無しさん
2013/05/11(土) 00:27:53.280768デフォルトの名無しさん
2013/05/11(土) 00:29:50.17aの値とbの値は配列が4, 2, 3, 6, 3, 2, 1, 3, 5, 7であれば
a=4
b=2で
4-2=2ですよね?
2で正の数になりますけど正の数と不の数と0の違いを返すとどういう動作をするのでしょうか?
0769デフォルトの名無しさん
2013/05/11(土) 00:31:35.39b-a, a<b 降順
これはそのまま覚えていますが
なぜこうなるのか意味がわかりません
0770デフォルトの名無しさん
2013/05/11(土) 02:28:35.39> aの値とbの値は配列が4, 2, 3, 6, 3, 2, 1, 3, 5, 7であれば
> a=4
> b=2で
違います。
>>750の続きだと思うけど、
a と b には、呼び元が
int compare_int(const void *a, const void *b)
を呼ぶときに第一第二引数それぞれに指定した「アドレス値」が入ります。
compare_int();は、
a, b それぞれのアドレスにあるデータを int値と判断して引き算し、
その結果を返すだけです。
compare_int();は、配列とか意識していません。
指示されたことをやっているだけです。
0771デフォルトの名無しさん
2013/05/11(土) 04:26:57.33ウインドウは消えるのにプロセス消えねーぞ糞が
と思って調べたら終了処理のfreeで止まってた
初期化のバグで宣言しただけのポインタのアドレスを渡してた
条件分岐で基本はmallocやって、使わない場合はNULLを入れるってコード書いてたけど
バグでどっちも通ってなかった
そういう場合は止まるのかよ糞が
最初は見当がつかなくてかなり焦ったんだけど
こういうことが起きないようにする方法を教えまくってください
0772デフォルトの名無しさん
2013/05/11(土) 04:34:04.37アプリ起動時に必ず処理される初期化部分で、
使わない場合のNULL初期化をあらかじめしておくのは?
0773デフォルトの名無しさん
2013/05/11(土) 05:12:48.88malloc()/free() や new/delete をラップして使え
free() に渡そうとしているポインタが、かつて malloc() から取得したポインタかどうかを逐一チェックしておく
二重解放バグの検出にもなる
リリースのときはとりはずせばいい
0774デフォルトの名無しさん
2013/05/11(土) 05:14:26.980775デフォルトの名無しさん
2013/05/11(土) 05:19:03.430776デフォルトの名無しさん
2013/05/11(土) 05:23:05.58悔しかったの?
0777デフォルトの名無しさん
2013/05/11(土) 05:34:03.87アレはひどい
0778デフォルトの名無しさん
2013/05/11(土) 08:56:53.200779デフォルトの名無しさん
2013/05/11(土) 09:09:24.26大小比較を引き算で代用するのは望ましくない
正しく求まらないケースがあるぜ
※ int が 8bit 符号付の系(-128 〜 127) だとして
a = 100, b = -100 の場合
引き算すると 200 がオーバーフローして -56 になる
a > b なのに a-b の値は負
0780デフォルトの名無しさん
2013/05/11(土) 09:13:00.26たしかにそういうときはキャリーフラグではなくて別途設けられたオーバーフローフラグを使うよねマシン語でも
0781デフォルトの名無しさん
2013/05/11(土) 10:06:17.57そんなの知ってんだけど
アドレスにあるデータはなんなのよ
0782デフォルトの名無しさん
2013/05/11(土) 10:10:29.79アドレスにあるデータは、compare_int();に指定されたアドレスにあるものです。
彼(あなた?)の質問内容では、compare_int();に配列が指定されているのか
何が指定されているのかはうかがい知ることは出来ません。
0783デフォルトの名無しさん
2013/05/11(土) 10:11:59.41> ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
と書いてある通り、★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい
0784デフォルトの名無しさん
2013/05/11(土) 10:14:15.130785デフォルトの名無しさん
2013/05/11(土) 10:22:15.44int A[10];
int B, C;
呼び出し側
A[0] と A[1] の大小を比較したい
compare_int(A, A+1); /* compare_int(&A[0], &A[1]); */
B と C の大小を比較したい
compare_int(&B, &C);
呼び出された側
int compare_int(const int *a, const int *b)
a、b からは 配列の一部の位置 なのか 単変数のポインタなのか知る術はない
-----------
ソートかなんかの途中で出てきたんだろうな....
値の比較を、関数をコールバックにし呼び出し元側にまるなげしといて
要素の交換戦略を記述するっていう
0786デフォルトの名無しさん
2013/05/11(土) 10:37:10.42a>b 昇順
a<b 降順
a-b 昇順
b-a 昇順
になる理由は?
決まってるもの?
0787デフォルトの名無しさん
2013/05/11(土) 10:54:24.320788デフォルトの名無しさん
2013/05/11(土) 12:26:16.40なければCで組みたいんですが.......
0789デフォルトの名無しさん
2013/05/11(土) 12:31:05.330790デフォルトの名無しさん
2013/05/11(土) 12:48:07.84Stirling
0791デフォルトの名無しさん
2013/05/11(土) 13:31:25.13色々前提を省略して質問してるが....
昇順/降順の並べ替えを行うのはソート関数(多分 標準関数の qsort だと思われる)
qsort の約束では コールバック関数の戻り値(≒ compare_int の戻り値)が
正の場合には b が先行するように
負の場合には a が先行するように
0の場合には 不定(a が先行か bが先行かはわからい)
に並べ替える
a と b を比較し、望みの順序となるよう 正または負または0の値を作りなさい
ただそれだけ。
0792デフォルトの名無しさん
2013/05/11(土) 13:35:09.18fopenでふつーにバイナリモード使えるが?
0793デフォルトの名無しさん
2013/05/11(土) 13:44:51.48ありがとうございます。
>>792
そうなんですか?
やってみます。
0794デフォルトの名無しさん
2013/05/11(土) 14:11:04.360795デフォルトの名無しさん
2013/05/11(土) 14:13:23.55バイナリエディタは関係なかろうが
0796デフォルトの名無しさん
2013/05/11(土) 14:18:09.840797デフォルトの名無しさん
2013/05/11(土) 15:03:08.250798デフォルトの名無しさん
2013/05/11(土) 16:05:38.010799デフォルトの名無しさん
2013/05/11(土) 16:06:10.800800デフォルトの名無しさん
2013/05/11(土) 16:07:47.81for (i = 0; i < SIZE; i++) p[i] = 1;
0801デフォルトの名無しさん
2013/05/11(土) 16:08:56.56ありがとうございます
0802デフォルトの名無しさん
2013/05/11(土) 16:10:21.750803デフォルトの名無しさん
2013/05/11(土) 16:21:39.75それだと1byte毎に1で初期化されて
0x01010101にならないの?
0804デフォルトの名無しさん
2013/05/11(土) 16:27:59.90http://codepad.org/s0irEBN0
あれ?
0805デフォルトの名無しさん
2013/05/11(土) 16:29:27.000806デフォルトの名無しさん
2013/05/11(土) 16:37:53.14関係ないけど #define しといて 10 とか書くなよ
0807デフォルトの名無しさん
2013/05/11(土) 16:44:40.93ご指摘感謝〜
0808デフォルトの名無しさん
2013/05/11(土) 18:16:44.32http://codepad.org/tQlLzLl9
0809デフォルトの名無しさん
2013/05/11(土) 18:43:55.78非負の要素数10個のint型配列xがあって要素は
x[10]={23,46,124,988,786,12,111,123,444332,90};
とします。非負であれば何でもいいです。
この時データを圧縮して再現できるように
するにはどうしたらいいですか?アルゴリズム、それに伴うデータ構造
は何でもいいとします。
どうすれば良いでしょう?
自分の考えは10個の数値を全部足して、オーバーフローすれば
その分を別に保存するというやり方なんですがダメでしょうか?
xsub[3];として
xsub[0]=x[0]+x[1]...x[5];
xsub[1]=x[6]+.....x[9];
0810デフォルトの名無しさん
2013/05/11(土) 18:49:07.730811デフォルトの名無しさん
2013/05/11(土) 18:54:57.00それは自由です。色々なやり方で。今回はファイルとかを保存するんじゃなくて
Cプログラムで使用するデータを別の形で保存するという形式ですね。
0812デフォルトの名無しさん
2013/05/11(土) 18:55:12.40> xsub[3];として
> xsub[0]=x[0]+x[1]...x[5];
> xsub[1]=x[6]+.....x[9];
それで元に戻せるのだろうか。。
俺だったら、x[10];は32bit×10 = 320個のbit列と考えて、
それを圧縮するな。
0813デフォルトの名無しさん
2013/05/11(土) 18:57:21.04a=xsub(-,-,-,...);/*x[0]の値を代入*/
でいつでも呼び出せるみたいな感じに出来たらいいなと思います。
0814デフォルトの名無しさん
2013/05/11(土) 18:57:44.60それどうやって解凍すんのさ
0815デフォルトの名無しさん
2013/05/11(土) 18:58:18.03って通りすがりの小学生がゆってた
0816デフォルトの名無しさん
2013/05/11(土) 18:59:05.07そうすればインデックス入れて置くだけでいい
0817デフォルトの名無しさん
2013/05/11(土) 19:05:08.41char型配列にsprntfで結合
符号化圧縮
数値へ変換
宿題ならこの程度でいいでしょ
0818デフォルトの名無しさん
2013/05/11(土) 19:07:54.77そうすれば復元するときにsizeof(int)単位で区切ればいい
0819デフォルトの名無しさん
2013/05/11(土) 19:10:29.15下手すると辞書サイズと圧縮データあわせて元のデータより
大きくなることもあるからめんどくさいね。
0820デフォルトの名無しさん
2013/05/11(土) 19:13:32.29最初の要素を1バイトずつ分解
0x00 0x00 0x00 0x17
頭に0が何回来たかを、0x00 回数で表す
0x00 0x03 0x17
復元時は先頭から、0x00を読み込んだら、次のバイトの回数0繰り返し
くらいでいいんじゃね
非負だし
0821デフォルトの名無しさん
2013/05/11(土) 19:14:00.26元より大きくなるケースは仕方ない
0822デフォルトの名無しさん
2013/05/11(土) 19:14:37.700823デフォルトの名無しさん
2013/05/11(土) 19:18:54.350824デフォルトの名無しさん
2013/05/11(土) 19:19:58.41最小値 12
最大値 444332
なので、1要素辺り 0〜444320 表現できれば良い
つまり 1要素辺り 19bit あれば良い
x[10];を表現するのに必要なのは、
32bit : 最小値 12 を格納
5bit : 各要素のビット数 19を格納
19bit × 10要素
==> 227bit
約 70.9%に圧縮できる。
こういうのはどう?
0825デフォルトの名無しさん
2013/05/11(土) 19:21:14.93malloc()がプロトタイプ宣言がない関数って出てとっても危なっかしいんですけど
#include <stdlib.h> を入れて欲しいなあ
0826デフォルトの名無しさん
2013/05/11(土) 19:21:39.45ソースデータが19bit以下という保証があればいいんじゃないかな。
0827デフォルトの名無しさん
2013/05/11(土) 19:23:38.13連続性少なそうだから、0だけを圧縮する数値として、圧縮符号分を節約する
0828デフォルトの名無しさん
2013/05/11(土) 19:25:05.22ソースデータによって、各要素に必要なbit数は変動
0829809
2013/05/11(土) 19:28:12.83zipだと10分の1以下だし、あれどんな仕組みなんでしょう。
0830デフォルトの名無しさん
2013/05/11(土) 19:30:12.38可逆圧縮の仕組みは基本的に辞書+圧縮データの形。
ただ今回はソースが40byteと非常に小さいので、下手すると
辞書サイズと圧縮データサイズで元データを超えることがある。
これを避けるには何らかの前提条件が必要だし、普通はそれ
があるはずなんだけど、本当に出題はそれだけ?
0831809
2013/05/11(土) 19:35:01.470832デフォルトの名無しさん
2013/05/11(土) 19:35:13.240833デフォルトの名無しさん
2013/05/11(土) 19:37:08.36その10*sizeof(int)のデータ作って自分で圧縮してみれば?
0834809
2013/05/11(土) 19:40:43.27変えてOKだそうです。ただ非負という条件はそのままです。
辞書って何ですか?
0835デフォルトの名無しさん
2013/05/11(土) 19:47:20.50辞書とか言ってるけど、具体策出ねえじゃんか
0836デフォルトの名無しさん
2013/05/11(土) 19:48:35.810837デフォルトの名無しさん
2013/05/11(土) 19:48:41.710838デフォルトの名無しさん
2013/05/11(土) 19:49:48.95byte pair encodingでgoogle検索してこい。
そして二度と帰ってくるな。
0839デフォルトの名無しさん
2013/05/11(土) 19:52:08.07俺は質問してるけど叩かれない
叩いてるやつは全部俺だから
0840デフォルトの名無しさん
2013/05/11(土) 19:52:30.37unsigned short y[10];
for (i=0; i<10; i++)
y[10] = x[10];
0841771
2013/05/11(土) 19:52:55.03初期化処理にその条件分岐があるからその直前に入れることになる
//初期化
m = NULL;
if (条件1){
if (条件2) m = (int*)malloc( sizeof( int ) * 200 );
else m = NULL;
}
こうか?嫌だよm=NULLが頻繁に出てなんかダサいじゃん
実際は条件2の前にちょっと処理あってそれが条件2に影響するからif ( 条件1 && 条件2 )みたいにまとめられねーしダサすぎよって却下
・・・・と言いたいところだがバグ出してfreeでプロセス残って発狂したので文句はありません
これでいきます
>>773
聞いた感じ良さそうだけど具体的にどんなラッパーを作ればいいかよく分からない
とりあえず>>772のエキセントリックな案でいきます
ありがとうございました
0842デフォルトの名無しさん
2013/05/11(土) 19:54:20.52それって水遁依頼出してきてもいいってことだね?
0843デフォルトの名無しさん
2013/05/11(土) 20:04:46.64無能
0844デフォルトの名無しさん
2013/05/11(土) 20:04:56.35それelseいらねえじゃんか
だっせー
0845デフォルトの名無しさん
2013/05/11(土) 20:12:55.54//初期化
m = NULL;
if (条件1 && 条件2)
m = (int*)malloc( sizeof( int ) * 200 );
ネスト浅くなってよかったね!
0846デフォルトの名無しさん
2013/05/11(土) 21:10:32.50そういう出題意図だったのか
0847809
2013/05/11(土) 22:49:38.55a[0]=1234;
a[1]=3456;
a[2]=899;
a[3]=90000;
c[0]=12343456;
c[1]=89990000;
これじゃダメですか?
どうやって再現できるか分かりませんけど。
0848デフォルトの名無しさん
2013/05/11(土) 22:55:02.100850デフォルトの名無しさん
2013/05/11(土) 22:58:20.50数値が4桁以下とかそういう条件があればそれでもできる。
0852デフォルトの名無しさん
2013/05/11(土) 23:14:41.71元 32bit x 10個 → 320bit (40 byte)
非負前提ならば 31bit x 10個 → 310bit (38.75: 39 byte)
最上位bit を切り詰めて保持すれば 1byte 減らせるじゃん
31bit 抜き出して 最上位0 補うだけで元に戻るし 可逆圧縮だぞ
0854809
2013/05/11(土) 23:32:13.10かなりややこしくなりそうな気がしますが。
0855デフォルトの名無しさん
2013/05/11(土) 23:32:17.8138.75 byte を切り上げて 39 byte にしてるだけ
39 byte (312 bit) のうち どこかの2bit は使わない
宿題スレ行ったら?
0856デフォルトの名無しさん
2013/05/11(土) 23:38:05.010857デフォルトの名無しさん
2013/05/11(土) 23:55:47.37gccでコンパイルする場合どうやれば見れますか?
http://blog.kmckk.com/archives/1263971.html
-save-tempsで中間ファイルとあるのですが、やってみたら*.iという拡張子のファイルができていました
これは中間言語とは別っぽいんですが
見れたりするのでしょうか?教えてください
0858デフォルトの名無しさん
2013/05/11(土) 23:58:51.28最近の gcc では -flto オプションを付けると .o の中に一緒に埋め込まれるはずだが、
人がそのまま見て読めるようなシロモノじゃない。
0859デフォルトの名無しさん
2013/05/12(日) 00:03:44.82中間コードを見たいなら LLVM/clang の方がいい
0860デフォルトの名無しさん
2013/05/12(日) 00:11:11.63ありがとう
試してみたけど読めなかった
意味解析で中間言語RTLができると理解しとく
0861デフォルトの名無しさん
2013/05/12(日) 00:16:36.430862デフォルトの名無しさん
2013/05/12(日) 03:10:18.32http://codepad.org/Ye6NkSkN
0863デフォルトの名無しさん
2013/05/12(日) 03:10:41.360864デフォルトの名無しさん
2013/05/12(日) 08:50:34.45C言語初心者でC#は軽く触ったことがあります
0865デフォルトの名無しさん
2013/05/12(日) 09:06:33.53Cはポインタを使わないと何もできん
強力かつ原始的というのは合ってる
0866デフォルトの名無しさん
2013/05/12(日) 11:59:19.93領域外アクセスあるか要素アクセスするときに毎回チェックしたけどこれじゃないっぽい
アドレスも宣言したときとfreeするときは一緒だった
考えられる原因は何しょうか
0867デフォルトの名無しさん
2013/05/12(日) 12:00:49.650868デフォルトの名無しさん
2013/05/12(日) 12:04:09.77そうでなければ freeが間違ってる
それ以上はわからん
0869デフォルトの名無しさん
2013/05/12(日) 12:08:22.860870デフォルトの名無しさん
2013/05/12(日) 12:08:44.910871デフォルトの名無しさん
2013/05/12(日) 12:08:48.76その malloc - free の処理以外の処理が壊している可能性もあるな
0873デフォルトの名無しさん
2013/05/12(日) 12:21:03.77ttp://ideone.com/uWhfK8
こんな感じ。
18行目までは printfされるけど、19行目のfreeが失敗
0874デフォルトの名無しさん
2013/05/12(日) 12:25:29.420875デフォルトの名無しさん
2013/05/12(日) 12:29:21.450876デフォルトの名無しさん
2013/05/12(日) 12:30:52.830877デフォルトの名無しさん
2013/05/12(日) 12:32:18.580878デフォルトの名無しさん
2013/05/12(日) 12:35:08.19ああ、俺は質問側(>>866)じゃなくて回答側。
>>873は、p2と関係無さそうなp1の処理が
free(p2)の動作に影響する例。
0880デフォルトの名無しさん
2013/05/12(日) 12:36:56.17int *b=(int*)malloc(sizeof(b));
ってやってたのを
int *a=(int*)malloc(sizeof(int)*size);
int *b=(int*)malloc(sizeof(int)*size);
にしたら直りました
0881デフォルトの名無しさん
2013/05/12(日) 12:38:23.83int *b=(int*)malloc(sizeof(a));
ミスってた方の訂正ですが本当はこうやってました
0882デフォルトの名無しさん
2013/05/12(日) 12:39:04.96int *b; のために確保されていたメモリが足りなすぎたのか
0883デフォルトの名無しさん
2013/05/12(日) 13:07:52.490884デフォルトの名無しさん
2013/05/12(日) 13:26:59.86保証はない。そもそもmallocした領域は、確保分+管理データの
領域が含まれているので、仮に連続領域だったとしてもまとめて
書き込んだら管理領域を壊す。
0885デフォルトの名無しさん
2013/05/12(日) 13:30:00.560886デフォルトの名無しさん
2013/05/12(日) 13:35:56.26理解出来ないんなら黙ってろ
0887デフォルトの名無しさん
2013/05/12(日) 13:45:32.45じゃあなんでリークするんだ
0888デフォルトの名無しさん
2013/05/12(日) 13:46:15.461000確保した領域に2000書いたらいかんだろうが。
それが全ての原因だ。
0889デフォルトの名無しさん
2013/05/12(日) 13:49:31.49だから、じゃあ何を管理する領域なんだよ
fopenと混同してないか?
0890デフォルトの名無しさん
2013/05/12(日) 13:53:50.050891デフォルトの名無しさん
2013/05/12(日) 13:53:51.95Cやめろ
0892デフォルトの名無しさん
2013/05/12(日) 13:55:06.000893デフォルトの名無しさん
2013/05/12(日) 13:56:43.01何を管理するか?free()で返されたポインタが自分で管理している
メモリーブロックのどれに当たるかを判別する領域だよ。
一般的な実装でのmallocだと、確保したブロックの手前にブロックの
サイズなどの管理データをつけてある。
2つのmallocが仮に連続領域だったとしても1つめのブロックの領域
を超えて書き込んだら次のブロックの管理領域を壊す。
だから「ヒープが壊れている」というメッセージが出る。
2つのmallocが連続していなかった場合は深刻で、間のメモリーに
記録されている「誰のデータかわからない領域」を壊していく。
こういう馬鹿げたプログラムは即刻やめるべき。
1000確保したら1000までしか使ってはいかん。
0894デフォルトの名無しさん
2013/05/12(日) 14:08:00.83sizeof が返す値はコンパイル時定数
0895デフォルトの名無しさん
2013/05/12(日) 14:10:56.400896デフォルトの名無しさん
2013/05/12(日) 14:12:41.77馬鹿
0897デフォルトの名無しさん
2013/05/12(日) 14:13:06.27ポインタのsizeofはポインタ自身のサイズがわかるだけ。
根本的にポインタやC標準ライブラリに対する理解不足。
知らないくせに知ったかぶって反論すると恥をかくぞ。
0898873
2013/05/12(日) 14:19:28.18いや>>873のソースは、>>872の
> 他にも同サイズの領域を確保していますが具体的にどのように起きるのでしょうか
という問いに対して、>>870や>>871の説明を可視化させたつもりで
「こういうことをやっているんじゃないの?」
という例を見せるために書いたもの。
IDが出ていれば間違われないで済んだかなあ
0899デフォルトの名無しさん
2013/05/12(日) 14:20:44.530900デフォルトの名無しさん
2013/05/12(日) 14:21:40.080901デフォルトの名無しさん
2013/05/12(日) 14:27:40.95>>895は>>872(質問者)=>>873(俺)と勘違いしたんだろうから
ID出ていたらそれは無かったと思うがね
0902デフォルトの名無しさん
2013/05/12(日) 14:35:56.830903デフォルトの名無しさん
2013/05/12(日) 14:37:30.200904デフォルトの名無しさん
2013/05/12(日) 14:44:42.53質問者に対してなりすまし妨害しといて謝らないしね
0905904
2013/05/12(日) 14:45:49.60s/日本/日本語/
0906デフォルトの名無しさん
2013/05/12(日) 14:45:50.200907デフォルトの名無しさん
2013/05/12(日) 14:48:07.970908デフォルトの名無しさん
2013/05/12(日) 14:57:13.65そんなこたぁない
0909デフォルトの名無しさん
2013/05/12(日) 14:57:24.400910デフォルトの名無しさん
2013/05/12(日) 14:58:10.370911デフォルトの名無しさん
2013/05/12(日) 15:03:18.410912デフォルトの名無しさん
2013/05/12(日) 15:04:28.57配列と同じじゃないの?
0913デフォルトの名無しさん
2013/05/12(日) 15:08:01.850914デフォルトの名無しさん
2013/05/12(日) 15:32:08.76短いプログラムなのですが初心者なものでどうにもわからないのです
0915デフォルトの名無しさん
2013/05/12(日) 15:33:56.06使って調べて見るとわかるかもしれない。
必読書:エキスパートCプログラミング
アマゾンで調べればすぐ出てくるので注文して読みましょう。
0916デフォルトの名無しさん
2013/05/12(日) 15:36:37.36http://codepad.org/MEazU7O6
0917デフォルトの名無しさん
2013/05/12(日) 15:40:40.39だろ
0918 忍法帖【Lv=2,xxxP】(1+0:5)
2013/05/12(日) 16:14:03.530919デフォルトの名無しさん
2013/05/12(日) 16:29:42.48★初心者以前の質問に雪崩のように答えるスレ★
http://toro.2ch.net/test/read.cgi/tech/1331930031/
0920デフォルトの名無しさん
2013/05/12(日) 18:15:13.03cubic[0]=x1.........cubic[8]=x9;
xkは1〜9のどれか。
インデックス3個ずつで1行として
326
459
781
という3次正方配列を想定するとする。
このとき縦横隣り合ってる2つを選んで入れ替えて
できるだけ少ない回数で
123
456
789
にしたいです。
どういうアルゴリズムがいいですか?
10×10にも適用できるような凡庸なアルゴリズムがいいです。
3×3の場合は
クイックソート3回でできると思うんですがどうでしょう?
0921デフォルトの名無しさん
2013/05/12(日) 18:19:55.58隣り合ってるものを交換するのにクイックソート
ふざけすぎだろwww
0922デフォルトの名無しさん
2013/05/12(日) 18:21:19.53頭混乱しててw
クイックソートは無理ですよね
どうすればいいですかね?
バブルソート以外無理ですかね?
0923デフォルトの名無しさん
2013/05/12(日) 18:22:23.790924デフォルトの名無しさん
2013/05/12(日) 18:24:06.57まず水平方向をバブルソートして
縦方向をバブルソートすれば3×3の場合は(3+3)×3^2/2回数で
済むと思うんですけどもっと効率的な方法ありますかね?
0925デフォルトの名無しさん
2013/05/12(日) 18:25:54.47N番目にNをいれるだけ
元々入っている数字もソートも一切関係ない
ひっかけ問題だな
0926デフォルトの名無しさん
2013/05/12(日) 18:28:58.51パズルとして考えて欲しいです。
その論理だと数独だってそうでしょ?
0927デフォルトの名無しさん
2013/05/12(日) 18:29:33.660928デフォルトの名無しさん
2013/05/12(日) 18:33:17.67N番目にソートした値列[N]が入る、にかわるだけで
同じことだよ
0929デフォルトの名無しさん
2013/05/12(日) 18:38:03.53あれ凄くないか?
0930デフォルトの名無しさん
2013/05/12(日) 18:41:31.820931デフォルトの名無しさん
2013/05/12(日) 18:41:49.57http://www.pro.or.jp/~fuji/
0932デフォルトの名無しさん
2013/05/12(日) 18:46:27.06各マスの候補を順に消していけば、計算量を少なく出来る。
制約プログラミングのやり方を応用。
0933デフォルトの名無しさん
2013/05/12(日) 18:49:15.53アルゴリズム何行?
何行くらいですむん?
普通に幅優先探索(横型探索)でしらみつぶしがいいでしょうね
0935デフォルトの名無しさん
2013/05/12(日) 20:37:51.96これって有名なアルゴリズムがあるんじゃないのかね。
4x4パズルをさくっとといてドヤ顔してる人を見たことあるけど。
0936デフォルトの名無しさん
2013/05/12(日) 23:32:37.990937デフォルトの名無しさん
2013/05/13(月) 15:28:21.90今世の中の有名DB、PostgreSQLやMySQLを超える高速DBを作って公開して自己顕示欲を満たしたいので教えてくださいお願いします。
0938デフォルトの名無しさん
2013/05/13(月) 15:33:50.700939デフォルトの名無しさん
2013/05/13(月) 15:41:03.7416ギガのメモリ搭載前提で作れば高速なのが作れそう
0940デフォルトの名無しさん
2013/05/13(月) 15:46:59.41だからそれを知って改善ポイントを見つけようって寸法です。
なんかキャッシュらしきものがあるとか、レコードの削除も実際には削除せずに削除フラグ立てるだけとか
4KB単位のブロックで記憶領域を確保して頻繁に領域の拡張が起きないようにするとか、そういうことしか知らないです。
俺が使える言語の中ではCが一番速いのでここに来ました。
0941デフォルトの名無しさん
2013/05/13(月) 15:50:57.1416GBってこのご時世業務用鯖なら普通に積んでてもおかしくないですな。
いけそういけそう。
ところで何で16GBなんですかね?
0942デフォルトの名無しさん
2013/05/13(月) 15:55:47.74あれはどうやって調べるの?
0943デフォルトの名無しさん
2013/05/13(月) 15:57:48.81調べるってマニュアルに書いてあるよ。
0944デフォルトの名無しさん
2013/05/13(月) 16:12:14.01C スレだし、開発者の立場だろ。
0945デフォルトの名無しさん
2013/05/13(月) 16:18:22.66必須(最低)動作環境を最初に決めてから、それに合わせて作るというアプローチもある。
0946デフォルトの名無しさん
2013/05/13(月) 16:36:18.01それが普通なんじゃないの?
想定せずに作って、できてからどのくらいの低スペックまでなら動くか調べるとかしないと思うけど。
0947デフォルトの名無しさん
2013/05/13(月) 16:54:02.00まずソースを読んではどうか
0948デフォルトの名無しさん
2013/05/13(月) 16:55:47.38最低想定をCPU2GHz、メモリ1GB、HDD2GBで作ったとするだろ?
でも完成してみたら1.4GHz、512MB、1GBでも動くかもしれないだろ?
そういう環境だけど欲しい客がいるかもしれないだろ?
「動くとは思いますが自己責任でお願いします^w^」ってみすみす客を逃すのか?
0949デフォルトの名無しさん
2013/05/13(月) 17:02:10.481.4GHz、512MB、1GBの客が欲しければ
最初から最低想定をそれで作るのが普通
と思うが
0950デフォルトの名無しさん
2013/05/13(月) 17:09:33.110951デフォルトの名無しさん
2013/05/13(月) 17:11:03.040952デフォルトの名無しさん
2013/05/13(月) 17:18:17.37自分のPC == 開発環境 == テスト環境 == 最低想定
ってことになると思うけど、
あの人たちは自分のPCスペックを書いてるわけ?
0953デフォルトの名無しさん
2013/05/13(月) 17:21:05.25必要ディスク容量はインストールする全ファイルの合計容量見れば分かるだろ
0954デフォルトの名無しさん
2013/05/13(月) 17:24:43.053.2ghzのcpuで瞬間最大10%使ってるなら320mhzあればよい
0955デフォルトの名無しさん
2013/05/13(月) 17:27:37.99むかしフリーソフトを公開したときは、2chで動作確認してくれる人を探してお願いした。
0956デフォルトの名無しさん
2013/05/13(月) 17:27:56.950957デフォルトの名無しさん
2013/05/13(月) 17:38:45.78その発想はなかった。
# そして、全く意味がない。
0958デフォルトの名無しさん
2013/05/13(月) 17:40:36.35単なる総当たりでやる場合:
数字の重複などを全く考えない場合の組み合わせは、9^81通り。
さまざまな条件などを反映させた場合の組み合わせは、約54億通りになる。
(54億通り=5.4*1000*1000*1000)
1msあたり1000通りチェックできたとして(1秒間に1000*1000通り)、5400秒かかる。
(5400秒=1.5時間)
実際は、1秒あたり100万パターンもチェックできないので、適切なアルゴリズムとコードの最適化を
行わなければならない。
0959デフォルトの名無しさん
2013/05/13(月) 17:43:13.650960デフォルトの名無しさん
2013/05/13(月) 17:50:55.01数独自動解法プログラム(ソースあり)
http://dogmap.jp/2009/09/10/%E6%95%B0%E7%8B%AC%E8%87%AA%E5%8B%95%E8%A7%A3%E6%B3%95%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0/
に
数学のエキスパートが3ヶ月かけて作成した「世界一難しい数独」
http://gigazine.net/news/20100822_hardest_sudoku/
を食わせてみたんだが、一瞬で回答が出たけど。
ソースは見てない。
0961デフォルトの名無しさん
2013/05/13(月) 17:57:10.99総当りで解く分には凄まじく簡単だよ。人手でやると時間が掛かりすぎて話にならないけど。
逆に、真面目に理詰めで解こうとすると、仮に「世界一難しい」をLevel7とすると私が解けるのがLevel2かLevel3、
一般向けの数独のゲームソフトはLevel1程度で新聞のおまけなんかだとLevel0。
0962デフォルトの名無しさん
2013/05/13(月) 17:58:03.75全ての組み合わせをチェックする必要はさらさらないよ。バックトラックで充分。
0963デフォルトの名無しさん
2013/05/13(月) 17:59:51.85素人製作のフリーソフトなんか出したら
それこそ千差万別
0964デフォルトの名無しさん
2013/05/13(月) 18:00:33.34アルゴリズム考えないと
0965デフォルトの名無しさん
2013/05/13(月) 18:01:17.08CPUによって特殊機能に違いがあったりするからなぁ
0966デフォルトの名無しさん
2013/05/13(月) 18:06:50.80残った未確定は候補のうちの数字をひとつ試しに入れてみて
矛盾が発生したら別の数字を入れて試して、
最後まで矛盾なく埋まったら完了。
で良いんじゃない?
0967デフォルトの名無しさん
2013/05/13(月) 18:07:41.96総当りと変わんないねそれ
0968デフォルトの名無しさん
2013/05/13(月) 18:13:06.04総当たりの組み合わせが、例えば
81!から80!に
ひとつ減るだけで81倍の速度になる。
81!から78!に
3つ減るのなら511920倍の速度になるのである。
0969デフォルトの名無しさん
2013/05/13(月) 18:19:11.24>>951が総当たりでいいとか言ってたので、総当たりでやった場合の計算量を示したまで。
0970デフォルトの名無しさん
2013/05/13(月) 18:54:05.73何回もシュミしてればいらん変数残したままだよな
0971デフォルトの名無しさん
2013/05/13(月) 18:57:01.750972デフォルトの名無しさん
2013/05/13(月) 19:12:40.64どんなマイナーコンパイラだよ
0973デフォルトの名無しさん
2013/05/13(月) 19:22:11.260974デフォルトの名無しさん
2013/05/13(月) 19:23:23.94スペルミスしても平気で空の値返してくるとか狂気の沙汰だよな
0975デフォルトの名無しさん
2013/05/13(月) 19:27:01.33出してくれたほうが嬉しいわ
使わない変数消せると気持ちいい
0976デフォルトの名無しさん
2013/05/13(月) 19:31:56.82かなりうざい
0977デフォルトの名無しさん
2013/05/13(月) 19:37:50.66それ思う
Perlもuse strict;付けないとデフォルトでその動作するからやってられない
バグがあっても発見するのは困難を極める
宣言なし言語は、スペルミス絶対しないとか、大量のコードの中からスペルの違うものを瞬時に見つけられるとか
そういうアスペ専用言語
0978デフォルトの名無しさん
2013/05/13(月) 19:42:56.57今まで使われたことのない変数呼び出すと普通に警告してくれる
0979デフォルトの名無しさん
2013/05/13(月) 19:49:11.400980デフォルトの名無しさん
2013/05/13(月) 19:56:56.99CじゃなくてC++の話だけど、
テンプレート使うと一部の警告を無効化しなきゃうざいことになるんだよんぁ
0981デフォルトの名無しさん
2013/05/13(月) 20:18:10.65はっきり発音すれば認識してくれるよ
printfはプリンまでいったら一番上の候補として出てくる
テトリス1時間かかったの10分で作れたわ
皆絶対やったほうがいい
0982デフォルトの名無しさん
2013/05/13(月) 20:20:39.01DIO乙
0983デフォルトの名無しさん
2013/05/13(月) 20:34:42.090984デフォルトの名無しさん
2013/05/13(月) 20:36:58.69C言語なら俺に聞け(入門編)Part 115
http://toro.2ch.net/test/read.cgi/tech/1368444993/
0985デフォルトの名無しさん
2013/05/13(月) 20:42:20.14平均的マなら普通に打ったほうが早い
0986デフォルトの名無しさん
2013/05/13(月) 20:47:41.81数独自動解法プログラムは昔俺も作った
一瞬で25x25のやつも解けるから
数独を手動で解くのとかバカらしいよね
0987デフォルトの名無しさん
2013/05/13(月) 21:08:45.600988デフォルトの名無しさん
2013/05/13(月) 21:10:51.410989デフォルトの名無しさん
2013/05/13(月) 21:37:31.470990デフォルトの名無しさん
2013/05/13(月) 21:39:52.100991デフォルトの名無しさん
2013/05/13(月) 21:45:15.810992デフォルトの名無しさん
2013/05/13(月) 21:53:34.120993デフォルトの名無しさん
2013/05/13(月) 21:53:49.460994デフォルトの名無しさん
2013/05/13(月) 21:54:14.280995デフォルトの名無しさん
2013/05/13(月) 21:54:44.570996デフォルトの名無しさん
2013/05/13(月) 22:09:14.14×シュミ
◎シミュ
0997デフォルトの名無しさん
2013/05/13(月) 23:11:29.090998デフォルトの名無しさん
2013/05/13(月) 23:53:24.140999デフォルトの名無しさん
2013/05/14(火) 00:52:47.071000デフォルトの名無しさん
2013/05/14(火) 00:54:46.8710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。