祝49回 C言語ならあっしに聞け
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNG0002デフォルトの名無しさん
NGNGむしろ質問する前にWEBで検索するのが常識だ。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。
コンパイラを探しているなら >>2 を見よ。
上記を逸した場合の結果は激しく未定義とする。ウヒ
C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
0003デフォルトの名無しさん
NGNG22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
20 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
19 http://pc.2ch.net/tech/kako/1020/10207/1020756993.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
15 http://pc.2ch.net/tech/kako/1016/10165/1016519243.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1013/10139/1013990673.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1008/10083/1008300863.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
7 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html
0004デフォルトの名無しさん
NGNG45 http://pc3.2ch.net/test/read.cgi/tech/1038405432/ (待機中)
44 http://pc3.2ch.net/test/read.cgi/tech/1037796472/ (待機中)
43 http://pc3.2ch.net/test/read.cgi/tech/1037281411/ (待機中)
43 http://pc3.2ch.net/test/read.cgi/tech/1037134356/ (待機中)
42 http://pc3.2ch.net/test/read.cgi/tech/1037101156/ (待機中)
41 http://pc3.2ch.net/test/read.cgi/tech/1036876790/ (待機中)
40 http://pc3.2ch.net/test/read.cgi/tech/1036673739/ (待機中)
39 http://pc3.2ch.net/test/read.cgi/tech/1036409391/ (待機中)
38 http://pc3.2ch.net/test/read.cgi/tech/1035729526/ (待機中)
37 http://pc3.2ch.net/test/read.cgi/tech/1035623265/ (待機中)
36 http://pc3.2ch.net/test/read.cgi/tech/1035211039/ (待機中)
35 http://pc3.2ch.net/test/read.cgi/tech/1034337064/ (待機中)
34 http://pc3.2ch.net/test/read.cgi/tech/1033240509/ (待機中)
33 http://pc3.2ch.net/test/read.cgi/tech/1032606064/ (待機中)
32 http://pc3.2ch.net/test/read.cgi/tech/1031905402/ (待機中)
31 http://pc3.2ch.net/test/read.cgi/tech/1031340950/ (待機中)
30 http://pc3.2ch.net/test/read.cgi/tech/1030786546/ (待機中)
29 http://pc3.2ch.net/test/read.cgi/tech/1029605182/ (待機中)
28 http://pc3.2ch.net/test/read.cgi/tech/1028495798/ (待機中)
27 http://pc3.2ch.net/test/read.cgi/tech/1027160374/ (待機中)
26 http://pc.2ch.net/tech/kako/1026/10260/1026048820.html
25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
0005デフォルトの名無しさん
NGNG47 http://pc3.2ch.net/test/read.cgi/tech/1040048202/l50
0006デフォルトの名無しさん
NGNG>>2で「>>2 を見よ。」なんて書いてるし…
0007名無し募集中。。。
NGNG空域読め
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGもう冬休みは終わっただろ
冬厨は学校に備えて寝ろ
0011デフォルトの名無しさん
NGNGお前もな
0012前スレの930
NGNGいろんなサイト探したんですが、リンク切ればかりだったので。。
0013デフォルトの名無しさん
NGNG何故分かった!?
0014Cというより国語です
NGNGポインタのような大事な機能の説明は改善した。元の例題をさらに洗練させ、
いくつかの章で新しい例を追加してある。
(ここまでは分かる)
例えば、複雑な宣言の扱いは、宣言をことばに、
あるいはその逆に変化するプログラムで補った。
よく分からない・・・。
0015デフォルトの名無しさん
NGNGtarball でよければここに。
http://ftp.gnome.org/pub/GNOME/sources/imlib/1.9/
RPM ならデストリビュータのサイトでさがせばあるはず。
その場合は開発版もインストールすること。
また、それぞれのフォーマットを表示するのに
libjpeg, libtiff, libpng, libgif などのライブラリを必要とする。
つか、いまどきの Linux ならどれも入ってない?
0016名無しさん@XEmacs
NGNG読み進めていけば分かるはず
0017デフォルトの名無しさん
NGNGつーか英文科卒の訳者じゃしゃーねーよ。
0018デフォルトの名無しさん
NGNGソースは?
0019デフォルトの名無しさん
NGNG一体どんな経歴で
と思ったら略歴に東大の計算機センターって書いてあるな…
0020デフォルトの名無しさん
NGNG002112
NGNGで、インストールしてhttp://larse-gtk.hp.infoseek.co.jp/imlib/image.htmlここの
プログラムをコンパイルしてみたら、そもそもgdk_imlib.hが無いとか
言われたんで、むりやりPATH通ってるフォルダにそれをコピーしたら、
こんどは、リンク先のプログラムのgdk_imlib_get_colormapとか
gdk_imlib_...系のが全てundefinedと言われてしまうのですが、何が
まずいんですか?
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG最近のは直ってるのかなぁ。
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG002612
NGNGこのプログラムをコンパイルさせたいのですが、何がいけないか分かりません。
imlibをインストールしたときは
% gzip -dc imlib-1.9.14.tar.gz | tar -xf -
% cd mlib-1.9.14
% env CFLAGS=-O2 ./configure
% make
# make install
としています。
ちなみにGTKはhttp://larse-gtk.hp.infoseek.co.jp/gtk/clist.html
こーゆのがきちんとできるので、問題ないと思います。
0027デフォルトの名無しさん
NGNGコンパイルするときのコマンドラインと出力教えれ
おそらくインクルードパスが足りないかと。
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG003014
NGNGとりあえずもう少しだけ読む勧めていこうと思います。
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNGまかせろヴぉけ
0033デフォルトの名無しさん
NGNG量子コンピュータは0と1を使わない。
1キュービットは、[0|1]こんなんだ。
0034デフォルトの名無しさん
NGNGage。
0035デフォルトの名無しさん
NGNG要するに2ビットですか?
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGいえ、キュービットはnビットの転送ができる確率分布です。
量子コンピュータは、2^nビットの演算を一度に出来ると期待されています。
少なくとも、整数を素数へ因数分解することがP時間でできることが証明されています。
ただし、それ以外のいわゆる「普通の計算」が可能かどうかは、実は不明です。
もちろん汎用化してC言語の環境が整えられることは間違いないでしょうが、
それは早くても2050年以降になることでしょう。
0039デフォルトの名無しさん
NGNG#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int x,y,dx,dy;
void put_mark(int x, int y)
{ move(x-2,y-2); cont(x+2,y+2);
move(x+2,y-2); cont(x-2,y+2);
move(x,y);
}
void forward(){
x=x+dx;
y=y+dy;
cont(x,y);
put_mark(x,y);
}
void left_turn(){
int tmp;
tmp=dx; dx=-dy; dy=tmp;
}
void right_turn(){
int tmp;
tmp=dx; dx=dy; dy=-tmp;
}
004039の続き
NGNGvoid analysis(ch)
{
switch(ch){
case 'F': forward(); break;
case 'R': right_turn(); break;
case 'L': left_turn(); break;
}
}
void turtle()
{
int ch;
while((ch=getchar())!=EOF){
if(isalpha(ch)) analysis(ch);
}
}
int main()
{
openpl();
space(-300,-300,300,300);
x=0;
y=0;
dx=0;
dy=10;
put_mark(x,y);
turtle();
closepl();
return 0;
}
004139の続き
NGNGどこをどうすればいいですか?例えば、5Fと入力するとFFFFFとおなじ動きをする。さらに@と#でくくった部分を!で呼び出せるようにしたいんですが。
できるだけ初心者でもわかるような簡単なぷらぐらむでおねがいしたいんですが。for文とかwhileぶんとかif文みたいなので。
わがままでスマソ。
0042デフォルトの名無しさん
NGNG何が一番わがままかって、このスレは基本的にソース丸投げ禁止だぞ。
0043名無し@沢村
NGNG佐野量子が使うPCのこと
0044デフォルトの名無しさん
NGNGただ好みの問題でしょうか?
do { ... } while(0) か { ... } だけかってことなんですが。
#define MACRO1() {\
var1 = foo; \
var2 = bar; \
}
#define MACRO2() \
do { \
var1 = foo; \
var2 = bar; \
} while (0)
0046デフォルトの名無しさん
NGNG散々出てくるFAQなんだがそれ。
if (condition)
MACRO1();
else
foo();
とやったときのことを考えてみれ。
0047デフォルトの名無しさん
NGNGビットシフトはなんの役に立つのでしょうか?
0048デフォルトの名無しさん
NGNGC言語をもっと勉強してからもう一度来てください。
0049デフォルトの名無しさん
NGNGそれはもちろん
ビット演算です。
005047
NGNG具体的にはどんなときでしょうか?
0051デフォルトの名無しさん
NGNGビット演算はなんの役に立つのでしょうか?
0052デフォルトの名無しさん
NGNG//まあ、最適化があるから、ふつーは意識しないのだが。
0053デフォルトの名無しさん
NGNGなどなどなどなど…
0054デフォルトの名無しさん
NGNGハードウェアレベルで絶対に必要
0055_
NGNGCでsnprintfを自作することになりました。
参考になる資料とかありましたら教えてください。
フリーで使えるソースが何処かに落ちていると良いのですが。
0056デフォルトの名無しさん
NGNGvsnprintf 呼んじゃえ。
というのは冗談で。
というか、他人のソースに頼っちゃダメー。
そんなに難しくないはずだぜ。
面倒なだけで。
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGあー、ちくしょー、マルチかよ。
0059デフォルトの名無しさん
NGNG>>2
あんまり言いたくないが、人の二番煎じのネタでゲッターやって楽しいか?
舞みたいにオリジナリティ出したら。
【社会】少年チャンピオンで連載中の漫画家を中傷した元同級生男に550万円賠償命令
http://news2.2ch.net/test/read.cgi/newsplus/1030642180/
http://news2.2ch.net/newsplus/kako/1030/10306/1030642180.html
0060デフォルトの名無しさん
NGNGNo.49のスレが2つあるのが問題なのでは?
0061age
NGNG0062デフォルトの名無しさん
NGNGa[0] = 0.0;
として、a[0]に0が入らないってどういうこと?
0063デフォルトの名無しさん
NGNGその後の何かの処理で書き換えた、とか。
0064デフォルトの名無しさん
NGNGそれはあなたの脳みそが暴走しています。
0065デフォルトの名無しさん
NGNG書き換えてる箇所なんてないのに勝手に
変わるんです。
a[0]=0.0;とした直後は0.0が入っていて
ある行でいきなり変な値が入って・・・。
わけわからん
0066デフォルトの名無しさん
NGNGdouble a[8];
a[0] = 0.0;
printf("%f\n", a[0]);
b[8] = 1.0;
printf("%f\n", a[0]);
0067デフォルトの名無しさん
NGNGdouble[8];
double[0] = 0.0;
*((int*)&x) = 3.8;
0068デフォルトの名無しさん
NGNGdouble[8];
double[0] = 0.0;
x[8] = 3.8;
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGb[1] = 1.1;
007165
NGNGa[i] = 0.0;
}
u_int XX, YY, U_bar, V_bar;
u_int *X, *Y, *u_bar, *v_bar;
X = &XX; Y = &YY; u_bar = &U_bar; v_bar = &V_bar;
X[0] = 355; Y[0] = 435;
X[1] = 747; Y[1] = 429;
X[2] = 747; Y[2] = 453;
X[3] = 355; Y[3] = 458;
X[4] = 97; Y[4] = 281;
X[5] = 889; Y[5] = 256;
X[6] = 882; Y[6] = 326;
X[7] = 10; Y[7] = 347;
というコードにしてて、
X = &XX; Y = &YY; u_bar = &U_bar; v_bar = &V_bar;
をなくすとa[]が書き換えられなくなりました。
どういうことなんでしょうか?
0072デフォルトの名無しさん
NGNG007365
NGNGどこが悪いのでしょうか?
0074デフォルトの名無しさん
NGNGネタだと思いたい・・・
C言語の配列は0から始まるって知ってた?
つまりどういうことかというと
int ary[16];
と宣言すると
ary[0] から ary[15] までの範囲が使えるの
007565
NGNG0から始めてると思うんですけど?
どういうこと?
0076デフォルトの名無しさん
NGNGprintf("%lf",a[0]);
'l'を付けて出力して見て。
double で、宣言しているわけだから。
0077デフォルトの名無しさん
NGNGdouble a[8];なら
8個のdouble型を0から7番地まで確保。
0078デフォルトの名無しさん
NGNGXXとYYが配列で定義されてないから、X[0]〜X[7]とY[0]〜Y[7]も存在しません。
存在しない物に代入しようとすれば、結果は神のみぞ知る。
0080デフォルトの名無しさん
NGNG∧ ∧___ ダッコ♪
/(*゚ー゚) /\
/| ̄∪∪ ̄|\/
| |/
 ̄ ̄ ̄ ̄
0081デフォルトの名無しさん
NGNGX[1]〜X[7]とY[1]〜Y[7]はどうなってるか知らないよ。
0082デフォルトの名無しさん
NGNGおとなしくしてろ
0083デフォルトの名無しさん
NGNG83:「はい」
0084デフォルトの名無しさん
NGNG要するに、ポインタってのが何なのかが分かってないってこと。
まぁ、初心者が大抵陥る状況なわけだが。
0085デフォルトの名無しさん
NGNGポインタと配列は違います
そこを中心に、もう一度、出直しましょう
0086デフォルトの名無しさん
NGNGprintf("%lf", f);
printf("%f", f);
どちらも同じです。
printfのプロトタイプは
int printf(const char *, ...);
なので、...の部分は型情報がありません。
したがって、Cの規約により、...の部分に置かれた
float型の値は格上げされ、doubleで渡されます。
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNGパソコンを分解してマザーボードの仕組みを勉強しよう。
0089デフォルトの名無しさん
NGNGADSLモデムとプリンタと本体に分解しました。
0090デフォルトの名無しさん
NGNGディスプレイとキーボードとマウスとスピーカーとマイクと
ADSLモデムとプリンタ
はパソコンではありません。
0091デフォルトの名無しさん
NGNGモデムとUSBとその他中身に分解しました。
0092デフォルトの名無しさん
NGNGそれでは仕組みの勉強を始めてください。
0093デフォルトの名無しさん
NGNGここは単発質問スレ防止・厨房吸収スレじゃねーのか?
答えたくないなら無視するだけで煽るなや
0094デフォルトの名無しさん
NGNGどこにQがある
またテンプレ貼らなかったのか・・・
いつになったら冬厨は消えてくれるんだ。
0097デフォルトの名無しさん
NGNGlong double はどうなりますか?
0098デフォルトの名無しさん
NGNG>>1-6
0099デフォルトの名無しさん
NGNGgccなら"%Lf"
0100デフォルトの名無しさん
NGNGそういう意味じゃなくてlong doubleを...に渡すとどう型変換されるかということについて聞いているんだと思うけど。
0101デフォルトの名無しさん
NGNGVC++ のヘルプだと...
・実引数が float 型であると、関数呼び出しの前に double 型に拡張されます。
・符号付きまたは符号なしの char型、short 型、列挙型、ビットフィールドは、整数の上位変換によって符号付きまたは符号なしの int 型に変換されます。
しかないから、多分そのまま渡されるんだろ。
0102デフォルトの名無しさん
NGNGlong doubleがdoubleに格下げになる事はないだろう。
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNGprintf("size: %u\n", sizeof(ld));
printf("bit image: %08x %08x %08x %08x\n", ld, -1, -1, -1, -1, -1, -1);
printf("value: %Lf\n", ld);
↓
size: 12
bit image: 00000000 c0e40000 0040400c ffffffff
value: -40960.000000
(MinGW gcc 2.95.2)
という事で、101-102 は正しいっぽい。
99 は嘘っぽい。
0105デフォルトの名無しさん
NGNGいや、MinGWでlong doubleが正しく表示されないのは、msvcrt.dllを
使っているからだそうだよ。
0106デフォルトの名無しさん
NGNG何でそんな事をしてるんだろう?
0107デフォルトの名無しさん
NGNG余計なDLLを使わないようにするため。
0108デフォルトの名無しさん
NGNG昇順に並び替えて出力するプログラムを作成しなさい。
0109デフォルトの名無しさん
NGNGalert(prompt("", "3 2 4 1 5").split(/\s+/g).sort(function(a, b) { return a - b; }).join(" "));
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG回文判定部分を,文字列を受け取るとその文字列が回文なら 1 を、
そうでないなら 0 を返す関数を設計し,置き換える。
という風にしたいんですが、以下のやつからどうしたらいいんでしょうか?
詳しい方どうか教えてくださいませ。
#include <stdio.h>
#define MAX 100
main()
{
char string[MAX];
int n, i;
/* input */
printf("string = ");
scanf("%s", string);
/* strlen */
for (n = 0; string[n] != 0; n++) {
/* 何もしない */
}
/* reverse */
for (i = n - 1; i >= 0; i--)
putchar(string[i]);
putchar('\n');
}
0112デフォルトの名無しさん
NGNGC言語でBMI計算式を書きたいのです。計算式は体重÷(身長×身長)です。
ほとんど初心者なので、一番簡単な計算式でお願いします。
0113デフォルトの名無しさん
NGNG「回文判定部分を (略) 置き換える。」って書いてあるけど、
そのプログラム中に回文判定部分ないぞ。
0114デフォルトの名無しさん
NGNG課題を丸投げするな。
自分の考えやどこまで出来ているのかを書いた方がいいよ。
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNGint foo : 1;
int bar : 2;
}
こんな構造体を発見したのですが、 : ←これって何してるんですか?
0117デフォルトの名無しさん
NGNGビットフィールドです。
0118デフォルトの名無しさん
NGNGOK
0119デフォルトの名無しさん
NGNG変数をインクリメントしながらループさせたいのですが
for文だと必ず1回は実行されますよね?
1回も実行されない状況があるような場合には、
while文中でi++とかやるしかないのでしょうか?
0120デフォルトの名無しさん
NGNGいいえ。
int i;
for(i = 0; i >= 0; i++)
printf("実行されませんよ %d\n", i);
0121デフォルトの名無しさん
NGNG必ず一回は実行されるのはdo〜while
0122デフォルトの名無しさん
NGNGそれは実行されますがなにか?
for(i=0;i<0;i++)でしょ。
0123119
NGNG恥ずかスィ
今までずっと勘違いしてきてました。
for(a;b;c)
でaは前、bとcは後に実行されるのかと…
0124デフォルトの名無しさん
NGNG〜;
0125デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG違う・・・。
for(i = 1; i <= 10; i++)
printf(%d\n", i);
これを goto に直すと、
i = 1; /**** a ****/
loop:
if(i <= 10) /**** b ****/
goto next;
printf(%d\n", i);
i++; /**** c ****/
goto loop:
next:
...
こんな感じ。
a と b が前、c が後。
0128デフォルトの名無しさん
NGNGどこがまちがってるかわかる?
#include <stdio.h>
int main(void)
{
int i, no;
printf("整数を入力してください。:");
scanf("%d", &no);
i = 0;
while (i < no)
{
i++;
printf("%d ", 2^i );
} putchar('\n');
return(0);
}
0129デフォルトの名無しさん
NGNGそれは、べき乗を求める、演算子では、ない
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNGべき乗を求める関数はあるけど。
0133デフォルトの名無しさん
NGNGもう少し考えてみます
0134126
NGNGint main(void)
{
int i, no, sum;
printf("整数を入力してください。:");
scanf("%d", &no);
i = 1;
while (i < no)
{
i = i * 2;
printf("%d ", sum );
} putchar('\n');
return(0);
}
これだとなにがだめなの?
だめなりゆうがわかんないです
0135デフォルトの名無しさん
NGNGsumの、値は、何よ?
0136デフォルトの名無しさん
NGNG> これだとなにがだめなの?
コンパイラの警告レベルを最大にしていないから
sumはいつ初期化されている?
0137デフォルトの名無しさん
NGNGi = i * 2;
0138U ◆CZtFsGiu0c
NGNGまあおそらくsumになにも代入してないのが問題だと思うけど:-)
0139112
NGNG申し訳ありませんでした。
一応、いろいろなものから、見よう見真似で作ったのですが
ほんとに、切ってくっつけたりしただけなので自身がなかったもので。
#include<stdio.h>
int main() {
double weight = ;
double height = ;
double bmi;
bmi = weight / ( height * height );
return(0); }
間違っている場所を教えていただけますでしょうか。
ほんとに全くの初心者で、ごめんなさい(><
0140デフォルトの名無しさん
NGNG何その = ; って。
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGint main() {
bmi = weight / ( height * height );
return(0); }
>112
>ほとんど初心者なので、一番簡単な計算式でお願いします。
簡単でいいならこれだけでいいんじゃん?
0143デフォルトの名無しさん
NGNG1.weightってなに?
2.stdio.hは使いたいの?
3.最後の} の前に改行しようや
4.int main(){return 0;} じゃだめなんか?
5.0で除算はできんだろ
結論。間違っていない場所=五行目。 かな
0144デフォルトの名無しさん
NGNG0145128
NGNG整数を入力してください:19
2 4 8 16
こんな感じで実行結果がでるようにしたいんですが
実行結果が
2 4 8 16 32
となってしまいます。
なぜですか?
#include <stdio.h>
int main(void)
{
int i, no, sum;
printf("整数を入力してください。:");
scanf("%d", &no);
i = 1;
while (i < no)
{
i = i * 2;
printf("%d ", i );
} putchar('\n');
return(0);
}
0146デフォルトの名無しさん
NGNG判定後にiを二倍しているから
0147128
NGNG0148デフォルトの名無しさん
NGNGそういうことは自分で考えるようにしないと力がつかないぞ
0149128
NGNGわかんなくて
ヒントをください
0150デフォルトの名無しさん
NGNG「判定後にiを二倍している」のが問題なんだから「判定前にiを二倍する」
0151デフォルトの名無しさん
NGNG一行ずつコード読んでみ
プログラムは書いてある通りにしか実行されないんだから
読めばどう実行されるのか手に取るようにわかる
0152128
NGNGありがとうございました
0153デフォルトの名無しさん
NGNGfor(i=1;i<=no;i*=2) /* 2からにしたかったらi=2に */
printf("%d ",i);
0154デフォルトの名無しさん
NGNG恐らく本当はループの後にもiを利用するのだろう
0155126
NGNG0156デフォルトの名無しさん
NGNGi=i*2
0157デフォルトの名無しさん
NGNG0158126
NGNGまたくるね
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG* はなんと読むのですか??
<>はそれぞれ何と読むのですか??
$ は「ドル」でいいのですか??
% は「パーセント」でいいのですか??
0162デフォルトの名無しさん
NGNGちったあ検索しろよ。
http://www.cqpub.co.jp/od/editors/saka/kigou.htm
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG*アスタリスク
<>小なり大なり
$ダラー
%百分率
0166デフォルトの名無しさん
NGNG( ´Д`)オイオイ・・・
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG全角禁止で
0170デフォルトの名無しさん
NGNGすると突然異常終了が発生。
変更箇所を見比べても、異常終了する原因がつかめず、仕方が無く
変更箇所を1つずつ前のソースに組み込んでは実行して、組み込んでは…でチェック。
すると、構造体に新たにある名称の変数を追加してコンパイルすると落ちることが判明。
その構造体の中で重複しているわけでもないのに・・・
int length;
これを組み込むと落ちる。
int len;
に変えると落ちなくなった。
こういう現象ってどういう理由が考えられますか?? マジでこれ以外は影響なく、lengthでもLengthでもLenGthでも落ちます。
わけわかんねえよ〜
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGlength にしたときと len にしたときの出力ファイルの差を取って何がどうなってるのか調べてみてはどうだろうか?
0173デフォルトの名無しさん
NGNGとかしとらんよな?
0174デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNGむかつくやつのソースにこっそりと書き加える
#define int charの方がいいかな
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG「落ちる」ってどういうタイミング?
1. 起動直後
2. 特定のstep
3. 不定
「こーすれば逃げられる」って方法で安易に逃げると、
他に潜在バグがありそうな気もするし。
原因わかったら、公開して欲しいっす。
0181170
NGNG2: ですね。何度目かのmallocで落ちます。
確かに、原因不明のまま「回避できた!」というのは
仕事である以上できる限りやりたくないのですが、
とりあえず結果を急いでいるお客さんのために
結果が出せるかどうかを優先してます。
報告した後に調査しよ・・・・くそー
0182デフォルトの名無しさん
NGNG0183180
NGNGメモリ管理が甘い(と言われている)Windows系だとしても
変数名を変えると落ちなくなるっていうのが解せませんね。
int length ; の位置に int dummy ; を書いて、その下に
lengthを置いても同じ?
なんの解決にもならないレスでスマソ。
頑張って下さい。
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNGセグメントエラーがでてるとにらんでみた。
0187デフォルトの名無しさん
NGNG( ´∀`)< ぬるぽ
0188デフォルトの名無しさん
NGNG実は構造体の順番をコンパイラがスペル順で入れ替えてて
どっかのコンパイル済みライブラリが再コンパイルされずに
そのままアクセスするためにメモリを破壊してるとか…
0189デフォルトの名無しさん
NGNG> 実は構造体の順番をコンパイラがスペル順で入れ替えてて
そんなコンパイラは、今すぐ捨てろ。ANSI 非互換だよ。
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNGANSI互換だったら考えるまでもなく
変数名変えただけで結果が変わるはずが無い罠
0192デフォルトの名無しさん
NGNGプログラムにバグが潜んでたら、その限りではないよ。
以前に、プログラム名(の長さ)によって実行速度が大幅に変わる
とかいうのがあったけど、それと似たような原因じゃないかな。
0193デフォルトの名無しさん
NGNGコメント行を残せば動く、
というようなこともありました。
上述されてるように不正なメモリアクセスが原因でしたけども。
0194デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>187
0195デフォルトの名無しさん
NGNGどうやら俺には無理らしいぞ
0196デフォルトの名無しさん
NGNGタイーホ
0197デフォルトの名無しさん
NGNGプログラム名の長さによって実行速度が変わるというのは、
ごくごく簡単にいうと、以下のようなことであるらしい。
・プログラムが起動されたときにプログラム名をスタックに積む
・これをCではargv[0]で参照できる
・プログラム名の長さによって初期の(main突入直後の)スタックの伸張度合いが変わる
・ところで、x86系CPUでは、doubleにアクセスする場合、
それが8バイト境界以外の領域(8の倍数番地以外から始まる領域)に
置かれているとペナルティが発生する(実行速度が低下する)
・プログラム名の長さによってdoubleがスタックに積まれる位置が変動する
それは8バイト境界におさまらない場合ももちろんある
・したがってプログラム名の長さによって実行速度が低下する場合がある
えーと短く説明するためにかなりはしょってます。興味のある人は
http://quanta.synchem.kyoto-u.ac.jp/~maho/FreeBSD/FreeBSD_compiler.html
を参照のこと。
0198デフォルトの名無しさん
NGNG変数名を実行ファイルにまで持ち越すようなコンパイラ/リンカが存在するのか?
でなければ、そんな事が原因でプログラムが誤動作する事はあり得ないが・・・。
0199197
NGNGあんまり関係ないような気がする。
普通構造体のメンバ名なんてのはコンパイルが通ると
単なるオフセットの表現にしかならないはずで、
名前を変えた程度ではオフセットは変わらない。
(メンバの型が変われば当然オフセットは変わる、こともある)
デバッグオプションをつけたとしても、
構造体のメンバ名は実行ファイルなどに影響を及ぼさないと思うし。
本当に構造体のメンバ名だけを変えて実行に影響があるのなら
とても興味深い話なんだが、正直原因が思いつかないな。
0201デフォルトの名無しさん
NGNGコンパイラのバグで桶?
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNGまてまて。それは最後の最後に疑うべきところだ(w
170の報告をまとうではないか。おれは楽しみにしてるぞ。
0205デフォルトの名無しさん
NGNG0206170
NGNGFreeBSDではないけど、Linuxでの開発なんで関係あるかも・・・?
int len;
unsigned char type;
新たにいっこ追加したら、また落ちるようになった。
今度は、
unsigned len;
unsigned char type;
にしたら動く・・・なんだ?バイト境界関係の問題でもあるのか?
未だ原因不明・・・・(;´д⊂
0207170
NGNGunsigned char len;
unsigned char type;
で動いた。
0208デフォルトの名無しさん
NGNGもっと他のとこも見てみろって。
絶対どこかで変なメモリアクセスしてるから。
0209デフォルトの名無しさん
NGNG0210170
NGNG担当者が年始早々失踪して、火の車なプロジェクトの手伝いですわ。
0211デフォルトの名無しさん
NGNGそのメンバは末尾に追加したのか? それとも途中か?
あと、全プログラムをリコンパイルしてるか?
つーか、デバッガ使って追いかけたりしないのか?
0212170
NGNGデバッガの使用は禁止されています(;´д⊂
0213デフォルトの名無しさん
NGNGそんなの無視しろ。
0214デフォルトの名無しさん
NGNGpurify系のメモリリーク検出ツールとデバッガがないと
絶対そのバグ潰すのは無理だと断言しよう
>>212
んなアホな...
0215170
NGNGだが間違ってはいない。禁止はされてないけど環境がない。
>>211
末尾に追加しました。
つーか、メモリ関係チェックしてみると、あちこちで破壊っつーかなんつーか・・
誰だよこれ組んだヤシは!
0216デフォルトの名無しさん
NGNGconst float PI = 3.14
このふたつって、どこが違うんでしょうか
0217デフォルトの名無しさん
NGNG恐らくは const float PI の方は記憶容量を使うが、プログラム中
に繰り返し出てきた場合はかえってメモリ領域を節約できる可能性あり。
0218216
NGNG0219デフォルトの名無しさん
NGNG前者は単なるテキストマクロだが、後者は変数として扱われるので型チェックが入る。
定数を定義する時、配列の要素数などに使うのでなければ後者にすべし。
>>217
(゚Д゚)ハァ?
一体どういうメモリ領域の計算をしてるんだ?
0220デフォルトの名無しさん
NGNG言い方が悪かったかもしれん。
const float PI は変数としての記憶領域を必ず使うが、#defineの場合
はマクロなので、変数としての記憶領域は使わない。しかし出てくる
度にコードが少しずつ長くなっていく可能性があると言いたかった。
floatの例だとわかりにくいが、char *s = "hogehogehoge"; などの例を
考えてみればわかりやすい。これと #define s "hogehogehoge"を比較
してみれば、*sの方は "hogehogehoge" がメモリのどこかに確保される
が、一度しか確保しない。それに比べて#define sの方は、一度も使わな
ければ確保されないが、もし使うと使う度にメモリを消費していく。
コンパイラによっては同一の文字列リテラルはマージする場合もあるから
一概には言えないが。
0221219
NGNGconst は書き換え不能だが変数なので、普通の変数と同じようにスコープを限定
できる。
0222デフォルトの名無しさん
NGNGconstの方は即値にならないと言いたいんじゃない?
0225デフォルトの名無しさん
NGNG(つまり$hoge omaemona で言うところの"a")
何々だったらあーせよってしたいんですけど
argv[1][2]みたいな指定方法は可能でしか??
0226デフォルトの名無しさん
NGNGそれは分かっている。
アドレスを得るようなことをすればメモリーにおかれるだろうけど。
>>225
他にどうしろと?
*(argv+1)か?
0227226
NGNGとにかくargv[1][2]でOK
0228デフォルトの名無しさん
NGNGこういう場合ってやっぱり最適化はかからないのかな?
const float PI = 3.14;
*(float*)&PI = 3.;
エラー無しで通るね。
0229デフォルトの名無しさん
NGNGそれくらい訊く前に試せよ
0230デフォルトの名無しさん
NGNGすみません
0231デフォルトの名無しさん
NGNG不幸だな。コンピュータやコンパイラの動作を人間が脳内シミュレート
しなければならないのか。俺だったら発狂するかも。
0233デフォルトの名無しさん
NGNG氏ね
0234デフォルトの名無しさん
NGNG次スレでなく 兄弟 でしょ?
0235山崎渉
NGNG0236デフォルトの名無しさん
NGNGX on Windows LEをインストールして、C言語を使っていましたが、
values.hというヘッダーファイルが無いようです。
これって、LE版だからですか?
あと、どうすればよいですか。
0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNGtypedef struct node_tag{
struct node_tag *next; /*次ノードへのリンク*/
struct node_tag *prev; /*前ノードへのリンク*/
void *data;
}node_t;
っていうリスト構造体があったとして
int list_is_empty(node_t *head)
{
return head==head->next;
}
って関数があるとします
参考書によるとリストが空かどうか判断する関数らしいのですが
なんでhead->nextなheadを返すことによって
真か偽かを判断できるのでしょうか?
厨房でごめんなさい
0239デフォルトの名無しさん
NGNG両方ともNULLを指しているか、nextが自分自身を指していれば==に
なるね。どちらかで空を表現してるんだろう。
0240デフォルトの名無しさん
NGNGheadがNULLの時はまずいと思ふ
0241デフォルトの名無しさん
NGNGそう言われてみればそうだな。
NULL->nextなんてのはあり得ないから。
0242デフォルトの名無しさん
NGNGhead->next==tailとか
0243デフォルトの名無しさん
NGNG一つ入れるようにしてるんじゃないの。リストが空の時はノードはその一つだけ
しかないから、当然 next も prev も自分自身を指すようになる。
だから head == head->next で判断できるのではないかと。
0244デフォルトの名無しさん
NGNG0245238
NGNGheadが空の場合はnextもprevもあるはずないんだから
head自身がnextでありprevにもなるってことですか?
それで>>240さんはheadが空なんだから
nextも何も表現できないはずってことを言ってわけですよね?
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGラテン語。
0249デフォルトの名無しさん
NGNG韓国語。
0250デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>246
0251デフォルトの名無しさん
NGNGK&Lとはなんぞや。
K&Rのことであれば、開発者に聞け。
バージョンによっても違うだろうし。
初期の開発者はデニス・リッチーさんだ。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNGという事か。
0254デフォルトの名無しさん
NGNGKorean & Latinか。
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNGperror("socket");
exit(1);
}
0262デフォルトの名無しさん
NGNGAF_DEMPAじゃストリーム通信できないYO!
SOCK_DGRAMで常にSO_BROADCASTが立ってるYO!
0263デフォルトの名無しさん
NGNGそういえばgccってconstで定義してる変数の値を変えてもウォーニング出るだけなんですけど、
これはCの仕様なんですかね?
g++だとエラーになるんですが。
0264デフォルトの名無しさん
NGNGgccのバージョンとコンパイルオプションでけっこう挙動が変わるぞ。
Cについては昔の資産を活用するために、寛容にしていることが多い。
0265デフォルトの名無しさん
NGNGってなんでゼロなの?いったいどういう意味?return 1
とかreturn 2とかじゃあかへんのですか?
0266デフォルトの名無しさん
NGNGその関数の仕様を決めた奴に聞け。
0267デフォルトの名無しさん
NGNG????と思ったが、別に>>265はmain関数だとは言っていないな。
>>266の言うとおりだな(笑)
0268デフォルトの名無しさん
NGNGスレにひとつはある質問だな。
0269デフォルトの名無しさん
NGNGどういうこと?
0270デフォルトの名無しさん
NGNGmain() でも、一緒だ。
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNG・・・かな
0273デフォルトの名無しさん
NGNG???????????????
0274デフォルトの名無しさん
NGNGfor(i = 0;i < arr;i++)
arr[i] = rand();
0275デフォルトの名無しさん
NGNG無知なおいらを助けてくだせい
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNGシェルで && とか || とかで使う
バッチなら if errorlevel とか
0279272
NGNG受け取り元をunsignedにしてみたら?
0280デフォルトの名無しさん
NGNGreturn EXIT_SUCCESS か return EXIT_FAILURE にしたら?
(#include <stdlib.h>で)
0281271
NGNGまあ頑張ります みなさんありがとうございました
0282デフォルトの名無しさん
NGNG呼び出されるたびに 0〜RAND_MAX の間の疑似乱数を返します。
Borland Turbo C
0283デフォルトの名無しさん
NGNG256の乱数を二回取れば良いじゃん
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG0286271
NGNGありがとうございます
0287デフォルトの名無しさん
NGNGfor(i=0;i<sizeof(arr);i++)
だけどな。
0288デフォルトの名無しさん
NGNGfor(i=0;i<sizeof(arr);i++)
arr[i] = rand()%65536;
0289デフォルトの名無しさん
NGNG16ビットの罠
0290デフォルトの名無しさん
NGNGPC初心者板逝けとか言われるかもしれませんが
厨房でごめんなさい
0291デフォルトの名無しさん
NGNGPC初心者板逝け
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG>>292
0294デフォルトの名無しさん
NGNG0295290
NGNGポインタのことですか?
0297デフォルトの名無しさん
NGNGaccess violation とかいうエラーメッセージが出てしまうのですが、
どうしてなんでしょう?
0298デフォルトの名無しさん
NGNGint a[100];
a[150] = 38;
0299デフォルトの名無しさん
NGNG指定領域以内のところでダメになるので、
他が原因だと思うのですがわかりません。
それに値を参照するときにエラーが出ることもありますし。
一体どういうこと?
0300デフォルトの名無しさん
NGNGソースを出すように。情報が少なすぎてよくわからん。
0301デフォルトの名無しさん
NGNGunsigned char *m = new unsigned char[4500*4000];
for(j=0; j<ySize; j++){
for(i=0; i<xSize; i++){
k = j*(xSize_c)+i;
m[k] = t[j][i];
}
}
という感じですが。
何が原因でしょうか?
0302デフォルトの名無しさん
NGNG1. new は成功しているのか?
つーか C++ かよ!! ここは C のスレだぞ。
2. xSize, ySize, t の正体は?
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNGC++のスレへ行け。
0305デフォルト名無しさん
NGNGとりあえずキャストをしろ
0306デフォルトの名無しさん
NGNGなどのヘッダーファイルってどうやってみれるか教えれ
0307デフォルトの名無しさん
NGNG適当なエディタで開くといいよ。
0308デフォルトの名無しさん
NGNGエディタってなんすか?
初心者でスマソ
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNGなんでパイプするの?
0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNGそういう意味じゃなくてさ、more stdio.hでいいでしょ?ということ。
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNGただし、Windows のコマンドプロンプト (含む 95) では more stdio.h も OK。
0318デフォルトの名無しさん
NGNG個人的にはnotepad激しく推奨
0319デフォルトの名無しさん
NGNGまあ今頃はエディタが何かを調べてもう見終わってるとは思うけど
0320318
NGNGUNIXでもcdコマンドとかdirコマンドとか普通にあるの?
0321デフォルトの名無しさん
NGNGdirはのかわりにlsというのがある
0322デフォルトの名無しさん
NGNG厳密に言うと違うわけだが
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGdouble x;
double y;
};
struct point R[100],*Q;
Q = &R[1];
int main()
{
....
}
こんな感じでグローバル変数でポインタを定義したんですけど、gccでコンパイルすると
エラーになります。それで次に
struct point R[100],*Q;
Q = &R[1];
これをmainの中に入れてやると無事コンパイルできます。
なんでですかね?
0328デフォルトの名無しさん
NGNGQ = &R[1]; ←実行コード
実行コードは関数(この場合はmain)の中に記述する必要がある。
0329デフォルトの名無しさん
NGNG定義ではないかと
0330デフォルトの名無しさん
NGNGQ=&R[1];はどうみても代入処理だろ。
書くならstruct point R[100],*Q=R+1;
0332デフォルトの名無しさん
NGNGstruct point R[100],*Q; ←変数の宣言 // ←これが定義
>>331
>>330のようにしても、初期化自動変数じゃないと出来ないからね
0333デフォルトの名無しさん
NGNG初期化自動変数×
変数を参照する初期化は自動変数○
0334333
NGNGポインタは出来るのかな…?
まぁ良いや、時間がないから調べられないけど
正しい答えは他の誰かが答えてくれるでしょう
0335デフォルトの名無しさん
NGNGint A[1000000000]; とかアリ?
あと、関数内の変数で
void a(void)
{
int B[10000000];
//このあとB[n]すべてに値代入。
}
とかやったら外部変数の値を潰してたんだけど、そういうものなの?
0336デフォルトの名無しさん
NGNGchar *parh = "OMAEMONA";
はポインタ以下の値になにがあるからわからないから危険ですか?
char path[32];
strcpy( path,"OMAEMONA");
と、配列をたくさん確保してからにすべきでしょうか。
0337デフォルトの名無しさん
NGNG配列を確保できるサイズは環境依存。
int A[1000000000]; は・・・64 bit 環境ならいけるかもな。
今主流の 32 bit 環境では多分無理だ。
int B[10000000]; と宣言した場合、ANSI 準拠である限り B[0] 〜 B[9999999]
の領域は他の変数とは絶対にかぶらない。
よって外部変数が潰れる事は無いので、何か別のミスをしているだろう。
0338デフォルトの名無しさん
NGNG「ポインタ以下の値になにがあるからわからないから危険」 の意味するところが
不明だが・・・。
とりあえず 「C FAQ」 の 「1.32: 以下の二つの初期化の違いは。」 を読んでくれ。
http://www.catnet.ne.jp/kouno/c_faq/c1.html#32
0339デフォルトの名無しさん
NGNG以下のプログラムを作ってみたところエラーもでず妙な動作をして終わってしまいます。
int a, b;
scanf("%d",&a);
scanf("%d",&b);
printf("%d\n",a);
printf("%d\n",b);
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNGひょっとしたら新しい発見があるかもしれない。
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGそーですか?
%sでふつーに文字列とか入れちゃってますが、、、
0344デフォルトの名無しさん
NGNGバイナリモードで開いて、ヘッダとデータ部分を切り離してそれぞれ配列に保存して、それをfwriteで書き込み専用のファイルに書くってだけだと思うんだけど…
具体的なソースを示してくれたら嬉しいです。
0345デフォルトの名無しさん
NGNG何の加工もせずに読み込んで書き出したら良いだけでは?
0346デフォルトの名無しさん
NGNGデータ部分だけ欲しいのかな
でも、ヘッダがないと、タテヨコのサイズもわからなくなるし、、、
0347デフォルトの名無しさん
NGNG「変換された項目の数」だから0なら数値が入らなかったということ。
123Aとか入れたら123が変換される。
0348デフォルトの名無しさん
NGNGプロセスに入力を与える際、
入力した文字がすぐにプロセスに渡るようにするにはどうしたらいいでしょうか?
つまり、
普通のreadなどを使う際には、
入力時に「hogehoge<LF>」と、最後に改行の入力を必要としますが、
改行を押さずに、hogehogeが
h o g e h o g e と、一文字ずつ即時にプロセスに渡るようにしたいのです。
ご存知の方がいらっしゃったら教えてください。
(「{Cで and/or CUIで}やるかぎり出来ない」ならスレ違いごめんなさい)
0349348
NGNGむしろ入力サイド(シェル?)の問題なのでしょうか。
0350デフォルトの名無しさん
NGNG//Cは最近さわってないんで、わすれてきてるが
getch getche getcharなどの関数で、一文字づつ処理してもNG?
0351デフォルトの名無しさん
NGNGうーん、そうなんですが…
例えば300×300の大きさのビットマップを、その大きさのままCで読み込もうとする時、なぜか途中で強制終了してしまいます。
ヘッダ部分のデータの大きさも考慮して大きめに600×600で読み込むと、確かにビットマップは読み込まれるのですが、格納した配列のデータを違うビットマップの画像に保存した際、画像に縦線や横線などの雑音が入っているのです。
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNGこのサイトのを参考にしていました。
http://asapc1.cc.it-hiroshima.ac.jp/stu/c04/c04.html
画像の縦横の大きさだけ変えてやろうとしたのですがうまくいかず…
>>346
画像のデータ部分が欲しいです。そのデータ部分を2次元配列に代入して、簡単な処理を目指しています。
そのために、一番ネックとなる画像の読み込みに挑戦していたのですが、うまくいかず状態なのです つД;)
0354348
NGNGありがとうございます。curse関連ですね。調べてみます。
取り急ぎお礼のレスだけしておきます。
0355デフォルトの名無しさん
NGNGつーか、画像処理板でするか、こっちでするか、どっちかにしろよ、、、
マルチで書かれてもな。
0356348
NGNGうーん。
DOSだと手軽にその関数が使えるようですが、UNIXだと面倒なようです。
curse端末がどうのこうの、、、(調査中)
0357デフォルトの名無しさん
NGNGhttp://www.st.rim.or.jp/~phinloda/cqa/cqa9.html
ご参考までに。
0358デフォルトの名無しさん
NGNG$stty raw
$./a.out
0359デフォルトの名無しさん
NGNG0x38 #piyo
0x39 #gabi
0x32 #poyo
0x35 #boyo
上記テキストファイルを読みこみ
下記の処理を行いマスタ
while(!feof(ifp)){
s=getc(ifp);
if(s=='#'){
putc('\n',ofp);
while(!feof(ifp)){
s=getc(ifp);
if(s=='\n') break;
}
}
else {
putc(s,ofp);
}
}
putc('\n',ofp);
そうすると書きこまれたファイルは最終行が
\377となってしまいます・・・
原因がよくわからないっす。
どなたかご教授お願い致します。
0360348
NGNGcurse・ioctl・stty
という3つの方法があるようです。
とりあえず、目的の処理はcurse+getchで可能でした。ありがとうございます。
が、思わぬ副作用が出ているので、時間があればioctlの方を調べて試してみます(敷居が高いが。。。)
sttyは最終手段のように紹介されていたのですが、
>>358さんの書かれたようにやってみたら、プログラムから何の反応もなくなり、
Ctrl-Cすら受け付けなくなってしまってビクーリしたので、ちょっと保留です。
0361デフォルトの名無しさん
NGNG入力前に system("stty raw");
入力が終ったら system("stty -raw");
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNG副作用というのが、どんなものかなという好奇心が・・・
#MSのOSしか今、手持ちになくて試せない
0364デフォルトの名無しさん
NGNGsがchar型で宣言されている。かな?
\377は0xFFという意味
0365デフォルトの名無しさん
NGNGご回答ありが�dございます。
sはちゃんとint型で宣言しているのですが・・・
なんででしょぅ・・・
0366デフォルトの名無しさん
NGNG02: s=getc(ifp);
03: if(s=='#'){
04: putc('\n',ofp);
05: while(!feof(ifp)){
06: s=getc(ifp);
07: if(s=='\n') break;
08: }
09: }
10: else {
11: putc(s,ofp);
12: }
13:}
14:putc('\n',ofp);
02行目でEOF(-1)が発生した場合に12行目の処理を行っているから
-1(\377)が出力される
こういう場合、01行目は
while((s = getc(ifp)) != EOF) {
と書くのが定石
0367348
NGNGちゃんと(?
system("stty raw");
(入力を受け取る処理)
system("stty -raw");
としたんですが、
そうしても、一文字ずつの読み込みをしてくれませんでした。
というか反応なしで、ただただ入力がエコーされるのみ。。。
前述のように、Ctrl-Cも受け付けてくれなかったので、仕方なくターミナルをDestroyしました。
>>363さん
いや、好奇心を持つほど大したことじゃありません。
対話的な動作を期待するプログラムを書いていたので、
それまでprintfで書いていた部分を書き直すのが大変だなぁと思った。
というだけです(^^;
また、initscr()の時点で、端末がclearされてしまいますよね。
0368デフォルトの名無しさん
NGNGほんとありが�dございます!
すげぇっす。イパーツで解析なさるなんて。
うらやますぃ。。。
精進イタシマス
0369 ◆Ou1AsATmFg
NGNG#include <stdio.h>
void hogera(int *x, int *y, int *z)
{
*x=1000;
*y=2000;
*z=3000;
}
main()
{
int a, b, c;
hogera(&a, &b, &c);
printf("%d %d %d\n",a, b, c);
return(0);
}
0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNGint ia[]={*x,*y,*z};をhogeraに。
0372371
NGNG0373372
NGNG0374デフォルトの名無しさん
NGNG「よくわかるアルゴリズム入門」
の逆順の線形リストと入力順の線形リスト
を習得しました。
今度は、まったく違った構造体に
組み込めなくちゃいけない。
typedef struct{
int no;
char name[20];
}Data;
typedef struct __node{
Data data;
struct __node *next;
}Node;
typedef struct{
Node *head;
Node *crnt;
}List;
0375デフォルトの名無しさん
NGNG{
Node *ptr=list->head;
Data temp;
while(scanf("%d %s",temp.no,temp.name)!=EOF){
InsertFront(list,temp);
list->head->next=ptr;
ptr=list->head;
}
}
逆順のリストは、できたが入力順のリストはわからない。
適当な、Buff_Node()入力順をを教えてほしい。
0376デフォルトの名無しさん
NGNGint型をファイルにバイナリで書きこむ
方法ってありますか??
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNGfwrite
0381デフォルトの名無しさん
NGNGぬるぽ
0382デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩ アアア・・・
_/し' //. V`Д´)/
(_フ彡 / ←>>381
0383デフォルトの名無しさん
NGNGman putw
0384デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩ アアア・・・
_/し' //. V`Д´)/
(_フ彡 / ←>>383
0385デフォルトの名無しさん
NGNGman putw
NAME
`putw'--write a word (int)
SYNOPSIS
#include <stdio.h>
int putw(int W, FILE *FP);
...
どうやって使うんでしょうか?
0386デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩ アアア・・・
_/し' //. V`Д´)/
(_フ彡 / ←>>385
>>385
書いてあるだろ
0387376
NGNGバイナリで書きこんで、そのファイル開くと
読めなくなってるものですよね??
fopen( ,"wb")で開いても
ファイル開くと見た目普通っす。。。
どうなってんだこりゃー。
どなたか詳しくお教えください。。。
おながいしま・・・す
0388デフォルトの名無しさん
NGNG"wb"で開いても、fprintf("%d", ...) なんかで書き込んだら一緒だろ。
fwrite()でも使え。putw()は標準にはないらしいし。
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNGならない。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/putw.3.htmlでもfwriteを使えと言っている。
0391デフォルトの名無しさん
NGNGどこに?
0392デフォルトの名無しさん
NGNGふしあなさんですか?
「説明」の末尾にきっかり書いてある。
0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNGもちろん
0395393
NGNG0396デフォルトの名無しさん
NGNGつまり、linux.or.jpのJMに従え。JMは神!ってことか。
0397デフォルトの名無しさん
NGNG理由がわかった上で使いたいのであれば、別に止めはしないわけだが。
0398デフォルトの名無しさん
NGNG好きにすれば?
0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNGC なら得意なんじゃないの?
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNGもちろん翻訳前のman putwにも書いてあるわけだが。
0404デフォルトの名無しさん
NGNGhttp://www.nurs.or.jp/~asada/FAQ/UNIX/UNIX.FAQ.html
の「4.1」。
あるいは man termios。ICANON解除、ECHO解除、VMIN/VTIMEを適当に。
curseってなに。cursesだろ。
0405デフォルトの名無しさん
NGNGそれはパックされているということで
よろしいのでしょうか?
0406デフォルトの名無しさん
NGNGn及びn+2がともに素数になる数の内15000以上の最小の数値の組み合わせ
nとn+2を求めるプログラムを作成せよ。って問題なんですが
お願いします。
0407デフォルトの名無しさん
NGNGまぁ、ガンガレ
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNG双子素数ってなんですか?
どんな感じで関数を定義すればいいのですか?
0410デフォルトの名無しさん
NGNGまあ普通のスタイルで定義すればいいと思うよ。
ただ、センセーが古いスタイルの関数定義しか知らない化石のような人なら
古いスタイルで定義しないと減点されるかも知れないけど。
0411391
NGNG0412デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>391
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNGとりあえず自分で考えろ。
で、C言語のレベルで問題がおきたらまた来い。
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG今ファイル入出力で***,txtファイルから行単位で文字列(char)や数値(int)を読み込みたいんですが
どうすればいいのですか?
0417デフォルトの名無しさん
NGNG0418416
NGNG0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNG0423416
NGNGfgets((char *)buf,255,*fp);
みたいでいいですか?
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG読み込むファイルがテキストファイルなら
char buf[256];
fgets(buf,255,*fp);
で、bufからsscanf()やatoiでintに変換する
0426デフォルトの名無しさん
NGNG*fpじゃなくてfpでしょ。
FILE **fp;と宣言しているならいいけど・・・
0427デフォルトの名無しさん
NGNGなんで256じゃなくて255なの?
0428416
NGNGint buf2
fgets(buf,256,fp)
sscanf(buf,%d,buf2);
でいい?
0429デフォルトの名無しさん
NGNG0430425
NGNGコピペ(イイワケ)
>読み込んだ文字数が n -1 になるかのいずれかに最初に遭遇するまで
>続きます。結果は string に格納され、NULL 文字 ('\0') が付加されます。
どちらも同じ数値でよかったのか、NULL文字追加しか覚えてなかったから、、、
まぁ、文字列関係の関数はくせで+1してしまうけど
0431デフォルトの名無しさん
NGNGsscanf(buf, "%d", buf2);
だな、
0432431
NGNGsscanf(buf, "%d", &buf2);
0433416
NGNGじゃーやってみます!
0434416
NGNG下のプログラムまちがってるばしょあるでしょうか?
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
intbuf;
char*buf2;
char*a;
FILE*fp;
fp=fopen("input.txt","r");
a=fgets(buf2,256,fp);
sscanf(buf2,"%d",&buf);
printf("%d",buf);
fclose(fp);
}
あとこのCファイルと同じ場所にinput.txtファイルおいてます
0435デフォルトの名無しさん
NGNG0436416
NGNGでいいのかな?うごきまちた
0437デフォルトの名無しさん
NGNGvoid PRT(char *ttl, int len, unchar *adr)
{
int i;
char msgA[TITLE_LEN + 1];
char msgB[] = " = ";
if (strlen(ttl) > TITLE_LEN){
printf("ttl(%s) length over\n");
return;
}
memset(msgA, ' ', sizeof(msgA)-1);
msgA[sizeof(msgA)-1] = NULL;
memcpy(msgA, ttl, strlen(ttl));
for (i=0; i<len; i++){
if(i%16 == 0){
if(i == 0){
printf("%s%s", msgA, msgB);
}else{
printf("\n ");
}
}
if (i%16 == 8) printf(" ");
printf("%02X ", *(adr+i));
} printf("\n");
fflush(stdout);
return;
}
0439デフォルトの名無しさん
NGNG> printf("ttl(%s) length over\n");
これはいかんだろ。引数が足りない。
> msgA[sizeof(msgA)-1] = NULL;
型が合わない。
> memcpy(msgA, ttl, strlen(ttl));
わざわざこんなことするなんて、null文字をつけたくないからなのかしら・・・
0440416
NGNGcharbuf[256];
FILE*fp;
intsuuzi;
char*mozi;
char *a
a=fgets(buf,256,fp);
sscanf(buf,"%s %d",mozi,&suuzi);
上でまちがってるとこありますか?最後の行を書くとメモリエラーとでちゃうのですが
0441デフォルトの名無しさん
NGNGわざとやってるんじゃないかという確信
0442416
NGNG0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNG0445416
NGNGのことです、コピペしたもので。
0446デフォルトの名無しさん
NGNGmain()
{
printf("入力してください。\n");
int a;
scanf("%d",&a);
}
int a;のところでコンパイルエラーが出るんですが、なぜですか?
でもprintfのある行より前にint a;と書くとうまくいくのですが。
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNG0449416
NGNG0450デフォルトの名無しさん
NGNG変数宣言は先頭でやるのが基本だから
0451446
NGNGなるべく先頭で宣言するようにします。
0452デフォルトの名無しさん
NGNGCの仕様だろ。C++ なら通るんじゃない?
0453デフォルトの名無しさん
NGNG実装があるかどうかしらんが、C99では可能。
0454デフォルトの名無しさん
NGNGなるべくってあんた・・・
変数が通用する領域に習って、"{"のすぐあとに宣言すれば間違いない
0455デフォルトの名無しさん
NGNG構造体の中身を表示したのですが
printf("NO.1 = %s\n", kouzoutai.no1);
printf("NO.2 = %s\n", kouzoutai.no2);
というように、力技で押し切るしかないのでしょうか?
構造体の中身が100くらいあって困ってます。
ご教授いただけると幸いです。
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNGそれしか方法はない。
もし構造体の要素が同じ型なのであれば、配列にすると多少マシになる。
for(i = 0; i < 2; i++)
printf(("NO.%d = %s\n", i + 1, kouzoutai.no[i]);
0458デフォルトの名無しさん
NGNGそれだけでは何を欲しがっているのかわからん。
0459デフォルトの名無しさん
NGNGgcc環境が入ったFreeBSDとかLinuxとかがフリーで入手できます。
gcc環境を入れることのできるSolarisもメディア代+手数料で入手できます。
0460デフォルトの名無しさん
NGNGソラリスのフリー版の配布は終わったんじゃなかったっけ?
0461デフォルトの名無しさん
NGNG終わったのはダウンロードのことだろ?
0462デフォルトの名無しさん
NGNGこれから勉強を始めようという人に、独自拡張の最右翼を奨めるその心は?
0463461
NGNGhttp://jp.sun.com/products/software/solaris/binaries/index.html
まあずっと前に落としたからいいけど。
0464デフォルトの名無しさん
NGNG拡張機能使わなければ関係ないのでは
0465デフォルトの名無しさん
NGNGそう言う作業が定期的に何度も発生するなら
ソースを自動生成するスクリプトを書いてしまうのが吉かと。
若しくは自分でパースするのでもいいと思うけど。
0466デフォルトの名無しさん
NGNG知らずに使うこともあるだろう。
コンパイルが通るからというだけの根拠で、規格外のコードは書いたことは
無いか?
0467デフォルトの名無しさん
NGNG規格外の関数ならいくらでも使ったことあるけど、それ以外はない。
0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNGgccがいやなら、SolarisならSunの、
Linux(FreeBSDでも!)Intelのコンパイラが使えるよ。
ま、gcc -ansi -pedantic で大体チェックできるわけだが。
一方、bcc32やVC++なんかの方が、よっぽど変な動作があることあること。
0471デフォルトの名無しさん
NGNGBCC や VC++ なら、C++ はともかく C では案外しっかりしているぞ。
0472デフォルトの名無しさん
NGNG3Pですね。おめでたいね。
0474デフォルトの名無しさん
NGNG0475デフォルトの名無しさん
NGNGVC++で拡張機能をオフにするとWindowsヘッダーがコンパイルできなくなるのはかなり痛い。
0476デフォルトの名無しさん
NGNG祝福してくれてありがとう。
0477デフォルトの名無しさん
NGNGうう、すげぇ無駄な処理の塊・・・
仕事なら塵箱行きだ。
0478デフォルトの名無しさん
NGNGすっきりまとめてくれい
0479455
NGNGありがとうございます
ところで
ソースを自動生成するスクリプト
↑こんなことができるのでせうか?
またそれはどのように実現するもの
なのでしょうか?
そしてパースとは??
ほんと厨質ばかりでご迷惑お掛け致しますが
ご教授お願い致します。
0480デフォルトの名無しさん
NGNGgoogle さんに聞いて見れ
ここだけが情報源というわけじゃなかろ
0481デフォルトの名無しさん
NGNG結果報告よろしく。
0483482=477
NGNG#define TITLE_LEN 12
#define TITLE_FORM "%-12s"
#define MsgB " = "
void
PRT(char *ttl, int len, unchar *adr)
{
int i;
if (strlen(ttl) > TITLE_LEN){
printf("ttl(%s) length over\n", ttl);
return;
}
printf(TITLE_FORM MsgB, ttl);
for (i=0; i<len; i++){
if(i % 16 == 0){
putchar('\n');
}
if (i % 8 == 0) {
putchar(' ');
}
printf("%02X ", *(adr+i));
}
putchar('\n');
fflush(stdout);
return;
}
0484482=477
NGNG・最初の一回だけの処理はループの外へ。
・文字列の加工はsprintf()を使うべし。
・(環境にも拠るけど)putchar()で済むことはprintf()しない。
課題
・タイトル文字列の制限は余り意味がなさそうだ。
・先頭からのオフセットを左端に表示したら判りやすいだろう。
・適当なファイル入力ルーチンを組み合わせればダンプツールになるね。
0485デフォルトの名無しさん
NGNG>・(環境にも拠るけど)putchar()で済むことはprintf()しない。
積極的にspriintfの使用を推奨しているのに、
printfを使わせない理由がよくわからん…
スタティックリンクする処理系だとprintf族を使わないのは
意味があったりするもんだが、sprintfを使わせるんだから
それも意味をなさないような。
つか、putcharで済ますってことは、
printf("%s", s);
を
for (*p = s; *p; p++)
putchar(*p);
ってやれってことか…。よーわからん課題だな。
0486デフォルトの名無しさん
NGNG誰もそんなこと言ってないと思う。
0487デフォルトの名無しさん
NGNG((((;゚Д゚)))ガクガクブルブル
0488デフォルトの名無しさん
NGNG画面にhogeを表示するとき、ソースはこう書くじゃないですか。
#include <stdio.h>
int main(void)
{
printf("hoge");
return 0;
}
でも、このソースでもまったく同じ効果なのですが、どう違うのでしょうか?
#include <stdio.h>
int main(void)
{
printf("hoge");
}
これは、戻り値がないってことですよね?
main()には戻り値は返さなくていいということですか?
それとも、1番目のソースと2番目のソースじゃ表示は同じだけど
内部の動きは違うということですか?
よろしくお願いします。
0489デフォルトの名無しさん
NGNGWarning
出ない?
大して大袈裟な事ではないと思うが。
0490デフォルトの名無しさん
NGNG最近の規格では、mainに限ってはreturnが無い場合、0を返すと見なす。
0491488
NGNGありがとうございました。
なるほど、そういうことだったんですね。
それはmain関数だけでそれ以外の関数はちゃんと戻り値を
返すようなのですね。これでなぞが解けました。
また勉強を続けたいと思います。
>>489
BCCでコンパイルしてますが、エラーは出ませんでした。
0492デフォルトの名無しさん
NGNG>最近の規格
ISO/IEC14882
こんくらい空で言えろ
0493デフォルトの名無しさん
NGNGそんな事言えんの規格マニアだけでしょう
0494デフォルトの名無しさん
NGNGハァ?
これスレでは
ISO/IEC 9899:1999
だろ。
0495デフォルトの名無しさん
NGNGそれもそうだけど、改行しておかないでいいの?
0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNGint main(void){printf("window");return 0;}
0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG2chは平和だな…
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG無料のコンパイラいっぱいあるじゃん。
0504デフォルトの名無しさん
NGNGそれってラインバッファのせい?
ストリームを閉じたりバッファがいっぱいになれば表示されるけど。
0505デフォルトの名無しさん
NGNG有料のものも含めて、俺の環境用のものはない。
0506デフォルトの名無しさん
NGNGできたらミリ秒まで計れるほうがいいのですが。
0507デフォルトの名無しさん
NGNGclock_t
0508デフォルトの名無しさん
NGNGclock
ミリ秒は無理だけど。
0509506
NGNGこれはC言語でつかえます?
0510デフォルトの名無しさん
NGNGただし、移植性がないことは確か。
0511デフォルトの名無しさん
NGNGミリ秒まで知りたければ1000で割って工夫をすれば十分。
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNGCLOCKS_PER_SECで割らないんだよ。
例えば、
int a,b;
clock_t start,end;
start=clock();
・・・何かの処理・・・
end=clock();
a=(end-start)/1000;
b=(end-start)-a*1000
とすれば、aはカンマ以上の秒を表して、bはカンマ以下の秒を表す。
0514デフォルトの名無しさん
NGNGカンマ??
0515513
NGNG将軍様がカンマと言ったらカンマだ。
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNGなんで(end-start)/1000が整数部になるわけ?
clockが返す値の単位(?)は決まっていないよ。
0518513
NGNGとりあえずやってみれ。
俺の環境はVC++6.0だけれども。
0519517
NGNGLinux+gccとWindows+VC++6.0で全然結果が違うんだが・・・・
0520513
NGNGLinux+gccではどうでした?
俺はLinux持ってないもので。
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNGLinuxの方が正しい結果だったよ(^_^;)
↓プログラムはこれでいいんでしょ?
#include <stdio.h>
#include <time.h>
int main()
{
int a,b,i=70000000;
clock_t start,end;
start=clock();
while(i--) ;
end=clock();
a=(end-start)/1000;
b=(end-start)-a*1000;
printf("%d.%dミリ秒\n",a,b);
return 0;
}
0523522
NGNG0526522
NGNGprintf("%d.%dミリ秒\n",a,b);じゃなくてprintf("%d.%d秒\n",a,b);か。
それならWinの方がただしい。
じゃあ1000で割らずにCLOCKS_PER_SECで割ればいいか。
0527デフォルトの名無しさん
NGNGcout << CLOCKS_PER_SEC << end;
で試した。
VC++6.0なら、定数CLOCKS_PER_SECは1000。
すまんかった。。。
0528デフォルトの名無しさん
NGNG1.春夏秋冬
2.東西南北
3.温故知新
という文字列が含まれているとき、
『西』という言葉を入れたら
2.東西南北
と出てくるような文字列検索プログラムはどのようになるのでしょうか…?
熟練のかたがた、よろしければご教授ください
0529デフォルトの名無しさん
NGNGadrの中にどう含まれているんだ?
char *adr="1.春夏秋冬\n2.東西南北\n3.温故知新";か?
0530デフォルトの名無しさん
NGNGfgets(str,sizeof str,stdin);
if(!strcmp(str,"西"))
puts("2.東西南北");
0531デフォルトの名無しさん
NGNGそうです
1行目2行目とかの検索だったらできるのですが、
特定の文字列の検索の方法がわからなくて…
0532デフォルトの名無しさん
NGNGstrstr
0533デフォルトの名無しさん
NGNG先ずは英語版をつくって、納得がいってから日本語版を作ることをお勧めします。
0534デフォルトの名無しさん
NGNGcharの列へのポインタの指す文字列をcharの配列へ
列全体をコピーする関数にはどんなのがあるでしょうか?
char dist[32];
char *src;
strcpy(dist,src);//文字列のコピー。
ってのはありでしょうか 御教授お願いします
0535デフォルトの名無しさん
NGNGstrdup()とかどうですか?
0536デフォルトの名無しさん
NGNGそれでいいんじゃない?
但し、dist のサイズに気をつけてな。
0537534
NGNG早速、strdupについて調べてきました。勉強になります。
本当に有り難う御座いました!
0538デフォルトの名無しさん
NGNGfree()するのを忘れないようにね。
0539デフォルトの名無しさん
NGNGchar 型二次元配列( char abc[10][32];)を memset で初期化する場合、
memset( abc , '\0' , sizeof(abc));
でいいのでしょうか?
0540デフォルトの名無しさん
NGNG全部0で埋めなければいけない積極的理由があるならいいんじゃない?
0541デフォルトの名無しさん
NGNG0542539
NGNG>>540
ありがとうございます。
もう一つ質問なのですが、このような二次元配列を宣言した場合、
メモリ上の連続した領域が確保されるという保証はあるのでしょうか?
>539 の例の場合だと、abc の320バイトはつながった領域をとってくれるのですか?
abc[0] の最終バイト目の次が abc[1]の先頭バイト目に必ずなりますか?
0543デフォルトの名無しさん
NGNGとってくれる
0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNGCで現実的に実現可能かどうか瞬時に分かる。とか。
0546デフォルトの名無しさん
NGNGC言語の欠点を言える。
0547デフォルトの名無しさん
NGNGyakyu.c
D:\tomoki\C言語\project1\yakyu.c(93) : error C2018: 文字 '0x81' は認識できません。
D:\tomoki\C言語\project1\yakyu.c(93) : error C2018: 文字 '0x40' は認識できません。
D:\tomoki\C言語\project1\yakyu.c(93) : error C2018: 文字 '0x81' は認識できません。
D:\tomoki\C言語\project1\yakyu.c(93) : error C2018: 文字 '0x40' は認識できません。
D:\tomoki\C言語\project1\yakyu.c(93) : error C2018: 文字 '0x81' は認識できません。
D:\tomoki\C言語\project1\yakyu.c(93) : error C2018: 文字 '0x40' は認識できません。
D:\tomoki\C言語\project1\yakyu.c(93) : error C2018: 文字 '0x81' は認識できません。
D:\tomoki\C言語\project1\yakyu.c(93) : error C2018: 文字 '0x40' は認識できません。
D:\tomoki\C言語\project1\yakyu.c(107) : fatal error C1004: 予期せぬ EOF が検出されました。
cl.exe の実行エラー
yakyu.exe - エラー 9、警告 0
何度も確認しましたが間違いはないはずなのこうなってしまいます。どうすればいいですか?
0548デフォルトの名無しさん
NGNGまたコピペか。
0549デフォルトの名無しさん
NGNG日本語か何かの文字コード変じゃないか?
0550デフォルトの名無しさん
NGNGさよなら!
0551デフォルトの名無しさん
NGNG0x8140は、ShiftJISで空白文字ですね。
インデントに2バイト空白使ってませんか?
#もしエディタにそういう設定があるなら、2バイト空白と1バイト空白の見た目を変えておこう。
0552デフォルトの名無しさん
NGNG世界中のCコンパイラーを全てインストールしているパソコンを持ち歩いている。
0553547
NGNG0554デフォルトの名無しさん
NGNGexe名が駄目なんだと思うよ。yakyu.exeじゃあね。
0555デフォルトの名無しさん
NGNG全角スペースを半角スペースに置換。
0556デフォルトの名無しさん
NGNG釣られ上等。
1%でもマジの可能性があれば、喜んで釣られるよ。
0557547
NGNGhttp://pc.2ch.net/test/read.cgi/prog/1043845897/290-
0558デフォルトの名無しさん
NGNGなんか名前がばれちゃいましたw
0559547
NGNGcl.exe の実行エラー
ってなんですか?
0560デフォルトの名無しさん
NGNGerror C1004: 予期せぬ EOF が検出されました。
cl.exe の実行エラー
ってなんですか?
0561デフォルトの名無しさん
NGNGerror C1004: 予期せぬ EOF が検出されました。
cl.exe の実行エラー
ってなんですか?
0562デフォルトの名無しさん
NGNGerror C1004: 予期せぬ EOF が検出されました。
cl.exe の実行エラー
ってなんですか?
0563デフォルトの名無しさん
NGNG以下のプログラムでまわしたんですがエラーがでてしまいました。
以下のプログラムは某ホームページから引用させてもらいました。
time関数とtimegettime関数の比較をおこなってます
include <stdio.h>
#include <time.h> // for clock()
#include <windows.h> // これと下のヘッダーはマルチメディアタイマーに必要です
#include <mmsystem.h> // winmm.lib をリンクするのを忘れずに
int main(int argc, char* argv[])
{
int i;
clock_t oldTime, newTime;
oldTime = clock();
for (i = 0; i < 10; i++) {
while (oldTime == (newTime = clock())) ;
printf("clock [sec] = %.3f \n",
(float)oldTime / (float)CLOCKS_PER_SEC);
oldTime = newTime;
}
DWORD oTime, nTime;
oTime = timeGetTime();
for (i = 0; i < 10; i++) {
while (oTime == (nTime = timeGetTime())) ;
printf("timeGetTime [ms] = %d \n", oTime);
oTime = nTime;
}
return 0;
}
0564デフォルトの名無しさん
NGNGエラーの内容を書かないような奴には教えない。
0565563
NGNGerror C2275: 'DWORD' : typedef 識別子に、クラス メンバ アクセス演算子 (->) を使用しました。
c:\program files\microsoft visual studio\vc98\include\windef.h(141) : 'DWORD' の宣言を確認してください。
error C2146: 構文エラー : ';' が、識別子 'oTime' の前に必要です。
error C2065: 'oTime' : 定義されていない識別子です。
error C2065: 'nTime' : 定義されていない識別子です。
です。
0566デフォルトの名無しさん
NGNGコンパイラとOSを書かないような奴には教えない。
0567デフォルトの名無しさん
NGNGメッセージみりゃ、コンパイラとOSくらい察しはつくが。
0568563
NGNGです
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNGする手法にsleep関数使うことやスレッド優先度を下げるという
のがあるそうですが、スレッド優先度を下げるとはどうやるんですか?
具体的にサンプルソース提示して教えてたも〜
0571デフォルトの名無しさん
NGNGO S は ?
あなたが使ってる環境なんて、知りませんから。
0572デフォルトの名無しさん
NGNGSUPER-UNIXです
教えてたも〜
0573デフォルトの名無しさん
NGNGnice だの renice だのというコマンドで優先度は上下可能かなあ
0574デフォルトの名無しさん
NGNGbccは通った。
0575デフォルトの名無しさん
NGNGでも、下手な小細工するよりも、CPUバウンドな処理と
IOバウンドな処理に分けてしまったほうがいいかもしれんよ。
0576563
NGNGどもです。
c++ではとおったんですが、Cではとおらなくて・・・
timegettime関数がCでは無理なのか、それとも違うところで引っかかってるのかわからなくて、
よければ助言ねがいます
0577デフォルトの名無しさん
NGNG申し込みはしたんですが、どういう問題が出るのかさっぱりわからないので不安です。
0578デフォルトの名無しさん
NGNGhttp://piza.2ch.net/tech/kako/993/993631480.html
0579デフォルトの名無しさん
NGNGC言語の歴史が高頻度で出題されるとあった
くだらね・・・
0580577
NGNG4300円出したのに・・・
しかも合格できなそうなのが怖い
0581デフォルトの名無しさん
NGNG会社の技能手当てという役にはたつんじゃない?
実戦の知識とかは、また別の話だし。
0582デフォルトの名無しさん
NGNGその通り
0583577
NGNG通販できるサイトはあるけど試験が5日後だから間に合わなし
とりあえずC言語の歴史でもサイトで勉強しようw
0584デフォルトの名無しさん
NGNG何で受けようと思ったの?
落ちそうなら尚更…
0585デフォルトの名無しさん
NGNGと
int *a;
int *b;
って同じですか?
0586577
NGNG今大学2年で、情報学科でCを少し勉強してきたからそろそろとっとこうかな、と。
つーか、試験受けることにしたら勉強するようにならないかな?っていうダメダメな理由だったりする。
丁度春休み入って堕落する時期だし
0587デフォルトの名無しさん
NGNG必要になれば、嫌でも習得しようと努力する
さして、必要と思ってない時期にやってもまるで身につかない
とういか、理工系で暇な今な時期に遊ばないでどうする・・・
遊べ!!
それが現時点での最重要項目だ・・・
0588デフォルトの名無しさん
NGNGtimeGetTime() は C で使える。
むしろ、Win32 API は C から使うために設計されたようなものだ。
エラーの原因は、宣言 DWORD oTime, nTime; がブロックの途中に現れる
という事だ。
C では変数宣言をブロックの先頭で行わなければならないという原則を
忘れたのか?
それと、エラーの報告では行番号を省くな。
もしくは、どこがエラーになったのかちゃんと示せ。
あと、#include <mmsystem.h> はいらないんじゃないかという気がする。
VC++ なら、#pragma comment(lib , "winmm.lib") を入れておくと、自分で
リンク時のライブラリを指定する必要がなくなる。
0590563
NGNGありがとうございます!!
そしてご指摘ありがとうございます。
今後きおつけます。
0591デフォルトの名無しさん
NGNG気を付けてくれ
0592デフォルトの名無しさん
NGNGだれか助けてくれませんか?
今日の4時までなんですが・・・もうだめぽ
0593デフォルトの名無しさん
NGNG気にするな
0594デフォルトの名無しさん
NGNG同じです。
以下は別物です。
(1)
int* a,b;
(2)
int *a,b;
(3)
int *a;
int b;
(1)(2)(3)も、これはこれで同じです。
この点注意が必要です。
0595デフォルトの名無しさん
NGNGtypedef int *pint;
PINT a, b;
pint c, d;
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNG>>595応用
>>596ボケ
>>597ツッコミ
ヽ(`Д´)ノ ゴラッー
0598デフォルトの名無しさん
NGNG犯人はBだっ!
0599デフォルトの名無しさん
NGNGいーなーこの感じ
0600デフォルトの名無しさん
NGNG実数値の小数点以下2桁目が6、7のときだけ+1する8Bの実数型の関数を作れ。
プロトタイプ宣言は不要。引数は1個とし、引数によって関数の結果を返してはいけない。
-------------------------------------------------------------------------
これ解ける人いますか?;;
0601デフォルトの名無しさん
NGNGプロトタイプ宣言は不要というのは何か意味あるんだろうか
0602デフォルトの名無しさん
NGNG言うまでもなくちんとマルチポストしてますよ。
0603デフォルトの名無しさん
NGNG{
char buf[22];
int ch;
sprintf("%20.15f", val);
ch = strchr(buf, '.')[2];
if (ch == '6' || ch == '7') {
return val + 1.0;
}
return val;
}
0604デフォルトの名無しさん
NGNG問題文の 2 行目の最後は見えてます?
あと、602 は読んでくれてない?
0605デフォルトの名無しさん
NGNG素朴な疑問だけど、>>603は「引数によって関数の結果を返してはいけない」と思うけど?
0606デフォルトの名無しさん
NGNG嫁ていないのは誰だろうか
0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG0609デフォルトの名無しさん
NGNG0610デフォルトの名無しさん
NGNG同意。
そしてマルチポスト野郎にまともに答えてくれる香具師はいない罠。
0611デフォルトの名無しさん
NGNGついでに 「向こう」 の 771。
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNG宿題検収の際に、いちいち確認するのが面倒だからプロトタイプは不要。
という事では?
0614デフォルトの名無しさん
NGNG何レス付けてんだよ。マルチポストした奴と同程度のマナー違反だよ。
0615デフォルトの名無しさん
NGNGをポインタを使わないで記述する方法を教えてください。
0616デフォルトの名無しさん
NGNG0617615
NGNG0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNGはポインタ変数の定義に見えるんだけど、
ポインタ変数はポインタなんだから他の定義方法はありません。
#これが引き数だって言うんなら*演算子を使わないこともできるけど。
0620デフォルトの名無しさん
NGNGint a = 123;
unsigned long b;
b = reinterpret_cast<unsigned long>(&a);
std::cout << *reinterpret_cast<int*>(b);
0621デフォルトの名無しさん
NGNG0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG#って、移動するならきちんと断ってからね。
0624615
NGNGfscanf(fp1,"%*s %d",wall_type)と書かれているんだけど
これをポインタじゃない方法で処理ってできますよね?
結局、漏れが何をしたいのかというと
ポインタで書かれているトコを他の書き方に変えてそれを
FORTRANに書き換えたいんだが・・・C初心者でスマソ(´・ω・`)
0625デフォルトの名無しさん
NGNGint wall_type;
fscanf(fp1,"%d", &wall_type);
こうか?
ファイルからの入力関数なんで、FORTRANの入力関数に置き換えるんだろー
0626615
NGNGfscanf(fp1,"%*s %d",wall_type); /* type of fluid treated as wall */
fscanf(fp1,"%*s %d",wall_p_type); /* type of fluid treated as wall+pressure */
for(i=0;i<*fluid;i++)
いやコピペはミスってないでつ。
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNGscanfに渡すのは変数のアドレスなんで、
int *wall_type;
fscanf(fp1,"%d", wall_type);
これを
int wall_type_value;
fscanf(fp1,"%d", &wall_type_value);
こうで良いのでは、って意味。
0629デフォルトの名無しさん
NGNGなんでそこでポインタ変数を使っているのか判らないと正解は出ないと思われ。
0630デフォルトの名無しさん
NGNGC のソースの処理内容を把握して、新規にコードを起こせ。
つーか FORTRAN スレ逝け。
C のコードが何を意味するのかわからないという質問なら、このスレでも
回答はつくかも知れない。
0632デフォルトの名無しさん
NGNG間違いにしてもワラタ
0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNGもしそうでなかったらそれはまともなプログラムじゃないよ。
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNGはいっているかわかったもんじゃないので……
0639デフォルトの名無しさん
NGNG初期化しなかったchar型配列の値を晒すスレ
http://pc2.2ch.net/test/read.cgi/tech/1041327869/l50
0640デフォルトの名無しさん
NGNG腐ってるスレの URL なんか貼るなよ
0641635
NGNG0642デフォルトの名無しさん
NGNGint wkint;
char wkchar[3];
memset(wkchar,NULL,sizeof(wkchar));
memcpy(wkchar,adr1,2);
sscanf(adr1,"%x",&wkint);
*adr2 = wkint;
}
こんな感じのサブルーチンがあります。
このルーチンがどのような処理をしているのか、
また、動作するのか?
以上2点をお教えいただきたいです。
厨房ですいみませんがよろしくお願い致し枡。
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNG> memset(wkchar,NULL,sizeof(wkchar));
memsetの第二引数の型はint。
intにポインタを渡すな
0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNGint w;
p[w]++; ← と 同じ処理をするものはどれかっていう問題で、
選択肢が、
A. ++*( p + w )
B. *( p + w) ++
何ですが、違いがわかりません。教えてください。
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNGこの問題出した奴晒せ。
(*(p+w))++;
0649デフォルトの名無しさん
NGNGどれが餌ですか?
0650デフォルトの名無しさん
NGNGC言語検定の問題集です。
0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNG配列の内容を参照して加算する。
「++*( p + w)」 は、
�@*( p + w )の番地を参照し、
�A参照した値に+1をする
演算式である。
0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNG0656デフォルトの名無しさん
NGNGBはコンパイル通らないぞ
0657デフォルトの名無しさん
NGNG注意力を試してるいるんだな(w
0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNG俺もそう思った。
0660デフォルトの名無しさん
NGNG(゚Д゚)ハァ? 選択肢に無い解答書いといて何が
「正解は…じゃねーの?」だ。おめでてー頭してんなこいつら。
0661デフォルトの名無しさん
NGNG千と千尋の10頭の豚から両親を捜すと言う問題では「この中にはいない」と言う例外が正解になっていたが。
0662デフォルトの名無しさん
NGNGなっていたが ・・・・・・
0664663
NGNGアヒャーー
∧∧
(゚∀゚ )⌒ヽ ≡≡ = = -
,.、,,U‐U^(,,⊃_ /i ≡≡≡ = = -
;'゚∀゚ 、、:、.:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i = ≡≡≡ = = -
'、;: ...: ,:. :.、.:',.: .:: _;.;;..; :..‐'゙  ̄  ̄
`" ◎ ''`゙ ◎ ´´ - = ≡ = = -
0665デフォルトの名無しさん
NGNGがp[w]を評価しておらず、効果が副作用だけなんでAでも正解といえば正解なんだが。
正直、引っ掛け問題だよなこれ。悪問だと思う。
x = p[w]++;
とかなってたらまた別なんだがな。
0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNGキタ━━━━━(゚∀゚)━━━━━!!!!
0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG* と ++ ってのは、演算子の優先順位は同じだが、結合規則が「右から左」なので、
*( (p+w)++ )
って意味になるのだよワトソ(ry
0670デフォルトの名無しさん
NGNGそんな話は誰もしていない。
0671デフォルトの名無しさん
NGNGchar s[512]があり、その中身を
16進数でchar hoge[512]に移したいんですけど
どのようにすればよろしいでしょうか?
初心者で申し訳ないですが
おながいいたします。
0672デフォルトの名無しさん
NGNG> 16進数でchar hoge[512]に移したいんですけど
> おながいいたします。
もうすこしネタとばれにくいネタを書け
0673671
NGNGいやこれまじなんすよ・・・・
void Wakaranchi (char *adr1, char *adr2){
int wkint;
char wkchar[3];
bzero(wkchar, sizeof(wkchar));
memcpy(wkchar, adr1, 2);
sscanf(adr1, "%x", &wkint);
*adr2 = wkint;
}
こんな感じのサブルーチンじゃできないっすかね??
初心者でマタークわからんのです。。。
ほんと助けてくんろー!!
おながいします。。。
0674デフォルトの名無しさん
NGNG#include <stdio.h>
void str2hex(char *dest, const char *src)
{
if(*src)
{
do {
dest += sprintf(dest, "%02x ", (unsigned char)src++);
} while(*src);
dest--;
}
*dest = '\0';
}
int main()
{
char s[512] = "OMAEMONA", hoge[512];
str2hex(hoge, s);
puts(s);
puts(hoge);
getchar();
return 0;
}
0675デフォルトの名無しさん
NGNG関数str2hexにバッファーオーバーランによるセキュリティ・・・
0676デフォルトの名無しさん
NGNGえ? 関数str2hexは無罪だろ。
まさかstrcpyもバッファーオーバーランによるセキュリティがあると思ってる?
0677デフォルトの名無しさん
NGNGまさかstrcpyにバッファオーバーランの危険がないと思ってる??
0678674
NGNG0679デフォルトの名無しさん
NGNG皆無とは言わないが、取り立てて言う程のことでもない。
gets() と違い、strcpy() は使い方さえ間違えなければ問題は絶対発生しない。
0680デフォルトの名無しさん
NGNGスレはここですか?
0681671
NGNGご丁寧にありが�dございます。
作成いただいたプログラムを走らせたところ
OMAEMONO
4c 4d 4e 4f 50 51 52 53
↑このような結果になりました。
これって、アドレスかなんかなんでしょうか?
厨房でよくわからずご迷惑お掛け致しますが
御教授お願い致します。
0682デフォルトの名無しさん
NGNGここ
dest += sprintf(dest, "%02x ", (unsigned char)*src++);
だべ。
0683デフォルトの名無しさん
NGNG訊く前に、674 がどういうプログラムなのか読み取ってみようとは
思わないのか?
0684デフォルトの名無しさん
NGNGちょとワラタ
あんさん…じぶんでゆうといてそりゃ…
0685デフォルトの名無しさん
NGNGいや、あれは確かにアドレスの成れの果てだぞ
0686681
NGNGありがとんごぜぇます。
>>683サソ
ヨミトレネェンダヨォォ...
おせぇてくれよ。処理内容を。
ニホンゴで。
>>684
ワライゴトジャネーヨ
ヽ(`Д´)ノ ウワァァン!!
0687デフォルトの名無しさん
NGNG処理内容なら、あんたが自分で言ったぞ。
0688デフォルトの名無しさん
NGNG何がわからないのかも述べず、単に教えてくれと繰り返すだけの香具師には、
説明してやる気にはなかなかなれないもんだ。
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG理解できないような香具師が、なんでまた
こんな問題を解決しなければならないんだ?
>中身が"OMAEMONA"という文字の
>char s[512]があり、その中身を
>16進数でchar hoge[512]に移したいんですけど
>どのようにすればよろしいでしょうか?
それがもし、課題かなにかなら擦れ違いだし、
仕事かなにかならこんなところで他人に頼ってちゃダメだろ。
それともなにか? 今後何か出るたんびにここで聞こうってのか?
0691デフォルトの名無しさん
NGNGそりゃぁ「あっしに聞け」だからな。
0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG関数はmemcpy,strncpyどっちかだな。
strcpyはサイズ指定出来ないから領域破壊の元だ。やめとけ。
つうか、技術評論社のC言語辞典読んどけ。
0695デフォルトの名無しさん
NGNGそんなこと言い出したら gets() だって使い方間違えなきゃ問題は絶対発生しないぞ。
0696デフォルトの名無しさん
NGNGgets() を呼び出したらそれだけで問題の回避は不能だとあれほど
0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNGgetsとstrcpyは外界と接点があるかどうかという点で大きく異なる。
strcpyは使い方さえ誤らなければ安全に使うことが可能。
外界と接点がないところで使えば、コードで安全であることを保障できる。
getsは外界と接点があるゆえに、コードだけでは安全であることを保証できない。
0699デフォルトの名無しさん
NGNG環境によってはもんだいは起きない。
0700デフォルトの名無しさん
NGNG正気か?
0701デフォルトの名無しさん
NGNG何を問題と定義するかによるけどね。
0702デフォルトの名無しさん
NGNG香具師が居るとは思えないが・・・。
0703デフォルトの名無しさん
NGNGそういう阿呆な事をする前に、fgets() の使用を検討しろ。
0704デフォルトの名無しさん
NGNGうん、だから普通はstrmove()を作る
0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNGgetsと違い、対策すれば完全に防げるが。
0707デフォルトの名無しさん
NGNG>>702
>領域破壊の可能性がある状況で
日本語が理解できないなら即ち氏ね
0708デフォルトの名無しさん
NGNGああスマン
つっこまれるまで気づかなかった。
0709デフォルトの名無しさん
NGNGgets()は使うな。
strcpy()で領域破壊の可能性を拭い切れないならstrdup()でも使え。
だからと言ってstrncpy()は別な問題を発生させるから心して使え。
いっそ、sprintf()で%.*sでも使うほうがよっぽどましだ。
strcpy()が一切使えないなんていってると、strlen()さえ使えないことになるぞ。
こんなところかな。
0710デフォルトの名無しさん
NGNG> strdup()でも使え。
そういう人が使うとメモリリークのバグをうみそう・・・
0711デフォルトの名無しさん
NGNGバッファオーバーランよりはマシ。
もっともそれだとバグに気が付かなくて、コードの修正も本人の技量向上も望めそうにないが。
0712デフォルトの名無しさん
NGNGそそ、それが悩みの種。
0713デフォルトの名無しさん
NGNG最適なビタミンC誘導体は何ですか?
また、何所で手に入りますか?
0714デフォルトの名無しさん
NGNGネタはageで。
0715デフォルトの名無しさん
NGNGあなたの脳髄が最適です。
あなたの尊い犠牲によって入手できます。
0716デフォルトの名無しさん
NGNGchar型の配列 10.111 を
double型のデータ 10.111 に変換する方法ってあります?
0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNGatof() でええやん
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNG0721716
NGNG0722720
NGNG0723デフォルトの名無しさん
NGNG変数sevenが49の倍数の時に改行、というプログラムをつくりたいのですが、
いまいちうまく行きません。ソースの一部を貼ります。
これをコンパイル&実行するとDOS窓にずらーっと数字が出てきてとまりません。
どこがおかしいのでしょうか?
まだfor文の使い方がよくわからないところもあるので、
どうやればできるのか、教えていただけないでしょうか?
for(seven=1; 1000>=seven; seven*7)
{
if((seven%49)==0)
{
printf("%d、\n",seven);
}
else
{
printf("%d、",seven);
}
}
0724デフォルトの名無しさん
NGNGseven*=7
0725デフォルトの名無しさん
NGNGint main()
{
int seven;
for(seven=1;seven<=1000;seven++){
if(!(seven%7)){
printf("%5d",seven);
if(!(seven%49))
printf("\n");
}
}
return 0;
}
0726725
NGNG0727723
NGNGseven*=7でなんで=が必要なのでしょうか?
for文内では必要なのですか?
>>725
その方法もありましたね。
気づきませんでした。
そっちのほうが早く処理できるかな?
それは7ずつ足せばいいということですか?
seven=seven+7
これで下のif文を省いて・・・
今からいろいろ試してきます。
0728724
NGNGseven*7
だけでは、いつまでたってもsevenの中身は変わらないよ。
やるなら
seven=seven*7
これは
seven*=7
と書ける・・・・
でもこれだと、1,7,49・・・になっちゃうね・・・・
seven=seven+7
が正解だね・・・・欝
0729723
NGNG今試したらそうなっちゃいました(笑)
なので>>725さんの方法でやりました。
seven=seven+7で。
今まで変数はnとかiだったんですけど変数をsevenとかに
するとソースが書きやすいですね。
0730デフォルトの名無しさん
NGNG> getsとstrcpyは外界と接点があるかどうかという点で大きく異なる。
で、どこまでが外界なんだ ?
自分が作ったファイルを読むんなら gets() だって安全じゃねーのか ?
他のプロセスが作ったメモリーマップドファイルの内容を strcpy() するのは危険じゃねーのか ?
少なくとも、strcpy() が外界と接点がないと思い込む方が危険だよ。
0731723
NGNGfor(seven=1; seven<=1000; seven=seven+7)
だと1、8、・・・となってしまうので最初の初期化はseven=0;にしないと
ひとつずれてしまいました。
それだけです。
0732デフォルトの名無しさん
NGNG第三者が存在する場合に、サイズ計算せずにstrcpy()使うのが悪い。
計算した上でstrcpy()が危険なら、安全な関数は標準ライブラリにはない。
つまり、文字列の終端までアドレスが有効かを調べなきゃいけないということ。
strcpy()はサイズを事前に計算するなり、strncpy()を使えばいい。
gets()は、実際にバッファが溢れない限り検知する手段がないのが問題。
0733デフォルトの名無しさん
NGNG>他のプロセスが作ったメモリーマップドファイルの内容を strcpy() するのは危険じゃねーのか ?
もちろん危険だ。そのままやっちゃうとアウトだろうね。
普通そんなことする前にstrlen使ってサイズを調べたりしないか?
想定外の異常なサイズだとエラー出して止まるなり何なり実装するんじゃないか?
それは外界と接点があるところだろう。
だったら何のチェックもせずにstrcpyを使うのは危険極まりないぞ。
「使い方さえ間違わなければ」とはそういう意味で使ってる。
>自分が作ったファイルを読むんなら gets() だって安全じゃねーのか ?
そのファイルが何らかの要因で書き換わらない保証はあるのか?
そうなったときにgetsだとバッファオーバーランを防ぐ方法はないぞ。
0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNG>普通そんなことする前にstrlen使ってサイズを調べたりしないか?
'\0'で終わってるか分からない文字列にstrlen()は使わない
つーか、何が入ってるか分からない可能性のあるデータは
効率が悪くても、strncpy()かmemcpy()の、その場に適してる方を使う
0736デフォルトの名無しさん
NGNG0737DD
NGNGint main(void){
int item[5]={3,1,6,7,2},a,b,t,count;
for(a=1;a<count;a++)
for(b=count-1;b>=a;b--){
if(item[b-1]>item[b]){
t=item[b-1];
item[b-1]=item[b];
item[b]=t;
}}
for(t=0;t<count;t++)printf("%d",item[t]);
return 0;}
0738DD
NGNG0739デフォルトの名無しさん
NGNGchar *a = "100";
int b = 100;
この2つの100を一箇所の#defineで管理する方法ってあるの?
0740デフォルトの名無しさん
NGNG> '\0'で終わってるか分からない文字列に
そもそも\0で終わってない可能性のあるものを文字列として扱おうとするのが間違い。
0741デフォルトの名無しさん
NGNGC-FAQ嫁。
#define Str(x) #x
#define Xstr(x) Str(x)
#define NUM 100
char *a = Xstr(NUM);
int b=NUM;
0742デフォルトの名無しさん
NGNGファイルを読むのになんでgetsを使うの??
0743740
NGNGと言うべきか。
0744デフォルトの名無しさん
NGNGじゃstrcpy()で、ええやん
0745デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>720
0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNGまあ、strncpy 使えってこった。
0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNG> >>730
> >他のプロセスが作ったメモリーマップドファイルの内容を strcpy() するのは危険じゃねーのか ?
> もちろん危険だ。そのままやっちゃうとアウトだろうね。
> 普通そんなことする前にstrlen使ってサイズを調べたりしないか?
> 想定外の異常なサイズだとエラー出して止まるなり何なり実装するんじゃないか?
> それは外界と接点があるところだろう。
> だったら何のチェックもせずにstrcpyを使うのは危険極まりないぞ。
> 「使い方さえ間違わなければ」とはそういう意味で使ってる。
> >自分が作ったファイルを読むんなら gets() だって安全じゃねーのか ?
> そのファイルが何らかの要因で書き換わらない保証はあるのか?
> そうなったときにgetsだとバッファオーバーランを防ぐ方法はないぞ。
0752デフォルトの名無しさん
NGNG> そのファイルが何らかの要因で書き換わらない保証はあるのか?
そんな極論言い出したら、あんたが strcpy() でコピーしようとしているメモリーだってデバッガで書き換えられるかも知れんぞ。
発生確率に違いがあるかも知れんが、本質は一緒だよ。
>>730 に書いた通り、「どこまでを外界と見なす」かの問題だよ。
0753デフォルトの名無しさん
NGNGバカですか?
デバッガ勝手に動かされたら、脆弱性以前の問題なのだが。
それを確率とか逝ってるし。
0754デフォルトの名無しさん
NGNG>自分が作ったファイルを読むんなら gets() だって安全じゃねーのか ?
おまえは 「gets() は必ず "自分が作ったファイル" を読む」
という仕様の関数を書くのか?
お前と一緒に仕事する奴に同情するよ・・・
0755デフォルトの名無しさん
NGNG本質が見えてない奴だな。
システムとして、「そのファイルが何らかの要因で書き換わらない保証」ぐらいできるだろ。
>「どこまでを外界と見なす」かの問題だよ。
と言うのをちゃんと理解しろ。
>>754
> おまえは 「gets() は必ず "自分が作ったファイル" を読む」
> という仕様の関数を書くのか?
日本語喋れ。
お前と一緒に仕事できる奴なんていないんだろうな...。(藁
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNG・仕様をきちんと定義する。
・仕様外、想定外の利用をされた場合の救済策を充分練る。
のは当たり前でしょう。
その上で、完全に安全なものは作れないのだから、
・仕様を徹底して異常な利用はさせない。
・定期的に利用方法、仕様を再検討する。
と言った運用で逃げるしかないっしょや。
0758デフォルトの名無しさん
NGNGあふぉが使えばアフォなりだよ。
gets()が悪いわけではない。
0759デフォルトの名無しさん
NGNG0760ダンディ坂野
NGNG0762デフォルトの名無しさん
NGNG> そのファイルが何らかの要因で書き換わらない保証はあるのか?
アプリの一部として提供しているファイルを書き換えたとすれば、アプリを破壊されたのも同然です。
実行ファイルを書き換えられたのと本質的な相違はありません。
gets()の方がfgets()などに比べて扱いやすく、効率もよいのは確かなので、使いこなせるだけの能力
を持ち合わせた人ならば、適切に使うべきなのでは?
0763デフォルトの名無しさん
NGNGCの文法がそうだから。
0764デフォルトの名無しさん
NGNGstrcpyすると危険なメモリ領域は、strlenしても危険だとおもう。
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNGなんでファイルからの入力に標準入力を使いたがるの?
しかもアプリの一部として提供しているファイルを?
それってつまり、利用者がパイプラインを使ったりすることを妨げるよね。
逆に、標準入力からでもfgets()使う方は理解できるんだけどねぇ。
0767デフォルトの名無しさん
NGNGまあ馬鹿に刃物持たすなってことだ
0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNG>日本語喋れ。
そんなに言っている事が分からんか? じゃあ、実例。
void myfunc()
/* 注意!: この関数を呼ぶ時は必ず stdin が "myfile.txt" を指していなくてはならない。*/
{ char b[8]; gets(b); }
こんな関数、誰も使ってくれないし、自分も使いたくない。
間違いなくバクの温床。
0770デフォルトの名無しさん
NGNG逆に安心だぞ。
0771デフォルトの名無しさん
NGNG> それってつまり、利用者がパイプラインを使ったりすることを妨げるよね。
ユーザの誤使用を回避するには有効かも。
普通は専用の子プロセスを使ってファイルを読むことになるだろうけど。
単にfgets()を使えば安心と考えている人が多いのがむしろ問題としては大きいと
思う。
改行で終わったのか、ファイル終端で終わったのか、バッファが足りなかったのか、
エラーが発生したのか、一切調べずに得られた文字列を妄信する馬鹿がいかに多い
ことか...。
0772デフォルトの名無しさん
NGNG0773デフォルトの名無しさん
NGNG細かい事だが教えてくれ。
世間一般では「パイプ」の事を「パイプライン」とも呼んでいるのか?
俺は「パイプ」と「パイプライン」はまったく別のものだと思っていたが?
0774デフォルトの名無しさん
NGNG激しくナンセンス。持論を擁護するためにそこまで阿呆に成り下がらなくてもいいだろうに。
それに、そんな馬鹿がgets()使ったらどう思う?
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNGC3xxxx
が無条件ジャンプとか....
0777デフォルトの名無しさん
NGNG>単にfgets()を使えば安心と考えている人が多いのがむしろ問題としては大きいと
お前、「自動車事故」と「自動車自体の欠陥」の違いが分からんのか?
全く次元の違う話だろうが。
0778デフォルトの名無しさん
NGNGあ、Z80までならバイナリコーディングしてたよ。
尤も、精々100-200バイト程度だと思ったけど。
ジャンプ命令なんかは予め00入れておいて、
後から書き換えるから2パスだけどね。
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNGあの日本語から、これを想像しろと ?
こんな奴が「一緒に仕事する奴に同情するよ」とかほざいていたのか ?
gets() 使うなら、これぐらいしろと言うのなら別に「そりゃそうだ」と思うだけだ。
でも、俺は gets() が常に安全だと言ってるわけじゃなくて、strcpy() と本質的に変わらないと言ってるだけだ。
(つまり、>>679 がアフォだと言うことだ。)
そこは理解できているのか ?
0782デフォルトの名無しさん
NGNG誰でも判っていることとは思うが、strcpy() が危険な場合に常に strlen() が危険とは限らない。
0783デフォルトの名無しさん
NGNGgets()の安全な使い方のサンプルを提示してください。
0784デフォルトの名無しさん
NGNG複素数は2つの実数を使って表現せよ。”i”は虚数単位である。
という問題なのですが全くできません。お願いします。
0785デフォルトの名無しさん
NGNGマルチ氏ね
0786デフォルトの名無しさん
NGNGgets(s);
0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNGhttp://www.ruby-lang.org/ja/FAQ/rubyfaq-jp-8.html
0792デフォルトの名無しさん
NGNG>あの日本語から、これを想像しろと ?
つーか、俺は
>自分が作ったファイルを読むんなら gets() だって安全じゃねーのか ?
の一文から想像できた使用方法は >>769 のようなコードしか無かったのだが。
それなら >>781 はどういう使用方法を想定していたのか、
ぜひとも教えてもらいたいものだ。
0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNGk=j>>n;
0795デフォルトの名無しさん
NGNG処理系依存
0796デフォルトの名無しさん
NGNGsigned をシフトすると必ず算術シフトになった気がするんだが。
標準仕様にはなってなかったっけ?
0797デフォルトの名無しさん
NGNGsignedは正の数である時のみ結果が保証される。負の数をシフトした
場合は処理系依存。
0798デフォルトの名無しさん
NGNGttp://www.bohyoh.com/CandCPP/FAQ/FAQ00050.html
だそうだ。このページが正しいかどうかは知らんが。
0799デフォルトの名無しさん
NGNG一行のサイズが、バッファを越えないなら安全だよ。
(頼むから、>>733 へループしないでくれよな。)
>>791
別に、上に書いてあることが保証できればいいんじゃないの ?
と言うか、「gets() が常に安全ではない」という主張に反対してるわけじゃないぞ。
「gets() が読むファイルの内容が保証できるなら、gets() だって安全に使うことができる。」と言うだけのことだ。
(何回書けばわかるんだ ?)
0800デフォルトの名無しさん
NGNGっていうか、なんでファイルの読みこみにわざわざ標準入力を使うのかさ。
0801577
NGNG超楽勝ですた。間違った問題は
・配列の宣言の際に、初期化子の数が配列の要素数より大きい場合は、多い分が無視される。○か×か?
・2次元配列a[サイズ1][サイズ2]のサイズ指定は、サイズ1は省略できるがサイズ2は省略できない。○か×か?
の二問くらいの予感。
0802デフォルトの名無しさん
NGNG間違えるなよ。
0803577
NGNGもう一問間違えたっぽい。
C言語はALGOLを元につくられた。○か×か?みたいな問題
0804デフォルトの名無しさん
NGNG答えは×
0805デフォルトの名無しさん
NGNG正解
UNIX開発者のひとりのKenがつくったんだっけ?>B言語
0806577
NGNGゴメン、問題が確かじゃないから、もしかしたらALGOLの流れを汲むか?てな表現だったかもしれない。
今検索してみたら○っぽい、と思った。
まあ終わったからスッキリ!!どうせなので次回は2級受けるつもりです
0807804
NGNG高1だけど受けてみようかな。
C言語検定。
閑話休題、質問なんですけど
#define hoge 5
マクロを定義するときってhoge=5になるじゃないですか。
で、マクロの定義はもっと複雑な作業をやらせることができるんですか?
例えばよくテキストエディタで「この条件に一致するものには○○をする」
ってやつとかのことです。
0808デフォルトの名無しさん
NGNG----------------------------------------------
#define SIZE 65536
unsigned char src[SIZE], dst[SIZE];
int i, value;
value = 128;
for (i=0; i<SIZE; i++)
dst[i] = ((src[i] >= value)?255:0);
----------------------------------------------
とりあえず、
A ?:の代わりにif-elseを使用
→ ちょっと速くなった?ただの誤差かも
B forループ内の処理を256ずつにしてループのオーバーヘッドを減らした
→ そこそこ速くなった
C unsigned long *に変換して、マスク処理で各バイト毎に判定
→ ちょっと速くなったけど、longで読んだ意味無し?
なんてのを試してみました。
0809デフォルトの名無しさん
NGNGだれも >>799 が「gets()が常に安全だ」等と主張しているとは言っていない。
皆が問題にしている部分は
>>752
>発生確率に違いがあるかも知れんが、(安全性について)本質は一緒だよ
と言ってる部分だ。
gets() の場合、>>769 のような非現実的なコードを書かない限り、
プログラマは安全性を保証できない。
strcpy() の場合、終端等、プログラムを設計する時点で普通に
気をつけていれば安全性を保証できる。
皆、これは「発生確率(何だそりゃ?)の差」等というものではなく、
絶対的な違いだと考えているって事。
単純に「安全性の濃淡」で話を一くくりにできるのなら、
極端な話「そのコードを一回も実行しない事」が仕様となれば
どんなコードも「発生確率に違いがあるかも知れんが、本質は一緒だよ」
と言える事になる。
0810デフォルトの名無しさん
NGNG初期化しとけば代入の回数が減る
ポインタ使った方が速いかも
0811デフォルトの名無しさん
NGNG計算後の値をあらかじめいれとけ。
0812デフォルトの名無しさん
NGNG折れ中3だけど
お前折れよりヒドイな
折れ以下の香具師がいて安心した
0813デフォルトの名無しさん
NGNG811とかぶるかもしれないけど、判定元がcharなら判断後の値のテーブルを作る。
条件分岐にしないで、テーブル参照だけにすれば速いかと。
dst[i] = ((src[i] >= value)?255:0);
の代わりに
dst[i] = table[src[i]];
って事ね。
0814デフォルトの名無しさん
NGNG非現実的かも知れんが、そう言うコード (gets() が安全である) は書けるんだろ ?
これには、Yes or No どっちなんだ ?
No と言うなら、書けない事を証明してくれ。
Yes と言うなら、gets() が安全である時があることには同意するんだよな。
つまり、strcpy() も gets() も「安全である時もそうでない時もある」と言うだけのことだろ。
> 皆、これは「発生確率(何だそりゃ?)の差」等というものではなく、
> 絶対的な違いだと考えているって事。
お前だけじゃねーのか ? (藁
> 単純に「安全性の濃淡」で話を一くくりにできるのなら、
> 極端な話「そのコードを一回も実行しない事」が仕様となれば
> どんなコードも「発生確率に違いがあるかも知れんが、本質は一緒だよ」
> と言える事になる。
何言いたいのかよくわからんよ。
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNGテーブル参照 = メモリアクセスだからキャッシュに載ると言ってもちょっと遅いような気が...。
0817デフォルトの名無しさん
NGNGこんな短いループを高速化したいなら、インラインアセンブラの出番かと。
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNGとりあえず根本的な対策。
(これは別に一休さんみたいな
とんちの利いた解答という訳ではなく、
あくまでマジレス)
1.その2値化処理自体を必要としない方法を考える。
2.ハードの力を使う。
0820デフォルトの名無しさん
NGNGCはだめじゃない?あらかじめlongの配列として宣言しておかないと。
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNG・・・付き合うのやめた。あとは勝手にやってくれ。
(どうせ >>814 も実際は現場で gets() を
使っていないのは分かりきっているし)
0825デフォルトの名無しさん
NGNG0826808
NGNG初期化とは、最初にdstを0(or255)に初期化して代入処理を減らすということですか?
memset使ったら逆に遅くなりました(;´Д`)
ポインタは試してないので、明日にでも試してみます。
>>811 >>813
ウチの環境だと、条件分岐にしたときと殆ど同じ速度でした(;´Д`)
>>817
インラインアセンブラは使ったことがないので、勉強してみます。
>>818-823
ヽ(`Д´)ノ ウワァァァァン
あ、valueは0〜255までの任意の値です。128以外もあり得ます。
0827デフォルトの名無しさん
NGNG基本的な事だけどアンロールしてる?
0828デフォルトの名無しさん
NGNGアンロールって何ですか??
0829デフォルトの名無しさん
NGNG使わないといけない理由なんてないでしょ。
つまり、始めからgets()擁護は机上の空論。
0830577
NGNG0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNG>(どうせ >>814 も実際は現場で gets() を使っていないのは分かりきっているし)
もちろん、普通は gets() なんか使わんよ。
(これぐらいは、>>695 の「そんなこと言い出したら」のくだりでわかりそうなもんだが...。)
>>829
ここまでくるとネタか ?
> だからさ、限定条件に置かないと安全に使うことができないgets()を
> 使わないといけない理由なんてないでしょ。
> つまり、始めからgets()擁護は机上の空論。
じゃ聞くが、strcpy() は限定条件を置かなくても安全に使えるのか。
そう言う意味で、なんで gets() は安全じゃなくて、strcpy() は絶対安全なんだ ?
(>>679 参照)
ところで誰が gets() を擁護してるの ?
俺は、「gets() が安全な (* 場合も *) ありえる。」と書いてるだけだぞ。
(>>781, >>799, >>814 見れ。何回書けばわかるんだ ?)
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNGgetsはどうすることもできないからじゃないの??
0836デフォルトの名無しさん
NGNGと言い替えておきましょうか。
0837デフォルトの名無しさん
NGNG対象をライブラリ関数に絞らなきゃ
i = i++; (= いわゆる未定義) だと思う。
0838デフォルトの名無しさん
NGNGだからってわけじゃないけど質問。
strncpyの代わりにsprintf使えって言われたけどどうやるの?
0839デフォルトの名無しさん
NGNGsnprintfの間違いじゃないのか。
0840デフォルトの名無しさん
NGNGふざけるなと思った。
0841デフォルトの名無しさん
NGNG>>830 は見てんのか ?
> 自分が作ったファイルを読むんなら gets() だって安全じゃねーのか ?
(ついでに、それに対するレスも見といてくれよ。)
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNG状況がわからないから、あんたが正しいのか、使うなって言う奴が正しいのか判断できん。
0844デフォルトの名無しさん
NGNG0845XYZ
NGNG0846デフォルトの名無しさん
NGNGすれ違い
0847デフォルトの名無しさん
NGNGmock_strncpy(char *dst, char const *src, size_t len)
{
sprintf(dst, "%.*s", len, src);
return dst;
}
0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNGおまえの書いたプログラムなんて誰も使わんのだから
gets()使いたければ勝手に使っとけ。
まともなプログラマがまともなプログラムを書くときは
100% gets() は使わない。
strcpy() は状況によっては使うこともある。
0851デフォルトの名無しさん
NGNG絶対にやってはならない事の例として使う
(↑はまともなプログラムでしょう?)
0852デフォルトの名無しさん
NGNG具体的な例出されたら、必死とか言うだけですか ?
> gets()使いたければ勝手に使っとけ。
またでたよ。何回書けばわかるの ? 真性のアフォですか ?
>>832 に...
| もちろん、普通は gets() なんか使わんよ。
| 俺は、「gets() が安全な (* 場合も *) ありえる。」と書いてるだけだぞ。
と書いてるように、安全な場合があると言ってるだけで gets() を使ってるとか使うのが望ましいと言ってるわけじゃないんだよ。
(つーか、普通は使わんとはっきり書いてあるんだが...。)
で、ぐちゃぐちゃ書いてるけど、結局 >>830 に対して反論できるの ? できないの ?
0853デフォルトの名無しさん
NGNGナル
0854デフォルトの名無しさん
NGNG*>>830*には反論できません(てかする気もありません)が何か?
おまえ
あ せ り す ぎ (ワラ
0855デフォルトの名無しさん
NGNG飽きたから他のスレでやってくれ
0856デフォルトの名無しさん
NGNG他のスレっつーなら行き先ぐらい張れよ
http://pc2.2ch.net/test/read.cgi/tech/1031355713/
0857デフォルトの名無しさん
NGNG> (てかする気もありません)が何か?
する気があったらできるの ?
こんなこと書いてて恥ずかしくないの ?
まして...
>おまえ
>あ せ り す ぎ (ワラ
に至っては、わけわからんし。
まあ、悔しいから何か書きたかったんだろうね。(ププッ
>>855
ごめんよ、ループする奴多くてさ。
0858デフォルトの名無しさん
NGNG>Mail : ここから釣りです。
さっさと寝ろ。
0859デフォルトの名無しさん
NGNG何怒ってんの ?
0860デフォルトの名無しさん
NGNG面白くない
0861デフォルトの名無しさん
NGNG今、5人の点数をユーザーが入力してint test[5]に入れるものなのですが、
これでfor文を使って入力とそれぞれの点数表示はできたのですが
平均を求めるやり方がわかりません。
int test[5]に格納した点数をすべて合計して5で割りたいのですが
どうすればint test[5]に格納した点数を合計できるのでしょうか?
よろしくお願いします。
0862デフォルトの名無しさん
NGNGint total=0;
for(test){
total+=test[i]
}
0863デフォルトの名無しさん
NGNGこれでも呼べば。
double
calcAve(size_t len, int *pVal)
{
int ic;
int sum = 0;
for (ic = 0; ic < len; ic++) {
sum += pVal[ic];
}
return (double) sum / len;
}
0864デフォルトの名無しさん
NGNGcalcAve(size_t len, int *pVal)
この書き方されると俺のエディタは関数の検出できなくて激しく不便なんだよな。
0866デフォルトの名無しさん
NGNG私はいろんなエディタ使うから、grepで探しやすいようにしてるんだけどさ。
0867デフォルトの名無しさん
NGNG私はいろんなエディタ使うけど、定義の検索くらいエディタのマクロ探すようにしてるんだけどさ。
0868デフォルトの名無しさん
NGNG俺はC/C++学び始めですが、みなさんは
「C/C++を普段使っているけど、この機能についてはあまり知らない」
ってことあります?
例えばC++ならclassを使った方が綺麗に仕上がるけど、
構造体の方が使い慣れてるから構造体で済ましてしまうとか。
個人的にはあまりにもC/C++は多機能過ぎて(特にC++)いっぺんに
覚え切れなくて不安です。
0869デフォルトの名無しさん
NGNGテストに出るわけでなし、取りあえず組めればそれで良いでしょう。
存在する制限の中でどれだけのことが出来るか追求してみるのもおもしろい。
勉強を怠らなければ新機能への理解も必ず出来る。
がんばっとけ。
0870デフォルトの名無しさん
NGNG特徴的な型を定義して、そのデータ型間の演算を多用するならそれはもう、クラスにしてオーバーロードした方がいい。
いずれにしても一遍に覚える必要はない。
私はCからC++に入ったけど、C++を最初から勉強するのもいいね。
がんがれ〜
0872デフォルトの名無しさん
NGNGfunc(arg...)
この形は激しください。
0873デフォルトの名無しさん
NGNGSTATUS_ACCESS_VIOLATION
0874デフォルトの名無しさん
NGNG0875名無しさん@Emacs
NGNG> hoge.c:256: dereferencing pointer to incomplete type
というエラーが止まりません。
構造体へのポインタを通してメンバにアクセスしようとするとこうなるのですが、
何が悪いのでしょうか?
ほとんど見たことないエラーなので、対処の方法が分かりません。
どこらへんをチェックすればいいでしょうか?
0876名無しさん@Emacs
NGNG上記エラーが出るんですが、該当するコードを削除して、
gdbでステップ実行すると hoge->sock には触れるんです。
0877デフォルトの名無しさん
NGNGhogeの指す構造体がhoge.cのコンパイル中に定義されているか確認汁。
宣言だけで使ってるとそんなエラーがでるはず。
0878名無しさん@Emacs
NGNGありがとうございました。まさにそんな感じでした。
サーバ側とクライアント側のライブラリやヘッダファイルが
ごちゃごちゃになって、どこに定義があるのか判然としませんでした。
0879デフォルトの名無しさん
NGNGchar const *p;
char * const p;
の違いってなんですか?
実際に試すと、1番目と2番目が同じ動きで、3番目が違う動きをします。
解説お願いします?
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG最後のは、p++とかが禁止される
0882879
NGNGそんなのは試せばわかる。理屈でわかりやすく説明してくれ。
0883デフォルトの名無しさん
NGNG>>880
0884879
NGNG1番目と2番目の違いがわからん
0885デフォルトの名無しさん
NGNG1番いい勉強法は何ですか?
0886デフォルトの名無しさん
NGNG本を読む
0887デフォルトの名無しさん
NGNGどんな?
0888デフォルトの名無しさん
NGNGchar が const か、
const な char か、の違い。
つまり一緒。
ついでに言えば、
char *p;
char const *p;
char *const p;
char const *const p;
で全部意味が違う。
0889886
NGNG0890885
NGNGいや、まじめに聞いてるんですが…
0891デフォルトの名無しさん
NGNGつーか、>>882 の時点で ネタ もしくは、真性の アフォ だろ。
>>880-881 の説明以上に的確な説明は思いつかないよ。
0893808
NGNGレス番号間違えてました。失礼しました。m(_ _)m
ポインタ使った処理は、使い方が分かってないのかもしれませんが、gccで最適化した場合では元の処理と同じくらいでした。
>>827
・・・最適化オプションの存在を忘れてました・゚・(ノД`)・゚・
オプション(cygwin gcc: -O2 -funroll-loops、vc++ cl: /O2)を付けたら劇的に速くなりました(;´Д`)
gccでは、テーブルを使った処理→>>842さんの式の順で、またvc++では、テーブルを使った処理と>>842さんの式がほぼ同等の速さになりました。
>>817-818 >>821
MMXのアセンブラが面白そうなので、ちょっと勉強してみます。
>>827
してなかったので、ちょっと調べてみました。
>>842
勉強になります。
0894808
NGNGBBSの過去ログにこんなの↓があったので、いろいろと調べてみようと思います。
以下勝手に転載。
--------------------------------------------------
最近書いたコードから;RGB各8bitのピクセ
ルで、RGBそれぞれで独立に
二値化(0か0xff)するというもの。
p: ピクセルの値(RGB32)
a = p | 0x1010100;
a = (a - 0x808080) & 0x1010100;
a = a - (a>>8);
0x808080が閾値で、RGB独立に変更でき
ます。細かく見ていくと誤差が
あるのですが、その辺が問われない場合
であれば充分かと思います。
(このフィルターそのものが使い途に困る
という話もありますが…)
--------------------------------------------------
ttp://homepage1.nifty.com/herumi/adv/bbslog/bbs10.html の459より転載
レス、どうもありがとうございました。m(_ _)m
0895デフォルトの名無しさん
NGNG得たいのですが
ちょうど、交互に出てきてしまいます。
別の方法なにか、ありますか?
0896デフォルトの名無しさん
NGNG{
int tmp;
tmp=array[a];
array[a]=array[b];
array[b]=tmp;
}
void sort(int *array,int num)
{
int i,n;
num-=1;
for(i=0;i<num;i++)
{
for(n=0;n<num;n++)
{
if(array[i]<array[n])
{
swap(array,i,n);
}
}
}
}
こういうソートアルゴリズムってなんて言うんですか?
0897896
NGNG0898577
NGNG0899896
NGNG0901デフォルトの名無しさん
NGNGダメです。
0902デフォルトの名無しさん
NGNG標準ライブラリのみでマウスからの入力を行なうには
どんな関数を使えばいいのでしょうか?
googleで検索してもわからないのですが
0903デフォルトの名無しさん
NGNGfread
0904デフォルトの名無しさん
NGNGsrand((unsigned int)time(NULL));
s=rand()%2;でやってるんですぅ。
奇数と偶数が交互にでない乱数は、どうやるんですかー?
0905デフォルトの名無しさん
NGNGrand()の系列は偶数と奇数が交互に出ているので、
a=0;
if ( rand()%11<6 ) a=1;
とかしてみるのはどうでしょう?
0906デフォルトの名無しさん
NGNGrand で使われてる乱数生成ルーチンでは、
下位 n bit の周期は 2 の n 乗になる。
なるべく上位のビットを使うようにしないと駄目。
>>905
そんな面倒なことしなくても、最上位ビット取ればいいと思う。
0907デフォルトの名無しさん
NGNG生成ルーチンって仕様で決まっているの?
0908デフォルトの名無しさん
NGNGhttp://www.math.keio.ac.jp/~matumoto/mt.html
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNGhttp://www.math.keio.ac.jp/matumoto/CODES/MT2002/mt19937ar.c
コメント多すぎ。誰か削って見やすくしてくれ。
0911デフォルトの名無しさん
NGNGhttp://www.boost.org/libs/random/index.html
0912デフォルトの名無しさん
NGNGhttp://www.toshiba.co.jp/product/abwr/random/
0913デフォルトの名無しさん
NGNG難しいものだと思いこんでたらまったくそんなことありませんね。
意外と簡単でした。
それだけです。
今思いついた質問ですが、実際にアプリを作るとき、配列を使うなら
なるべく量は少ないほうがメモリリークしにくくなるんですか?
メモリを確保しないで済む分。
どうなんですか?
0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNG下位ビットと上位ビットを入れ替えてから返すような実装ってある?
0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNGやっぱり君にとっては配列は難しいのだと思う
0918デフォルトの名無しさん
NGNGなるほど。
流石に下位ビットを再利用したりはしないか…。
0919デフォルトの名無しさん
NGNGメモリリークを小一時間調べて見ろ。
結論から言うと配列だけしか使用しない場合、メモリリークは発生しない。
更に言うとまともなOSならばプログラム終了時にアプリが確保したメモリは
全て解放される。
0920デフォルトの名無しさん
NGNG↓
0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNGそんなマクロは標準では定義されていませんよね?
0925デフォルトの名無しさん
NGNG環境依存しない方法では無理です。
0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNG何故型の大きさがプリプロセッサの段階で必要?
私は大抵の場合、sizeof演算子で済ませちゃってるけど。
#稀に(>>926の指摘の通りlimits.hをincludeして)INT_MAXを参照するくらい。
0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNGint型が4バイトでない場合はコンパイルさせたくないので・・・・
>>926-927
そういえばint型が4バイトならINT_MAXの値は常に一定になりますね。
言われるまで気づきませんでした。ありがとうございます^^
0930デフォルトの名無しさん
NGNGどういうプログラムをしているのか、参考までに教えてくれないか?
0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNG親の方は子が動いてる間、待機状態になるのであれば呼び出し方はこだわりません。
どなたか教えていただけますでしょうか。
0933デフォルトの名無しさん
NGNG環境依存しない方法では無理です。
unixなら、pipe(2) or popen(3)。
0934デフォルトの名無しさん
NGNGここで話されてることが理解できるようになるには
何時間くらい勉強すればよろしいでしょうか?
1日1時間として1年じゃ話になりませんか?
0935デフォルトの名無しさん
NGNG悪いことは言わない。ここから立ち去りなさい。
そしてC言語なんてものには興味を持たないこと。いいね?
0936デフォルトの名無しさん
NGNG本人のやる気と才能しだい。
中学卒業程度の数学の知識の持ち主が、高校2年生レベルの数学がわかるようになるって程度。
0937デフォルトの名無しさん
NGNGおれは会社に入って1年間くらい休みなし、
毎日残業10時間とかいう状況で無理やりCを覚えた(w
デスマーチっつうか人手がたりなかったんよ…。
おかげで1ヶ月前に書いた自分のコードが幼稚に見えて仕方がないという
状態が1年も続いた。つい直しちゃったりしてな(w
一年後にはオブジェクト指向の真似事をやってみたり、
MS-DOSでタイマ割り込み使ったプリエンプティブっぽいスレッドライブラリ
作ってアプリの性能上げたりとかやってたぞ。
じじいの昔話さ(w
0938デフォルトの名無しさん
NGNG質問の答えにまったくなっていないどころか、ただの自慢ときたもんだ。
能力もたかがしれてるな。
0939デフォルトの名無しさん
NGNG命が惜しかったらぐっとこらえとけ。
0940デフォルトの名無しさん
NGNG次のソースで、func()を使って、a=bになるようにしたいのですが
func()をどのように書けばいいのか分かりません
教えて下さい!
void func(int *t,int w){
//ここが分からない
}
void main(){
int a=0,b=1;
func(&a,b);
}
0941デフォルトの名無しさん
NGNG*t=w;
}
ポインタと、ポインタによる関数間での値の受け渡しを復習しておけ。
0942デフォルトの名無しさん
NGNGint main() { int a = 0, b = 1; func(&a, &b); }
0943デフォルトの名無しさん
NGNG0944デフォルトの名無しさん
NGNG=
w;;
0945デフォルトの名無しさん
NGNG0946940
NGNG0947デフォルトの名無しさん
NGNGそれなら、7行スレにあったよ。
0948デフォルトの名無しさん
NGNG(・∀・)イイ!!
0949デフォルトの名無しさん
NGNGログ吐ける関数用意したんで適当に埋め込んでくれ、って頼まれたんだが、関数名が判るようにしてね!って言われたんです。
メッセージに関数名コピペするっての芸が無いなぁ、と思いつつ。
なんかうまい方法ありませんか?
0950デフォルトの名無しさん
NGNG標準ではうまい方法は無い。
せいぜい __FILE__ マクロと __LINE__ マクロを使うぐらいだ。
コンパイラによっては __FUNCTION_ マクロを用意しているものもある。
0951949
NGNGども。そうですか。VC++6ですが __FUNCTION_ は無さそうでしたので、これは手作業でいきます。
ところでマクロってのも苦手なんですが、展開を2度行わせるような方法が判りません。
例えば PutLog(LPCSTR lpmsg) が用意されてて
#define PUTLOG() PutLog(__FILE__)
ってのはダメで、どうしても埋め込み箇所でPUTLOG(__FILE__)
って書かなきゃいけませんかね?
まぁ仕事なんで時間費やしても構わないんですけど、余興って事でお願いします。
0952デフォルトの名無しさん
NGNGマクロは基本的にそれが書かれた時点で展開されるから、あなたの思っている
ような使い方はできない。
どうしても自動化と言うなら、__FUNCTION__ を展開するプログラムを自分で
書いて、プリプロセッサとして起動する。
・・・そんなツールどっかに落ちてないかな?
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNGありがとうございます。
何時間か探してみたんですが、system()コマンドで"appli.exe 2> stderr.txt"のように叩いてstderrをファイルへリダイレクトしてそれを読み込む、という方法で無理矢理解決しました。
0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNGchar c = 'A';
/* あのぅ、'A'ってint型ですか? char型ですか? */
0957デフォルトの名無しさん
NGNGCではintです。
0958デフォルトの名無しさん
NGNG0x6162だったり0x6261だったりすることだね。
0959デフォルトの名無しさん
NGNGCでつくられたアプリってどんなものがあるの?
趣味で作るアプリならVBで充分だと思うのですが?
0960デフォルトの名無しさん
NGNGint size;
{
static char buf[size];
return 0;
}
↑C99では、こんなことが出来るって本当なの!?
なんかキモイよ…
0961デフォルトの名無しさん
NGNG>殆どのアプリはVBで作られていると思うのですが
藁
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG誰にそんな嘘教えられたのですか?
0964デフォルトの名無しさん
NGNGC99では配列のサイズに変数が使えるようになったらしいが、
これはどうなんだろな。
別にこんなのmallocすりゃ済むのにな。
何の為の仕様変更なんだろな。
0965デフォルトの名無しさん
NGNGアプリはVBで作られていないの?
ゲーはC++だと思いますが。
0966デフォルトの名無しさん
NGNGmallocしないで済むための仕様変更に決まってるだろ。
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNGそれはスタック変数になるの?
もしそうだとしたら
「定数 + sp」
で参照出来なくならない?
どうやってるの? ヒープ?
0969デフォルトの名無しさん
NGNG定数+spというのがよくわからないのですが
今試してみたらespからサイズ分引いて
スタックに確保しているように思いますよ。
ただサイズ分ちょうどではなくて変な計算してるようですけど。
0970デフォルトの名無しさん
NGNGアプリもVC++やDelphi多くない?まあ、殆どVBって事は無い。
0971デフォルトの名無しさん
NGNGC99 のこと言ってんのに引数宣言が K&R かよ...。(これで満足 ? >>967)
それはさておき、自動変数の動的配列は10年ぐらい前から GCC は拡張機能としてサポートしていたよ。
>>964
free() を忘れて、メモリーリークしまくる奴の救済と、プログラムの終了時に free() するかしないかで戦争になるのを避けるため。
>>968
> それはスタック変数になるの?
スタック変数 ? スタックに割り当てられるのかと言うことか ?
当然実装依存だよ。(スタックのないマシンもあるからね。)
> 「定数 + sp」
[変数 + SP] で参照すりゃいい。
もちろん実装依存だが、固定領域を先に確保して、可変部を後に確保すれば、固定領域は従来通り [定数 + SP] で参照できる。
なお、普通の C でも処理系によっては、同様の効果のある alloca() をサポートしているものもある。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/alloca.3.html
0972デフォルトの名無しさん
NGNGごめん、960は、
「static」の部分…
0973デフォルトの名無しさん
NGNGありゃ...、見落としてました。
0974デフォルトの名無しさん
NGNG統計の取り方にもよると思うが、プログラマーのうち約半数はVisualBasicということらしい。
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNGgccはalloca()で確保していたと思った。
>>974
私はプログラマだけどVisualBasicじゃないよ。
たまには使うけど。
0977デフォルトの名無しさん
NGNG> プログラマーのうち約半数はVisualBasicということらしい。
約半数は、VB を使う ≠ 約半数は VB しか使わない
一つの言語しか使わないプログラマってあんまりいないから、これをもって「プログラマーのうち約半数はVisualBasicということ」と主張するのは「私プログラマに向いてません」と言ってるようなもんだぞ。
0978デフォルトの名無しさん
NGNGC言語なら、俺に聞け! <50>
http://pc2.2ch.net/test/read.cgi/tech/1044938752/
0979デフォルトの名無しさん
NGNGWindowsでしか動かないVB製アプリがほとんどを占めているなんて考えられない。
0980デフォルトの名無しさん
NGNGなんせボタンをポチポチ貼りつける感覚でプログラムが出来るんだもん。
でも、次第に不満な点が出てきてあまり使わなくなった。
0981デフォルトの名無しさん
NGNGJavaとANSI C完全準拠+Qtでどこまで戦えますか?
0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNG確かVC++でもローカル変数がデカい時は似たようなもんだったよ。
スタックフレーム作るときにページ境界飛び越すとGPFな可能性あるから。
0984デフォルトの名無しさん
NGNG2000*2000以上の再帰の為にスタックを50MB位にしたりしてたよ。
今はもう意味ないけどね…
0985デフォルトの名無しさん
NGNG内蔵のalloca()に置き換わって(古いgccだと確か__builtin_alloca()だったかなんだったか)
最終的にただのスタック操作としてアセンブリコードが出力されると思う。
レス数が950を超えています。1000を超えると書き込みができなくなります。