C言語なら俺に聞け! Part 94
レス数が1000を超えています。これ以上書き込みはできません。
0001v(^o^i)d●v(^o^i)d●v(^o^i)d
NGNG質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
各種リンク、関連スレは>>2-13あたり
C言語なら俺に聞け! Part 93
http://pc5.2ch.net/test/read.cgi/tech/1098007606/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0002デフォルトの名無しさん
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
Visual C++ Developer Center: Microsoft Visual C++ Toolkit 2003
http://msdn.microsoft.com/visualc/vctoolkit2003/
【ライセンスや機能などに問題あり】
Microsoft C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
Intel C++ Compiler for Linux
http://developer.intel.com/software/products/compilers/clin/noncom.htm
0003デフォルトの名無しさん
NGNGプログラム終了時にはfree()をちゃんとすること。
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGそんなネタはいらないんだよ
0006デフォルトの名無しさん
NGNG0007大原ゆき
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010大原ゆき
NGNGすっかり忘れてた
0011デフォルトの名無しさん
NGNGC言語の規格書からプログラム終了時にOS依存ではなく、
C言語として必ずメモリが解放されると記述している場所を示せ。
0012大原ゆき
NGNGC言語なら俺俺に聞け! Part 87
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
0013デフォルトの名無しさん
NGNGvoid free(void *ptr) { return; }
だったという話を風の噂に聞いたことある。真偽のほどは確かめていない。
0014デフォルトの名無しさん
NGNGOSの規格書からプログラム終了時にプログラム依存ではなく、
OSとして必ずメモリが解放されるとは限らないと記述している場所を示せ。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG開発元が作ってればあるんじゃない?w
手に入るかは別として
0018デフォルトの名無しさん
NGNGそんな莫迦な話が本当だとするなら、HP-UX (下らない伏字に何の意味が?) では
「終了しないプログラムで malloc してはいけない」という事になりますね。
0019デフォルトの名無しさん
NGNG> 意味なくない。常に free() を行うのが正統な C だ。
> まともなプログラマなら誰だって同意するだろう。
おまえぼけ。たとえばUnixのソースをみても終了時のfreeはしないのがあたりまえ。
伝統的にも正統かどうかをみても「しない」のが常識。
0020デフォルトの名無しさん
NGNG> > 当のfreeが void free(void *ptr) { return; }
> > と定義されてるのもあるという話、聞いたことアルヨ。
> >>993
> 標準Cの話してるのに、なんでそんな話になるんだ?
標準の話だというなら、それこそ「終了時もfreeしないといけない」環境なんてのを
もちだすのがぼけ
0021デフォルトの名無しさん
NGNG規定してないみたいだよ。
ttp://www2s.biglobe.ne.jp/~hig/q_a/Programing_QA03.html#Q2
0022デフォルトの名無しさん
NGNGいいじゃん、別にどっちでも。
まともじゃないOSを相手にする時だけに気をつければ。
free不要論みたいなバカ論ならともかく、議論する内情じゃないよ。
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG○内容
0025デフォルトの名無しさん
NGNGその程度のことなんじゃないのか?
シルバーシートで席譲るみたいな、マナーっつうか。
0026デフォルトの名無しさん
NGNGC言語なら俺俺に聞け! Part 87
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
0027デフォルトの名無しさん
NGNG終了しないプログラムでmallocしなければ
メモリリークしない、ということは少なくとも真理です。
0028デフォルトの名無しさん
NGNGつまり、プログラムの終了時にメモリが必ず解放されるとは
書いていないということですね。
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG未定義なのだからより安全なほうを選ぶのが
常識でありマナーというものでしょう。
0031デフォルトの名無しさん
NGNG> いいじゃん、別にどっちでも。
あ、つごう悪くなってきたのでごまかしモードだな? ;-)
0032デフォルトの名無しさん
NGNG> 書いていないということですね。
そもそもmallocしたらメモリーがかならず確保されるとも書いてないぞ?
0033デフォルトの名無しさん
NGNGじゃあ終了時はしないのね。
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNGCTRL-Cシグナルなんてものは、そもそもC言語の範囲外です。
C言語の範囲外は範囲外。C言語の範囲内はC言語でやりましょう。
もちろんmalloc、freeはC言語の範囲内なのでC言語でね。
0037デフォルトの名無しさん
NGNGどうせ他のリソースも解放しないといけないんだから、ついでにfreeしとけ。
0038デフォルトの名無しさん
NGNG大抵しないけど、自己満足的にするときもある。
気分によりけり。
0039デフォルトの名無しさん
NGNG歴史学的見地をしりたいな。
0040デフォルトの名無しさん
NGNGFooStruct * initFoo(void)
{
static FooStruct * sFoo;
if (sFoo == NULL) {
sFoo = malloc(sizeof(FooStruct));
}
setSomeFoo(sFoo);
return sFoo;
}
当然、free()してない。
或いはこういうコードも。
FooStruct * allocFoo(unsigned cnt)
{
static FooStruct * sFoo;
if (sFoo) {
free(sFoo);
}
sFoo = malloc(sizeof(FooStruct) * cnt);
setSomeFoos(sFoo, cnt);
return sFoo;
}
やはり、最後はfree()してない。
0041デフォルトの名無しさん
NGNGVBで書くときはかなり几帳面にset obj = nothingして終了している。
そんな自分がよく分からない。。。
0042デフォルトの名無しさん
NGNG私ならsFooを関数外に出して、if (sFoo) free(sFoo)する関数をinitFoo()でatexit()に登録するなぁ。
0043デフォルトの名無しさん
NGNGここは初心者の集まりかよ。
0044デフォルトの名無しさん
NGNGfree() する必要などこれっぽっちもない。
そもそも、標準 C の範疇を越えている以上、スレ違い。
0045デフォルトの名無しさん
NGNG変なのが前スレから粘着しているんだ。
スルーお願いします。
0046デフォルトの名無しさん
NGNGもともとCについてぐだぐだ語るスレだ。
気にするな。
0047デフォルトの名無しさん
NGNGあんなプログラマとして終わっちゃった人の相手してどうすんのよ。
おれの中では石田晴久並に過去の人。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGじゃあその場合はメモリーリークしちゃってもいいと?
0050デフォルトの名無しさん
NGNGリッチーもトンプソンも終了時にはfreeしてない。Unixのソースみてみろ ぼけ
0051デフォルトの名無しさん
NGNGっていうか石田晴久がCの本訳すより前からめだってただろ彼
0052デフォルトの名無しさん
NGNGかれの本にはfreeするなとでも書いてあるのか?
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGオレはいかなる時でもfree書いているぜ
という人はいるのか?
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNGべつにー、過去にどうだったか関係なく、過去の人。
0058デフォルトの名無しさん
NGNGだーかーらー Unixの/binや/usr/bin の下にあるこまんとも彼らがかいたのは多いのよ?
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG自分達でカーネルソースまで管理できるシステムだからこそできることだね。
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG気にするなよ
0065デフォルトの名無しさん
NGNGこわくねーだろ?
0066デフォルトの名無しさん
NGNG興味深い。
0067デフォルトの名無しさん
NGNG0068rubykitch!!!!!!!
NGNGおなじみ、エキサイトhttp://www.excite.co.jp/world/english/で
「shit」と入力し和訳にかけてみてください。恐らく予想通りの結果が得られます。
それでは次に「shit!」とエクスクラメーションマークを一つ足してください。
予想もしなかった大変な事態になるはずです。
が、それは気にせずにエクスクラメーションマークを足していきましょう。
4つ目で少し不思議なことになりますが。
無事5つ目までつけ終えれば今回の実験は終了です。
.
0069デフォルトの名無しさん
NGNGだよね。
0070デフォルトの名無しさん
NGNG>>44
0071初心者
NGNG変わるものを作りたいのですが、下の条件で
引数1で、弱く押せば a 強く押せば b を表示させたい時にはどうしたらいいんですか?
(1) void DisplayLetter(int LetterNum)
機能: 指定された文字を表示する(注、ここでは a=10 b=20ということにしてください)
(4) int SensePressure(int ButtonNum)
機能: 指定された番号のボタンに関して、押されたときの強さを調べる。
引数: 0 〜 12の整数が許される。番号に対応したボタンの状況を調べる。番号とボタンの関係は表3の通りである。
戻り値:弱く押されたときはWEAK(1)、強く押されたときはSTRONG(2)、指定されたボタンが押されていないときはERROR(0)。
数に範囲外の値が指定された場合にも、ERROR(0)。
0072デフォルトの名無しさん
NGNG何で気にするの?
0073デフォルトの名無しさん
NGNG宿題かなあ。問題がごちゃごちゃしててよくわからんよ。
とりあえず、DisplayLetterとSensePressureが与えられてて、
それを使ったコードを書けということかな。
こんな感じかな。
void foo(int ButtonNum)
{
int pressure = SensePressure(ButtonNum);
switch (pressure) {
WEAK:
DisplayLetter(10);
break;
STRONG:
DisplayLetter(20);
break;
default:
/* なにもしない */
break;
}
}
でもなんか問題の解釈を間違ってるような気がする…
0074初心者
NGNG参考になりましたありがとうございます。
ちなみにこれ今やってる大学入試問題です。携帯電話の英文入力インターフェースを作ってるんですが
理解に苦しんです。カンニングにならないのか?という意見もでそうですが
情報収集能力もテストのいっかんですので大丈夫ぽいです。
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNG質問させて頂いてよろしいでしょうか。
#include <stdio.h>
void main()
{
int A=1,B=2,C=3;int big1=0,big2=0;
if(A>big1>big2){big1=A;}//1>0>0
if(B>big1>big2){big1=B;}//2>1>0
if(C>big1>big2){big1=C;}//3>2>0
//big1=3 big2=0
if(big1>A>big2){big2=A;}//3>1>0 big2=1
if(big1>B>big2){big2=B;}//3>2>1 big2=2
if(big1>C>big2){big2=C;}//3>3>2 big2=2
printf("一番大きい数:%d 二番目に大きい数:%d",big1,big2);
}
この文はA、B、Cの内から一番大きい数と二番目に大きい数をプログラムが
判断して結果を出力するというプログラムです。
本来なら実行結果は(一番大きい数:3 二番目に大きい数:2)となるはずなのに
borlandやvisualC++コンパイラでは(一番大きい数:3 二番目に大きい数:1)と
出力します。これは私の書いたプログラムが悪いのでしょうか。
それとももしかして考えたくはありませんがCのバグなのでしょうか。
真剣に悩んでます。ご指南よろしくお願い致します。
0077デフォルトの名無しさん
NGNGお前が悪い
コンパイラのせいにするな
0078デフォルトの名無しさん
NGNGA > big1 > big2 とは書けない
A > big1 && big1 > big2 と書かないといけない
以下同
0079デフォルトの名無しさん
NGNG>>78あ、そうだったんですか。今まで知りませんでした。
こんなくだらない質問にお答えくださって本当に感謝します。
ありがとうございました。
0080デフォルトの名無しさん
NGNGように分割してくれる関数は、どんなものがありますか?
0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGありがとうございます。m(_ _)m
0083デフォルトの名無しさん
NGNGcc -g test.o -o test
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:77: undefined reference to `main'
collect2: ld はステータス 1 で終了しました
make: *** [test] エラー 1
どなたかご教授お願いいたします。
0084デフォルトの名無しさん
NGNGmainが無い
0085デフォルトの名無しさん
NGNG最低限 main() が必要だって理解できてなくて、
自分がコンパイルではなくリンクしていることも解ってなくて、
エラーメッセージの英文も読めなくて、
トドメに日本語まで間違うって…
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNG例えば、
char s[ 128 ];
int n;
scanf( ???, s, &n );
で
PM:7
と入力したとき、s に"PM", n に 7 が入るようにしたいんですが…
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG"%[^:]:%d"
0090デフォルトの名無しさん
NGNG関数からで.midiの再生って可能ですか?
.wavの再生にはPlaySound関数を使ってるのですがwavはファイルサイズ
が大きすぎて人に渡すプログラムを作るときに困ってしまいます。
もし再生する方法をどなたかご存じでしたらお願いします。
0091デフォルトの名無しさん
NGNGスレ違い。環境に見合ったスレへどうぞ。
まぁ、この辺だろうな。
http://pc5.2ch.net/test/read.cgi/tech/1097880265/
http://pc5.2ch.net/test/read.cgi/tech/1099190154/
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
http://pc5.2ch.net/test/read.cgi/tech/1090324689/
http://pc5.2ch.net/test/read.cgi/tech/1065535118/
0092デフォルトの名無しさん
NGNGwindowsサウンドプログラミングという書籍を買ってください。
そして、PlaySoundはC言語の既存の関数ではありません。
MidiはPlaySoundのようにファイル名を指定しただけで再生する
Win32APIはありません。
009390
NGNGとりあえずサンクス
0094デフォルトの名無しさん
NGNG何とかとか長く書くような真似をしないと駄目なんですね・・。
今度書店で見つけたら買ってみます。ありがとうございました。
0095デフォルトの名無しさん
NGNG何故ファイルが開けなかったか知るにはどうしたらいいですか?
0096デフォルトの名無しさん
NGNGerrnoがあるだろ
0097るby!!!!!!!!!!!!!!!
NGNG0098デフォルトの名無しさん
NGNGバッファーオーバーランする罠
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGサウンドプログラミング2
http://pc5.2ch.net/test/read.cgi/tech/1091054082/l50
0101デフォルトの名無しさん
NGNGそのスレは94の質問内容のようなスレではない
0102デフォルトの名無しさん
NGNGありがとうございます
しかし二回以上連続で scanf した時に、s の先頭に改行が入ってしまうのですが…
これは未定義ながら fflush( stdin ) するしかないのでしょうか…?
0103102
NGNG"%[^:]:%lu%*c"
として最後の改行を読み飛ばすようにしたらうまくいきました。
ありがとうございました
0104デフォルトの名無しさん
NGNGそうまでして scanf() 系を使わないといけない理由が知りたい。
0105デフォルトの名無しさん
NGNGVisualC++プロジェクト→.NET→コンソールアプリケーション
で下記を作成し、ウォッチで"tmp->c"を参照しても、2次元配列
の中身が参照できません。
#include "stdafx.h"
#using <mscorlib.dll>
using namespace System;
typedef struct{
int a;
int b;
int c[5][2];
}AAA;
AAA aaa;
int _tmain()
{
AAA *tmp;
tmp = &aaa;
return 0;
}
VisualC++プロジェクト→Win32→Win32コンソールプロジェクト
で作成すると、参照できるのですが、.NETの方で参照できる
方法はあれば、教えて下さい。
0106デフォルトの名無しさん
NGNG故意犯?
>>1
>まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
こっち池
★初心者にVisual C++を教えるスレ★ Part15
http://pc5.2ch.net/test/read.cgi/tech/1097880265/
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGコンソールアプリならこっち
迷惑だからVC++スレには絶対来るな
【初心者歓迎】C/C++室 Ver.11【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1099190154/l50
0110いなむらきよし
NGNG0111デフォルトの名無しさん
NGNG{
char c = 'a';
return &c;
}
0112デフォルトの名無しさん
NGNGCString *s[] = new CString[10];
delete[] s; // 質問:どうして delete s; では駄目なの?
0113デフォルトの名無しさん
NGNGCとC++の区別がつくようになってから来い
0114デフォルトの名無しさん
NGNGEffectiveC++ P.44参照
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG↑を読んだ時の疑問なんですが、
i = 3;
i = i++;
この場合、
2行目の代入と増分の副作用完了点の順序が処理系依存になるので
最終的なiの値も処理系依存になるのは分かるんですけど、
i = 3;
i = ++i;
の場合がよく分かりません。
iの値の参照前に増分するので最終的なiは4でいいのかと思ったんですけど、
これも処理系依存になると上記の本では解説されてました。
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG誤りですね。i = ++i; は大丈夫です。
0119デフォルトの名無しさん
NGNGなんでいつも適当な確保なのですか?
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0122大原ゆき ◆6iqfpMYUkI
NGNG貴方の質問から何を聞きたいのかを想像して答えますが、
例えば、cが入力用のバッファとして使われる場合、人が何文字入力するか、
なんていうことは予め判りませんよね。
だから、とりあえず入力される数としてあり得る範囲を確保し、
それ以上の要素を入力しても、配列に納める分以上は納めないようにする処理
を書いてあげないといけません。
例えば、フーリェ変換用のバッファとして使う場合などの特定用途では確保する
要素数は初めから判っているので、プログラム中で使われる配列の要素数が最小
になるように勤めるとより良いです。
0123デフォルトの名無しさん
NGNGそうです。
0124デフォルトの名無しさん
NGNG128には意味があります。
0125デフォルトの名無しさん
NGNGどうもありがとうございます。あまり確保しすぎてもいけないと
も聞いたのですですが、どのぐらいまでなら確保してもよいのですか?
0127デフォルトの名無しさん
NGNG例えばこんな感じで
×#define 1 A
○enum { A = 1 };
0129デフォルトの名無しさん
NGNG問題があるのは、あなた使い方の方です
0130デフォルトの名無しさん
NGNG0131127
NGNG+ #define A 1
お恥ずかしい…
0133大原ゆき ◆6iqfpMYUkI
NGNGdefineはエラーがあってもコンパイル時にエラーとして検出できませんし、
フラグの値を設定したいときのような場合、値の数が極端に多いと、
ユニークな数を果して割り当てられたかどうかを確かめるのは困難です。
例えば、
#define PI 3.44
という定義があったとして、これを使ったコードにエラーがあったとき、
エラーメッセージにPIという文字は見ることができません。
3.44という良く解からない数字として表れるのです。
書いた人はたぶんπのつもりだったのでしょうが、あいにくπは3.14…です。
0134デフォルトの名無しさん
NGNG毎回毎回長文&駄文はネタなの
0135大原ゆき ◆6iqfpMYUkI
NGNG一般的にC++ではdefineはなるべく使うべきではありません。
幸運な事に、代わりに使える機能がいくつか用意されました。
Cでdefineとして書いていたものはtemplate、inline関数、const定数
として置き換え可能です。
enumはユニークな数を割り振りたいときや、const定数をクラス内部で初期値設定
できない時などに使うと良いでしょう。
定数を宣言するときは大抵const定数で良いでしょうね。
0136デフォルトの名無しさん
NGNGということは友人の主張は正しかったんですね。
分かりやすい説明ありがとうございました
0137デフォルトの名無しさん
NGNG#define と enum 比較するのに実数持ち出したり
C スレでいきなり C++ の話を始めたりするんだから
ネタでなけりゃ頭の不自由な人でしょ。
0138デフォルトの名無しさん
NGNG人間の遺伝子的には127歳まで生きるようにできてるんだよね。
仕様では。
0139大原ゆき ◆6iqfpMYUkI
NGNG>>133ではenumという言葉は一切使わず、>>135の最後でenumを持ち出しています。
>>127への返答としては少し不備があった事は確かだと思います。
>>136に誤解が無いように追記しますが、enumは整数しか扱うことができません。
0140デフォルトの名無しさん
NGNGいいえ3です。
0141デフォルトの名無しさん
NGNGsizeofは使えないんですか?
0142デフォルトの名無しさん
NGNGenumもたいがいのコンパイラーでエラーや警告でませんよ。
enumで定義した値以外を代入したり、
ちがうenumで定義した値を代入してもエラーや警告でない(gccあたりでためしてみて!)
そうするとdefineとたいしてちがいないのよね。
せいぜい(重複した値がないようにできるぐらいの利点しかない。
0143デフォルトの名無しさん
NGNGCだからこそ、私はこんな感じで。
typedef enum {Foo1st, Foo2nd, Foo3rd, NofFoo} Foo_t;
for (i = 0; i < NofFoo; ++i) ;
0144デフォルトの名無しさん
NGNGなんかそれっていやですよね。
0145デフォルトの名無しさん
NGNG他人の書いたインクルードファイルでシンボルが衝突した場合に発見が早い。
#まさか/usr/includeの下のインクルードファイルで名前が競合するとは思わなかったぞ。>Sun
0146デフォルトの名無しさん
NGNGそれをまったく関連性のない、かつ限定的な話のフーリエ変換持ってきたりして、意味不明
enumとdefineの話だって #define PI 3.44と記述ミスしてる時点で、
enumにしようが数値の記述ミスしたら計算結果は変わる
結局、どれも問いに対する答えになってないんだよね
0147デフォルトの名無しさん
NGNGそれじゃいつまでたってもだめだよ。勉強法を変えろ!」と言われました。まぁ図星だったんですが、
C言語の勉強法ってなんですか?意味がわかりません。
あと、おすすめのC言語の参考書を教えて下さい。
0148Rubykitch
NGNG0149デフォルトの名無しさん
NGNGふふふふーーーーぶるるるるるーーーーーー
おっぱい
0150デフォルトの名無しさん
NGNG漏れは大学にはいってからプログラミング勉強しはじめたけど、
95点未満はとったことないな。
> C言語の勉強法ってなんですか?意味がわかりません。
とりあえずソースコードを打ちまくったらどうだろう?
漏れははじめのころはそんな感じだった。
たくさん打ち込んでいくうちのソースの内容が分かるようになっていった。
> あと、おすすめのC言語の参考書を教えて下さい。
んなもん人にきくものでは無いと思う。
実際に読んでみて自分に合う物を使えばいいわけだし。
本に頼らずともプログラミング入門系のWebページも数多くあるし。
漏れはC言語に関しては大学で教科書に使った本とWebだけかなぁ。
0151デフォルトの名無しさん
NGNGenum { A, B, C /* ... */,\
X, Y, Z };
って \ を行末に付けなきゃダメですか?
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG日下部先生の「作ってわかるCプログラミング」がいいよん。
> 漏れは大学にはいってからプログラミング勉強しはじめたけど
大学でプログラムつくりかたおしえるようなところはかなりダメ。
講義ではもっとメタな概念を教え、プログラミングは自分で勝手に覚えるのが大学生。
そんな技巧を直接教えるのは専門学校や工業高校の仕事だ。
0154デフォルトの名無しさん
NGNGだめかどうかはやってみれば分かるだろ。
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNGenum Days// enum による Days 型定義
{
saturday,// デフォルトで saturday = 0
sunday = 0, // 同様に sunday = 0
monday, // monday = 1
tuesday, // tuesday = 2
wednesday, // etc.
thursday,
friday
} today; // today 変数は Days 型
0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNGWinのコードの一部だね
0160デフォルトの名無しさん
NGNGdimanche,
lundi,
mardi,
mercredi,
jeudi,
vendredi,
samedi};
0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG{
domingo, //ドミンゴ
lunes, //ルネス
martes, //マルテス
miercoles, //ミエルコレス
jueves, //フエベス
viernes, //ビエルネス
sabado, //サバド
};
0164デフォルトの名無しさん
NGNGDays型ではなくenum Days型
0165デフォルトの名無しさん
NGNG#define NUMBER 9
int main(void)
{
int i,j,k,l;
double a[][NUMBER+1]={
{5, 1, 3, 4, 0, 0, 0, 0, 0, 0},{1, 6,-5, 8,-2, 0, 0, 0, 0, 0},{3,-5, 2, 4, 6, 8, 0 ,0, 0, 0},{4, 8, 4,-4, 5, 1, 3, 0, 0, 0},{0,-2, 6, 5, 8, 3, 9, 5, 0, 0},{0, 0, 8, 1, 3, 3, 6,-6, 1, 0},
{0, 0, 0, 3, 9, 6, 9, 0, 5, 2},{0, 0, 0, 0, 5,-6, 0,-5, 4,-7},{0, 0, 0, 0, 0, 1, 5, 4, 4, 7},{0, 0, 0, 0, 0, 0, 2,-7, 7,-2},
};
double f[]={5,9,4,-2,8,6,7,3,-12};
double u[NUMBER+1]={0};
/*前進消去*/
for(i=0;i<=NUMBER-1;i++){
for (j=i+1;j<=NUMBER;j++){
f[j]-=(a[j][i]/a[i][i])*f[i];
for(k=1;k<=NUMBER;k++){
a[j][k]-=(a[j][i]/a[i][i])*a[i][k];
}
}
}
u[NUMBER]=f[NUMBER]/a[NUMBER][NUMBER];
/*後退代入*/
for(l=NUMBER-1;l>=0;l--){
for(j=l+1;j<=NUMBER;j++){
f[l]-=a[l][j]*f[j];
}
u[l]=f[l]/a[l][l];
}
for(i=0;i<NUMBER;i++){
printf("u[%2d] = %.2E \n",i+1,u[i]);
}
return(0);}
0166165
NGNGもしよかったらドコがいけないのか教えてください
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG>double f[]={5,9,4,-2,8,6,7,3,-12};
9個しかない。
0169デフォルトの名無しさん
NGNGありがとう
それでも答えがおかしいです・・・
0170デフォルトの名無しさん
NGNG問題のある場所がわからないのであれば一行一行数値を調べりゃ済むだろ?
ましてやこんな小規模なプログラム、大して労力も掛からんだろうに
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNG配列の添え字のつけ方を理解していない問題と、
Gaussの消去法の方法そのものを理解していない
問題の2つの問題があるのでがんばってください。
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNGAAAA[BBBB]\t............\n
AAAA[BBBB]\t............\n
AAAA[BBBB]\t............\n
....
AAAA はSJISの半角、全角の入り混じった文字列
[ はUnicode
BBBB もAAAAと同様です
.....は今回の処理では不要な部分です
これを一行ずつ読み込んでAAAAの部分だけ抜き出したいのですが
Unicodeの「[」の文字コードが0x005Bで、
例えばSJISの「ー」なんかは0x815Bなので、行のはじめから1文字ずつチェックしていくと
「ー」の後半部分を「[」と判定してしまって「AAーA」という文字列を「AA・」と抜き出してしまいます。
2byte文字の後半部分が5Bというものが他にもあるのでif文で除外するのも手間がかかります。
なにか良い判定方法はないでしょうか?
これでは失敗する例
if(strncmp(wtemp,"[",1 )==0 ){ ]
図示するとこんな感じ
AAーA[BBBB]
↑
wtemp
wtemp は char line[256]へのポインタ
line[256]にはテキストファイルの一行が読み込まれます
0175デフォルトの名無しさん
NGNG先頭から(1バイト目か2バイト目かを意識しつつ)一文字ずつ処理する。
0176デフォルトの名無しさん
NGNGmain の第二引数がchar*argv[]でいちいち変換しないといけません。
wchar_t を受け取れる wmain って標準にあるんでしょうか?
MSDN を見る限り MS の独自拡張っぽくて・・・。
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG全部変換することにします。
0180デフォルトの名無しさん
NGNGadimに問題があるようですが、原因がわかりません。原因は何でしょうか?
#include <stdio.h>
#include <stdlib.h>
int nm = 6;
void fnc(double **adim, double *bdim)
{
int i;
for(i=0; i<nm; ++i) {bdim[i] = 0;adim[i][i] = 0;}/* fnc-1 */
for(i=0; i<nm; ++i) {bdim[i] = 0;adim[i][i] = 0;}/* fnc-2 */
}
int main(void)
{
double **adim, *bdim;
int i;
bdim = (double *)malloc(sizeof(double *) * (nm));
adim = (double **)malloc(sizeof(double *) * (nm));
for(i=0; i<=nm; i++) {adim[i] = (double *)malloc(sizeof(double) * (nm));}
fnc(adim, bdim);
return 0;
}
0181デフォルトの名無しさん
NGNG寧ろ間違っているのはbdimの方。
sizeof(double) はsizeof(double *)よりも大きい実装なのだろう。
0182180
NGNG見落としていました。これで問題が解決できそうです。
ありがとうございます。
0183デフォルトの名無しさん
NGNG老婆心ながら付け加えるけど、adimを埋めるには二重ループが必要なのは判っているよね?
0184180
NGNGfor(i=0; i<nm; ++i) {for(j=0; j<nm; ++j) {
adim[i][j] = 0;
}}
ということですよね?こちらは大丈夫です。
いろいろありがとうございます。
0186デフォルトの名無しさん
NGNG1バイト処理するごとにカウントアップしていけばいいやん。
0187デフォルトの名無しさん
NGNGおまえらアフォか。
どう考えても「005B」の並びが現れるのは「[」のときだけだろ?
0188デフォルトの名無しさん
NGNG着目するバイトの一つ前のバイトが
・1バイト文字か2バイト文字の2バイト目ならばそのバイトは1バイト文字か2バイト文字の1バイト目。
・2バイト文字の1バイト目ならばそのバイトは恐らく2バイト文字の2バイト目。
0189デフォルトの名無しさん
NGNG二次元配列の構造体って
struct a{
…
}bc[x][y];
じゃできないんですけど、どうしたらいいですか?
0190デフォルトの名無しさん
NGNG今度はマルチかよ。
最低な奴だ。
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG一次元配列の構造体ならそういう風に作れるんですか?
0193デフォルトの名無しさん
NGNGできるよ
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNG>AAAA はSJISの半角、全角の入り混じった文字列
>[ はUnicode
なんつーバカなフォーマットなんだ、と思ったが
もしかして
AAAA\0[BBBB\0]\t............\n
なんじゃないの?
0196デフォルトの名無しさん
NGNGAAAA,BBBB を書き込むときに間違って後ろの\0 まで一緒に書き込んだのかw
0197デフォルトの名無しさん
NGNGAAAA\0[BBBB\0]\t............\0\n
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNGstruct a{
…
}bc[x];
二次元配列ならこれで、全体定義にならないんだよね。
C言語だよ
0200デフォルトの名無しさん
NGNG#include<string.h>
main()
{
char a[10],b[10];
char *p;
int i,j;
strcpy(a,"Program");
p=a;
for(i=0;*(p+i-1)='\0';i++){
for(j=9;j=0;j--){
b[j]=*(p+i);
}
}
b[10]='\0';
printf("%s\n",sakasama);
}
このプログラムを動かしても文字化けして読めないんですが何処が間違っているんでしょうか
aの文字列を一度ポインタに入れて、それを逆に読むようにしてbに入れるプログラムなんですが・・・
0201デフォルトの名無しさん
NGNG二重のforループで何がしたいのか分からない。
>for(i=0;*(p+i-1)='\0';i++){
一番最初のループで、*(p - 1)とアクセスすることになるけど、それは良いこと?
>b[10]='\0';
char b[10]と宣言しているのに、b[10]を書き換えても大丈夫?
それに、'\0'は文字列の終端を示すコードだけど、
配列の終端を示すコードじゃないよね?
0202デフォルトの名無しさん
NGNG…
}(*bc)[x];
0203デフォルトの名無しさん
NGNG#include<string.h>
main()
{
char a[10],b[10];
char *p;
int i;
strcpy(a,"Program");
p=a;
for(i=0;i<=9;i++){
b[9-i]=*(p+i);
}
printf("%s\n", b);
}
0204デフォルトの名無しさん
NGNGb[10]云々は消したはずなのに、一部残ってたみたいです
最後のprintf〜の最後のsakasamaはbです
>201
ループにポインタ入れるとマズイですかね?
>203
それ試してみましたが何も表示されませんでした
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGよう,son of Bush,まだ見てるか?
漏れは main() 内で fnc() を呼び出す直前の,このクソも気になる。
> adim = (double **)malloc(sizeof(double *) * (nm));
> for(i=0; i<=nm; i++) {adim[i] = (double *)malloc(sizeof(double) * (nm));}
for の中で adim[nm] にもアクセスしようとしている。これはマズそうだ。
0208デフォルトの名無しさん
NGNGそれでもできない…。
0209174
NGNG元々がEUCのファイルだったのですが、windowsに移し変えたときにSJISに変換して処理していました。
なのでEUCにもどしてからAAAAをぬきだして、SJISにすることにしたら、とりあえずうまくいきました。
どのみち2byteに統一するフォーマットじゃないのはバカだなといった感じですね。
ちなみに、これはお金を払って利用できるとある単語辞書です。
0210デフォルトの名無しさん
NGNG一応BCCも対応している。
>>185
http://homepage1.nifty.com/herumi/adv/adv40.html#003
>>200
#include <stdio.h>
#include<string.h>
main()
{
char a[10], b[10];
char *p;
int i, len;
strcpy(a, "Program");
len = strlen(a);
p = a;
for (i = 0; i < len; i++) {
b[len - i - 1] = p[i];
}
printf("%s\n", b);
}
0212デフォルトの名無しさん
NGNG元のフォーマットがバカなんじゃなくて
お前の変換がバカだったんじゃないのか?
0213デフォルトの名無しさん
NGNG後ろに変な文字が繋がってるんですけど
0214デフォルトの名無しさん
NGNG最後のprintfの前にb[len] = '\0';を書いてみろ。
0215174
NGNGフォーマットをあらかじめ2byteで統一する配慮と、
文字コードの変換の失敗は関係ないと思いますがどうなんでしょう。
ちなみにEUC→SJISはフリーソフトを使わせていただきました。
たびたび湧いてすいません、ななしにもどります。
0216デフォルトの名無しさん
NGNGそんなスレなかったっけ?参考書まとめサイトとか
0217デフォルトの名無しさん
NGNG0218http:// 210.222.18.163.80.kg/
NGNG0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNGそれを習得すれば道は開けるだろう。
0221デフォルトの名無しさん
NGNGきにしないでいーよ
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNGtypedef struct tag_foo {
struct tag_foo *prev;
struct FOO *next;
} FOO;
も
typedef struct {
struct tag_bar *prev;
struct BAR *next;
} BAR;
もエラーにならないんですが、このコンパイラーは壊れているのでしょうか?
文法的には正しい? C89の場合とC99の場合で教えてください。
あ、もちろん、
typedef struct {
struct tag_biz *prev;
BIZ *next;
} BIZ;
は、ちゃんとエラーになってくれます。
0224デフォルトの名無しさん
NGNG拠点を構え、業績急上昇中!未経験者大募集中!の
ソフトウェア開発会社
グリーンシステムを応援するHPです。
http://www.geocities.jp/grs_hp/
応援するスレはこちら!
http://school4.2ch.net/test/read.cgi/job/1077432387/
最高の会社にするため、みんな頑張ってます!
0225デフォルトの名無しさん
NGNGはい、両者共に文法的に正しいです。
0226デフォルトの名無しさん
NGNGstruct struct ...ってことだよね?
0227デフォルトの名無しさん
NGNGmain(void)
{
char s1[9], s2[9];
fgets(s1, sizeof s1, stdin);
fgets(s2, sizeof s2, stdin);
return 0;
}
これで 8byte 入力すると
2 回目の fgets() をスルーしちゃうんですけど
何故なんでしょう
9byte でスルーするなら
なんとなく分かるんですけど
0228デフォルトの名無しさん
NGNG>これで 8byte 入力すると
8byte = 改行を入れて 9byte 入れているつもりです
たとえば 10101010 とか
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNGstructのキーワードがついたポインタ型は、不完全型といって、
デリファレンスさえしなければどこでも使えます。
0232デフォルトの名無しさん
NGNGgets() と違うのか…
0233デフォルトの名無しさん
NGNG文字列の配列として char mona[20] = "abc def gh";があるとして
" "(つまり空白)ごとにそれぞれ別の空の3つの配列に入れなおしたいのですが、どのようにすればいいのでしょうか?
空白までの長さが常に一定なら楽ですが、例えば"giko u koko"のように色々な場合があるとします
自分の考えだと、for文を使って一つずつ配列を入れなおしていき、もし" "が出たら云々のようにしたいとは思ったのですが
未熟なプログラム技術ではうまくいきません・・・
どなたかアドバイスお願いします
0234デフォルトの名無しさん
NGNGint i;
char *giko[3];
size_t len = strlen(mona);
for (i = 0; i < sizeof(giko) / sizeof(*giko); ++i) {
giko[i] = malloc(len);
}
sscanf(mona, "%s%s%s", giko[0], giko[1], giko[2]);
for (i = 0; i < sizeof(giko) / sizeof(*giko); ++i) {
printf("%s\n", giko[i]);
free(giko[i]);
}
0235デフォルトの名無しさん
NGNGあ、ありがとうございます
実行したらできたけど、内容はいまいちわかってないので解読していこうと思います
0236デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
char mona[20] = "abc def gh";
char *monaWord;
monaWord = strtok(mona, " ");
puts(monaWord);
while (1) {
monaWord = strtok(NULL, " ");
if (monaWord == NULL) {
break;
} else {
puts(monaWord);
}
}
return 0;
}
こんなのでもどうでしょう?
なんかミスがあったら教えてください
0237デフォルトの名無しさん
NGNGちょっと題意がずれちゃってますが、「strtokはいかがですか?」ってのが言いたかったことなんで、
ご勘弁を(汗
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNGちゃんと man に、静的領域を使用する事が明記されてるんだから。
ある所には strtok_r だって有るし...
でもJM見てたら「絶対に使用しないこと」とか書いてるな。
0240デフォルトの名無しさん
NGNGJM がタコなんでしょう。
0241デフォルトの名無しさん
NGNG> デリファレンスさえしなければどこでも使えます。
いや、参照もしちゃってるんですよ。なぜエラーにならない?
0242デフォルトの名無しさん
NGNG構造体内に限らないが、
struct Unknown_Tag *hoge1;
struct Unknown_Tag hoge2;
前者はOK。後者はNG。
0243デフォルトの名無しさん
NGNGhoge1というメンバーに代入しているところでもエラーがでないことがどうしても理解できないのですが。
なぜでしょう?
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG一応書いておくと、静的領域に書き込もうとしているからダメダメ。
まさしく使い方が蛸。
0249デフォルトの名無しさん
NGNG0250コピペ推奨
NGNG┃┃ / ヽ ┃┃ もういくつ寝ると 出て行くの
┏┻┻ |======| ━━┻┻┓
┗┳┳ ヽ__ ¶_ ノ ━━┳┳┛ 朝鮮人は ウソついて
┃┃ (/) ┃┃
┃┃ (/) ┃┃ 日本に居座り たかります
凸┃┃ (/) ┃┃凸
Ш┃┃ (/) ┃┃Ш 早く出て行け 朝鮮人♪
.|| ┃┃ (/) ┃┃.||
∧_∧ (/) ∧_∧ ∧ ∧
( ・∀・) (/)(´∀` ) <゜Д゜ > 元歌:童謡「お正月」
(つ つミ (/)(⊃⊂ ) ⊂ ⊃
|_|_|_�I(/)_|_|_|__| |
/////ノ,,,,,,ヽ ////|| |〜
//////////// |∪∪
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 奉 納 |
0251コピペ推奨
NGNG特にヨーロッパ・アメリカ・オーストラリアなど先進国たちの一部ネチズンたちはチャット空間で韓国人だと明らかにすれば弾き出す
とか集団的に退場して捨てるなど韓国人に対して反感を持っていることで現われた.
バンクフェワンドルの海外ペンパル(http://www.prkorea.com/vankop10_5.html)と海外チャットサイト訪問経験(http://www.prkorea.com/vankop10_4.html)
を打ち明けた掲示板には外国ネチズンたちに ‘門前薄待’当ぎりネチズンたちの事情が並んでいる.
海外チャットを始めてからひと月頃なったと言うバンクフェワン精米領さんは
“韓国出身だと言えば有り難がらない場合が 70%ほどされた”と “その時ごとに気持ちが悪かった”と打ち明けた
0252デフォルトの名無しさん
NGNGnum = malloc(sizeof(int));
*num = 100;
のように動的なメモリ確保してそこへ値を代入したり
するときがあると思いますがどういったときに有効な手段
なのでしょうか?私は基本的にint iなどのような
使い方しかしたこと&その程度のプログラムしか打ったこと
がないのですが動的なメモリ確保+代入、参照はどういった
場面に有効で、どういった場面に不向きなのでしょうか?
よろしければご教授よろしくお願い致します。
0253デフォルトの名無しさん
NGNG最小単位の組み込み型 (char, int, floatなど)の
変数1つを動的確保するような状況はほとんど無い。
配列もしくは構造体/クラスなどの単位で
動的確保した時に有効な使い方が出来る。
詳細は↓に誰か書いてくれるでしょう^^
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG入力して二つずつ足した値をtxtファイルに出力するプログラム(ex 3.0 7.0 ・・・)を
作っているのですがうまくいきません。
ビルドまではうまくいきますが実行しようとするとアプリケーション
エラーが出てしまいます。いったいどこがおかしいのかご教授ください
環境はOS;Win2000SP4 VC++6.0でコンパイルしました。
以下にソースを示します
0256デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <string.h>
int main(int argc,char *argv[])
{
double in_buff;
double ta ;
double tb ;
char filename[255];
FILE *stream;
if(argc==1)
{
printf("設定ファイルが入力されていません\n");
return(1);
}
else
{
strcpy(filename,argv[1]);
}
if((stream = fopen("filename","r")) == NULL)
printf("%sを開けませんでした。\n",filename);
else
printf("%sを開きました\n",filename);
fscanf(stream, "%lf%lf", ta,tb);
in_buff = ta + tb;
fwrite(&in_buff, sizeof(int), 1, stream);
fclose(stream);
return 0;
}
0257デフォルトの名無しさん
NGNGソースを見ただけで実際に実行してはいないが、
怪しいところが2つ
・"%lf%lf"
・fwrite(&in_buff, sizeof(int), 1, stream);
読み込み・書き込みストリームが同じなのは
仕様ですか?
0258デフォルトの名無しさん
NGNG"r+"の間違い
0259デフォルトの名無しさん
NGNGfopen()の第一引数見てみ
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG本当にビルド出来たんだろうか?警告無視してっていう意味だろうか?
0264デフォルトの名無しさん
NGNG%lf%lfはあっている。
>>258
r+でもダメなものはダメ。
>>263
コンパイラによっては警告にはならないだろ。
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
void setData(int *p,int n);
main()
{
int *s;
int t,i;
printf("数値入力\n");
scanf("%d",&t);
setData(s,t);
for(i=0;i<t;i++)
printf("%d\t",*s++);
}
void setData(int *p,int n)
{
int i;
srand((unsigned) time(NULL));
for(i=n;i>=1;i--)
p[i]=rand()%100;
}
数値入力しただけの配列に0〜99の乱数セットする関数だけど・・・
強制終了してしまいまつint *s;を255個の配列にしたら別にOKなんでつ
ポインタ使った方法で強制終了しない方法を・・・
0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNGファイルで使いたいのですが、このアドレスを関数で取得するに
はどう書けばよいのでしょうか?とりあえずこうしてみたのですが
駄目でした。
char** getBuf(void)
{
return (char**)buf;
}
int main(void)
{
char **ptr;
ptr = getBuf();
ptr[3][100]=100;
}
0269デフォルトの名無しさん
NGNG#include
すれば普通に使えない?
0270デフォルトの名無しさん
NGNGえ、staticなので使えないですよね?ヘッダにbuf[4][128]を書くと
単にbuf配列が2つできるだけですし…
0271デフォルトの名無しさん
NGNGごめん見落としてました
>>268 で行けそうだけどなあ……
0272デフォルトの名無しさん
NGNG0273266
NGNG0274デフォルトの名無しさん
NGNGbufはstaticです。
>ローカルならポインタ返せばいいんじゃね?
それが>>268なのですが…
0275デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
void setData(int *p,int n);
main()
{
int *s;
int t,i;
printf("数値入力\n");
scanf("%d",&t);
s = (int *)malloc(sizeof(int) * t);
setData(s,t);
for(i=0;i<t;i++)
printf("%d\t",*s++);
return 0;
}
void setData(int *p,int n)
{
int i;
srand((unsigned) time(NULL));
for(i=0; i <= n; i ++)
p[i]=rand()%100;
}
どうだろ。
0276デフォルトの名無しさん
NGNG違反で落ちます。
開発自体はC++で行っているのが何か関係あるのかな…
0277デフォルトの名無しさん
NGNGあー配列の値書き換えたらダメでしょ
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNGなぜでしょう?配列を宣言しているソースの中では普通に
書き換えてますが…
0282デフォルトの名無しさん
NGNGはい、それが原因だと思うので、これを
char** getBuf(void)
どう書き直せばいいか教えてもらいたいのですが…
0283デフォルトの名無しさん
NGNGfor(i=0; i <= n; i ++)
0284266
NGNG感謝!できますた。
ちょっと質問でつが、やっぱりポインタ使う時はmallocつかってメモリ確保しなきゃだめでつか?
C言語初めて間もないのでして・・・いままでmalloc使ったこと無かった・・・ORZ
0285デフォルトの名無しさん
NGNGmallocっつーかアドレス確保しる。
0286275
NGNGじゃなくて
for(i=0; i < n; i ++)
こうか
0287デフォルトの名無しさん
NGNGchar (*getBuf(void))[128];
0288デフォルトの名無しさん
NGNGおえっ。変態!スケベ!エロッ!
0289デフォルトの名無しさん
NGNG>char* ptr; を char (*ptr)[128];に替えればいいだろ。
たぶん>>287さんも同じことを指摘してもらっていると思いますが
とりあえずこれで解決できそうです。有難うございました。
>static外せば?意味ないよ
文法の問題なのでCスレでよいと思って質問したのですが、実際
にはC++で開発してまして、static変数ではなくprivate変数なので
外せないのです。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG外から書き換えるっつうのは、法律的にも倫理的にも許される事なのか?
0293デフォルトの名無しさん
NGNGC++のスレのアドバイスはおかしい。
そのやり方だと
char[4][128]をchar **にキャストして
char **を char (*)[128] にキャストするんだぞ
型がわかってないやつがキャストしまくって
誤魔化す最悪のコード
>>291
設計がウンコーとしか言いようがないよね
0294デフォルトの名無しさん
NGNGマルチは申し訳ないです。
>スレ違いかよ・・・
一応、C/C++に共通する文法なのでスレ違いではないと
思ってますが…
>>293さん
良かったら正しいソースを書いて教えてもらえませんか?
0295デフォルトの名無しさん
NGNGそこで>>287みたいにすればキャストなしでできる。
0296デフォルトの名無しさん
NGNGprivate どころか static らしいよ。
>>293
ん?
char buf[4][128];
char (*getBuf(void))[128] {
return buf;
}
なら
char (*ptr)[128] = getBuf();
で問題ないわけだが。
0297デフォルトの名無しさん
NGNG>で問題ないわけだが。
はい、C++の方のアドバイスを元に今はそうしてます。これです。
char* getBuf(void){ return (char*)buf; };
char (*ptr)[128] = getBuf();
これなら正しいんですか?
>型がわかってないやつがキャストしまくって
>誤魔化す最悪のコード
これには当てはまって無いですか?
0298デフォルトの名無しさん
NGNGだからそれは正しくない。
>>296のchar (*getBuf(void))[128]が正しい。
0299デフォルトの名無しさん
NGNG了解です。C++の方でも同様の答えをいただきました。
これで完全に解決しました。マルチに最後にまで付き合って
もらってすみません。勉強になりました。
0300デフォルトの名無しさん
NGNGなんつうか…もうアレだ、解らないなら
typedef char STRBUF[128];
しとけ。
static STRBUF buf[4];
STRBUF *getBuf(void) {
return buf;
}
:
:
STRBUF *ptr = getBuf();
すっきりしたろ?
0301デフォルトの名無しさん
NGNGgettimeofday()等が見当たらないのですがそういう物なのでしょうか?
bcc32でミリ秒単位の時間を調べるには何を使用すれば良いのでしょうか?
0302デフォルトの名無しさん
NGNGtimeGetTimeかな
0303デフォルトの名無しさん
NGNGchar (*ptr)[128] = getBuf();
0304デフォルトの名無しさん
NGNG変数名 = 値
の形式でファイルに出力しているものがありますが
fscafでファイルからデータを読み込んだ時
変数名の部分を文字列として変数にいれて
その文字列の名前の変数に値を代入する
なんてことができるのでしょうか?
それとも変数名を出力しているのは判り易いようにしているだけで
for分の中にswitchいれて順番に値を入れてるだけでしょうか?
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNG> fscafでファイルからデータを読み込んだ時
> 変数名の部分を文字列として変数にいれて
> その文字列の名前の変数に値を代入する
> なんてことができるのでしょうか?
できない。
> それとも〜
WindowsならたぶんGet/SetPrivateProfileStringを使っている。
0307304
NGNGてっきり書式使ったCだと思ってました
ありがとうございます
0308デフォルトの名無しさん
NGNGHashの勉強しる
0309デフォルトの名無しさん
NGNGどこからHashの話になるんだ?
0310デフォルトの名無しさん
NGNGつーか連想配列
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNGdouble hikei,hihei;
〜略〜
scanf("%lf",&tempk); //気温入力 ←これを24回繰り返す
hikei = hikei + tempk; //hikeiに
〜略〜
hihei = hikei / 24; //24で割る
printf("%d日の平均気温は%4.1f度です\n",j,hihei);
〜略〜
これで平均がちゃんと数値出ないんだけどなんででしょうか
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNGhikeiが初期化されてないとか?
0315313
NGNG0316デフォルトの名無しさん
NGNGすいません重要な部分略しちゃいました。
全部1を入力して結果1のはずなんですけど結果が違うんです
0317デフォルトの名無しさん
NGNGここで四捨五入になっちゃってるんじゃない?
0318デフォルトの名無しさん
NGNGあーそれじゃ、略している中でぶち壊しているに一票。
0319デフォルトの名無しさん
NGNGこれはうまく動いた。
#include <stdio.h>
#define N 24
int main()
{
int i;
double Sum = 0;
for (i = 0; i < N; i++)
{
double Temp = 0;
scanf("%lf", &Temp);
Sum += Temp;
}
printf("平均気温は%4.1f度です\n", Sum / N);
return 0;
}
0320デフォルトの名無しさん
NGNGint main(){
double kion[23][30];
double saikou,saitei,goukei,tempk,heikin;
double hikou,hitei,hikei,hihei;
int j,h,n;
goukei=0;heikin=0;hikou=0;hitei=0;hikei=0;hihei=0;tempk=0;
for(j=1;j<=30;j++){
for(h=0;h <= 23;h++){
printf("%d日、%d時の気温を入力してください\n",j,h);
scanf("%lf",&tempk);
kion[h][j] = tempk;
hikei = hikei + tempk;
goukei += tempk;
if(hitei == 0){hitei = tempk;
}else{
if(tempk < hitei){hitei = tempk;}
}
if(tempk > hikou){hikou = tempk;}
tempk = 0;
}
hihei = hikei / 24;
printf("%d日の平均気温は%4.1f度です\n",j,hihei);
printf("%d日の最低気温は%4.1f度です\n",j,hitei);
printf("%d日の最高気温は%4.1f度です\n",j,hikou);
〜以下略〜
こんな感じです。
6桁くらいにしてみたところ
上二つのループの中で何故か合計が2になってるみたいです。
何度もスイマセン。
0321デフォルトの名無しさん
NGNG関係なさそうだけど
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNGいろんなところにprintf入れて
tempkの値は正しいものが入ってるのか、
hikeiとかhiteiとかは正しい値になっているのかなどを出力しとけ。
0324318
NGNGやっぱり配列の範囲外に書き込むことでぶち壊してたと。
0325デフォルトの名無しさん
NGNGそれでも壊れるよ
for(j=1;j<=30;j++){
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNG割り当てのない文字コードを探してもいいかもしれないが、その場しのぎの
環境依存コードにしかならない。
0329デフォルトの名無しさん
NGNGfopenした時にどっちにしたかを自前で覚えてろ。
0330デフォルトの名無しさん
NGNGそれは環境依存のバイナリモード、テキストモードの話だね?
0331デフォルトの名無しさん
NGNG回答を質問より先に読んだのに、質問を完璧に予測できた
0332デフォルトの名無しさん
NGNGqkccという文字コードと改行コードを変換できるプログラムがあるのですが、
ワイルドカードで指定したとき実行形式などのファイルにたいしては、
おそらくバイナリファイルです。と表示されたのでどうやって判断してるのかと
思ったんです。
汎用的な方法は無いんですか。どうもです。
0333デフォルトの名無しさん
NGNGqkcのこと? それならソースが公開されてるんで読んでみては?
0334デフォルトの名無しさん
NGNGテキストファイルには有り得ないデータがあればバイナリファイル。
0335デフォルトの名無しさん
NGNG0336sage
NGNG3+4*12
とかいてある時、そのテキストファイルを読みこんで、
式の答えをその式の次の行に追加するにはどうしたらいいのでしょうか?
参考書をみてもファイルの読み込みから、さらに計算までの方法がのってなくて、
わかりませんでした。
助言おねがいします。
0337デフォルトの名無しさん
NGNG宿題丸投げクズは放置
0338デフォルトの名無しさん
NGNG「再帰下降」もしくは「再帰下向き」でぐぐるべし。
他の宿題スレでも、これ以上の回答は得られないものと考えるべし。
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNGchar buf[1000];
char cmd[1100];
FILE * fp = fopen("aru.txt", "r");
fgets(buf, sizeof(buf), fp);
sprintf(cmd, "awk 'BEGIN {print %s}' /dev/null >> aru.txt", buf);
system(cmd);
0341デフォルトの名無しさん
NGNG#!/bin/bash
for aa in `cat text`; do
echo $aa;
echo $(($aa));
done;
0342340
NGNG0343デフォルトの名無しさん
NGNG「20個の数字を入力して最大値、最小値を求めよ」という問題に対して、以下のようなプログラミングをしてみました。
一応コンパイルして、実行してみるとちゃんと動くのですが、いまいちエレガントさに欠けるような気がするので助言を
お願いします。
#include<stdio.h>
int main(void){
int i, max = -32768, min = 32768, a;
printf("20個の数字を入力して下さい\n");
for (i = 0; i < 20; i++){
scanf("%d", &a);
printf("%d個目の数字は%d\n", i + 1, a);
if(max <= a){
max = a;
}
if(min >= a){
min = a;
}
}
printf("\n最大値:%d\n最小値:%d\n", max, min);
return;
}
0344デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void)
{
int i, max, min, a;
printf("20個の数字を入力して下さい\n");
for (i = 1; i <= 20; i++){
scanf("%d", &a);
printf("%d個目の数字は%d\n", i, a);
if(i==1){
max=min=a;
continue;
}
if(max < a){
max = a;
}
if(min > a){
min = a;
}
}
printf("\n最大値:%d\n最小値:%d\n", max, min);
return 0;
}
0345デフォルトの名無しさん
NGNGmax = min = a;
}else if(max < a){
max = a;
}else if(min > a){
min = a;
}
0346デフォルトの名無しさん
NGNG押入れから2年前ぐらいに買ったビィジュアルC++6.0(その時は3日もせずに押入れ行き)引っ張り出してCの勉強はじめテルですけど、今の所 全然
意味が分かりません。勉強してれば分かるようになるんでしょうか?今24歳無職です。大丈夫でしょうか?
0347デフォルトの名無しさん
NGNGJ
でつ
0348デフォルトの名無しさん
NGNG勉強の仕方はどうやってますか?
0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG#include<sudio.h>
double wa(double x, double y);
main()
{
double a,b,sum;
a=11.11;
b=22.22;
sum=wa(a,b);
printf("a=%f b=%f sum=%f\n",a,b,sum);
}
double wa(double x, double y)
{
double z;
z=x+y;
return(z);
}
0351デフォルトの名無しさん
NGNGそんなライブラリ無いよ。
多分書きたかったであろうは「stdio.h」
スタンダードIO(標準入出力)の意味だ覚えとけ
// studio.hと間違えている人は見るけれどsudioは始めてみたな。。。
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGなんのための表示なんだか・・・
0356デフォルトの名無しさん
NGNG違う。
一個目のデータを(仮の)最大値、最小値としている。
なお、>344は1オリジン、>345は0オリジンなことに注意。
0357343
NGNG書き込んだ後に、自分の早とちりに気づきました・・・。
おっしゃるとおりです。
オリジンというのは、forの「0以上20未満」と「1以上20以下」の差のことですよね?
0358デフォルトの名無しさん
NGNG> オリジンというのは、forの「0以上20未満」と「1以上20以下」の差のことですよね?
まあそういうことだ。
で、一般に「オリジン」と言ったら開始位置のことを指す。
普段数える時にゼロから始める奴はいないからプログラムの出力もそうしろ、
ってことだろう。
(配列だとかで0オリジンだからって出力も0にする必要は無い。ユーザーは何も知らないから混乱する)
0359デフォルトの名無しさん
NGNG(プログラム経験全くなし)いきなりVisual C++6.0に挑戦しても大丈夫ですか?
0360デフォルトの名無しさん
NGNGガタガタ言ってねえで手を動かせ
0361デフォルトの名無しさん
NGNGC言語のコンパイラって何使ってる?
C言語勉強しようと思ってLSI C-86侵食版を使おうとしてるんだけど
うまく作動しないorz
ちなみに環境はwin MEです
いい動作方法か
コンパイラのオヌヌメあったら、教えてくだしあ
馬鹿でスマソ
0362デフォルトの名無しさん
NGNG>>2
0363デフォルトの名無しさん
NGNG主流プログラム】
VisualC++ UNIXOSはこれで書いてる。プログラム作り難い。ny作者がGUIに凝る為bcbに逃げた実績あり。
GUIをVBで内部をC++で書いてる人多いみたい。数多くの初心者を粉砕してきた。
VisualBasic 複雑なプログラムの開発できない。動作が重い。短時間でアプリを作れる。
JAVA オブジェクト指向でそれがまた難しいとか。JAVA仮想マシーンを間に挟むことで
全てのOSで実行できるのが売りだが、全てとはいかないとか。VBより軽く.netよりちと重い。
Delphi 中々高機能なアプリがVB並みに簡単に作れ実行速度もC++並み。資産を利用できないのが弱み。
ファイルサイズが大きめ。
BorandC++Builder C++並みに高機能な上VB並みに作りやすくアプリも軽い。資産を利用できる。
ファイルサイズが大きめ。けど人気は微妙。
【支流プログラム】
HSP 優しくて主に簡易的なゲームを作りに適している
ひまわり 日本語でプログラムを書ける
jscript vbscript javascript php perl 基本的にWeb系プログラム
【2chスレ数ランキング】(左から多い順)
C,C++系圧倒 JAVA系55スレ VB系38スレ HSP系37スレ delphi系35スレ BCB系11スレ ひまわり4スレ
【完成したプログラムの処理速度】(左から早い)
c,c++>>BCB>delphi>>>>>>>.net>>JAVA>>>>>VB>>…>>HSP
【完成したプログラムのファイルサイズ】
c,c++が小さくBCB,delphi系は大きくなる
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNGなんだその嘘と偏見だらけのリスト。
0366361
NGNGとりあえず全くの初心者なんで
>>2をみてみたんだけど何をつかっていいのやら全くわかりませんですたorz
c++のコンパイラってC言語でもコンパイルできるのかな??
ほんと馬鹿ですまん
0367デフォルトの名無しさん
NGNG0368361
NGNGご迷惑おかけしますたm__m
0369デフォルトの名無しさん
NGNGcamlだったらCとC++の間くらいの早さだよー
0370デフォルトの名無しさん
NGNGまぁ、過去の遺物だが。
0371デフォルトの名無しさん
NGNG大抵のC++コンパイラは拡張子がcならCのソースコードとしてコンパイルする。
ところで少なくともLSI-Cを使えないのなら無料のコンパイラはどれも無理だな。
どれもインストールの方法は似たり寄ったりだし。
0372361
NGNGちなみにBORLAND C++
でやりますた
レスしてくれた方々�dクス
0373デフォルトの名無しさん
NGNGと記述するとコンソールが落ちるんですがなぜでしょうか。
0374デフォルトの名無しさん
NGNG0375373
NGNG〇 strtok("a", " ");
0376デフォルトの名無しさん
NGNGchar *strtok(char * restrict s1, const char * restrict s2);
(ISO/IEC 9899:1999 7.21.5.8 The strtok function -1 Synopsis)とあり、
strtokはstrに対して内容の変更を行う。一方、
If the program attempts to modify such an array, the behavior is
undefined. (ISO/IEC 9899:1999 6.4.5 String literals -6)
とあるから、落ちたとしてもそれは不適切な動作とは言えない。
0378デフォルトの名無しさん
NGNGをダウンロードしたいのですが、日本語ページはないのでしょうか?
0380デフォルトの名無しさん
NGNGクマー
0381デフォルトの名無しさん
NGNGタダで使えるVisual C++ $2
http://pc5.2ch.net/test/read.cgi/tech/1086287039/
0382デフォルトの名無しさん
NGNG読んだことのある方がいたら感想を聞かせてもらえませんか?
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNGわからないかなー にゃんにゃん
0386デフォルトの名無しさん
NGNGnyaintf("にゃにゃぁ にゃぁにゃん\n");
}
0387デフォルトの名無しさん
NGNG分かるようだぞ。人間の言葉は。
ただしコンピュータ言語は絶対分からないはずだ。理由は覚える必要を
感じないから。
0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNGbool型を返す関数check_bool()というのがあるのですが、呼び出し側のほうで、
int ret = check_bool(value);と書かれてます。
自分のソースではないんですが、どうやらコンパイルも通っているそうで。
trueやfalseの場合、retには何が入ってくるんですか?
0390デフォルトの名無しさん
NGNG0か0以外
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNGFALSE が 0 なら TRUE は -1 が正しい
http://pc5.2ch.net/test/read.cgi/prog/1082154544/l50
0393デフォルトの名無しさん
NGNGtrueなら1、falseなら0。
コンパイルが通るのはshort→intと同じように、変換後の型の表現可能な値の範囲が変換前より大きくなる整数同士の型変換の扱いになるからだと思う。
0394デフォルトの名無しさん
NGNGstrcmp( var, "\0")
strcmp( var, '\0')
これって下が正しいんですよね。
文字列が""で、文字が''ですよね?
0395デフォルトの名無しさん
NGNG下ってコンパイル通らなそうなんだけど
0396デフォルトの名無しさん
NGNG「ですよね?」じゃなく、前提で勘違いしてる。
0397デフォルトの名無しさん
NGNGif( hoge == '\0' )
printf( "ぬるぽ!\n" );
else
printf( "ガッ\n" );
-----------------------
ぬるぽ!
0398デフォルトの名無しさん
NGNG>>396の言う通り、strcmpは文字列同士の比較なのでナル文字かどうかの比較にはstrcmp(var, "")か*var == '\0'
0399デフォルトの名無しさん
NGNGガッ
0400デフォルトの名無しさん
NGNG作っています。どうすれば完成させることが出来ますか?
#include<stdio.h>
main()
{
int a[20][30];
int b[20][30];
int i,j;
int s,kaisu=0;
char c;
for(i = 0; i<20;i++)
for(j=0;j<30;j++){
a[i][j]=0;
b[i][j]=0;
}
b[5][7]=1; b[6][7]=1; b[7][7]=1;
b[8][7]=1; b[6][8]=1;
b[8][9]=1; b[11][14]=1;
b[11][12]=1; b[11][13]=1;
b[12][15]=1; b[15][20]=1;
↓下に
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNGスレ違い
0403デフォルトの名無しさん
NGNGscanf("%c",&c);
while( (c=getchar() != 'e' ) ){
printf("次?(単に Enter 終わりは e)\n");
for(i=1;i<=20;i++){
for(j=1;j<=30;j++){
s=b[i-1][j-1]+b[i-1][j]+b[i+1][j]+b[i+1][j+1]+b[i][j-1]+b[i+1][j-1]+b[i][j+1]+b[i-1][j+1];
if(s==2)
a[i][j]=a[i][j];
else if(s==3)
a[i][j]=1;
else
a[i][j]=0;
} }
for(i=0;i<20;i++){
for(j=0;j<30;j++)
if(a[i][j] ==0 )
printf("○");
else if(a[i][j] == 1)
printf("●"); printf("\n");
}
scanf("%c",&c);
}}
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG行を抽出する(要するにフィールドを意識したGREP)のに
一番速い方法はどんな感じでしょうか。
0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNGprintfの中で""を表示したいのですがどうすればよいのでしょうか?
表示結果を
"abc"
と表示したいのですprintf(""""\n);では駄目みたいなのですが…
0409デフォルトの名無しさん
NGNG0410408
NGNGありがとうございました、無事できました!
0411デフォルトの名無しさん
NGNGいや、Cで組むとしたら、の話です。
0412デフォルトの名無しさん
NGNGx[n+1]=(x[n]+1)^(1/3)のn番目の値を出すプログラムを書きたいのですが
三乗根の書き方が分かりません、アドバイスお願いします
0413デフォルトの名無しさん
NGNGdouble cbrt(double)
0414デフォルトの名無しさん
NGNGどうすればよいでしょうか?
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNGこのスレ的にはclockかな?
0417デフォルトの名無しさん
NGNGgrepのソースでも読めば? セル中に','が含まれていないことが保証できるならgrepでできることだし。
#例えば第3フィールドが123なら、system("/bin/grep '^[^,]*,[^,]*,123,' csv.txt");
0418デフォルトの名無しさん
NGNG使いにくいがregexはどう?
C++ならboostなんだろうけど
0419デフォルトの名無しさん
NGNGgrepは遅いのでダメです。
0420デフォルトの名無しさん
NGNGDBに突っ込め。
0421デフォルトの名無しさん
NGNGいやいや、質問している間にだいぶ状況が
整理できたのでなんとかなりそうです。
0422デフォルトの名無しさん
NGNGそれ今まで出た中で一番遅い方法じゃねーの?
0423デフォルトの名無しさん
NGNGに質問なんですが、二分検索木の挿入や削除の所で、構造体へのポインタのポインタを、
わざわざ使う理由がわかりません。
ふつうに構造体のポインタで良いと思うのですが、どうなのでしょうか?
名著と言っている人もいますが、ちょっと読む気無くし中です……
0424デフォルトの名無しさん
NGNG8KB?あとこれって変更できますか?
0425デフォルトの名無しさん
NGNGそれで動いたのか?
0426デフォルトの名無しさん
NGNG内部に持っていない。
0427デフォルトの名無しさん
NGNGウソつけ
0428デフォルトの名無しさん
NGNGサイズはいくつなんですか?
0429デフォルトの名無しさん
NGNGchar *s;と、
char s[256];
では何が違うのですか?
0430デフォルトの名無しさん
NGNG中略
void moge(Nunber, void(*)(Number, Nunber[]);
のvoid(*) の(*)って何を意味しているんですか?
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNG8192バイト
0433デフォルトの名無しさん
NGNGttp://www.kouno.jp/home/c_faq/
0434デフォルトの名無しさん
NGNGどこで確認できるのでしょうか?変更する方法もお願いします。
0435デフォルトの名無しさん
NGNGどうもです。
0436デフォルトの名無しさん
NGNG手元にPCないので確認できないです。
ていうかこの本の例題、main関数ぐらい使ってくれよ〜
0437デフォルトの名無しさん
NGNGつきあいきれんよ
0438デフォルトの名無しさん
NGNG単にお前が初心者すぎて読みこなせないだけなんじゃないの?
0439デフォルトの名無しさん
NGNG8192バイトという数はどこでわかったんですか?
それだけでも教えてください。
0440デフォルトの名無しさん
NGNG配列とポインタの違い。
0441デフォルトの名無しさん
NGNGchar s[256]; ←これは定義ですよね?
0442デフォルトの名無しさん
NGNGttp://www.kouno.jp/home/c_faq/c6.html
0443デフォルトの名無しさん
NGNGいいえ。どちらも定義です。
0444デフォルトの名無しさん
NGNGポインタ。
0445デフォルトの名無しさん
NGNGどちらも宣言みたいですね。
宣言と定義がぐちゃぐちゃに・・_| ̄|○
0446デフォルトの名無しさん
NGNG( ゚д゚)ポカーン
0447デフォルトの名無しさん
NGNGポインターの宣言「char *p」
だから合ってるんじゃないの。ぶっちゃけどうでもいいけど。
0448デフォルトの名無しさん
NGNGなんだから合ってると言えば合ってるんだけどね。でもねえ…
0449デフォルトの名無しさん
NGNGCでは宣言文と定義文が分かれていないと初期のころから不思議がられていた。
で、上の「char a[6];」のみで「=」無しのやつなんかは、規格の6.9.2で、
仮定義(tentative definition)と、仮なんて無理やりな言葉で誤魔化した。
真の定義じゃないから、関数の外で「char a[6]; char a[6];」なんて複数仮定義してもOKだし、
もちろん、「extern char a[6]; static char a[6];」なんて仮定義しても警告すら出ん。
規格では「extern」は内部結合でもいいよと書かれているが、字面じゃ完璧エラーだろ。
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG{
int i[8][8]={1.....}; //中身は省略
A();
}
みたいなプログラムでDLLでA()関数を呼び出してstatic int i[8][8]の
中から特定の数字を見つけてその値を返り値として戻したいのですが
main()で宣言している変数をDLL側に渡す方法ってありますかね?
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG>もちろん、「extern char a[6]; static char a[6];」なんて仮定義しても警告すら出ん。
>規格では「extern」は内部結合でもいいよと書かれているが、字面じゃ完璧エラーだろ。
お前はアフォか?
0454デフォルトの名無しさん
NGNGtmpString.Format("%f",data);
ここで、tmpStringに入る文字列は "1.008251"となるのですが。
これはどうしてでしょう。
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG警告も出なかった。
gcc
0457453
NGNG警告なんて出る訳ないからアフォだと言ってるんだが
0458デフォルトの名無しさん
NGNGfloat data = 0.1;
で試してみ?
0459449
NGNG0460デフォルトの名無しさん
NGNG逆順に表示するプログラムの表示。
ただし、一文字目に'@'が入力されるとデータ入力を終わる。
データ数は最大20個、また一つの文字列データの
最大長は半角10文字
実行例
word=sekiyu
word=yasai
word=denwa
word=@
denwa
yasai
sekiyu
0461デフォルトの名無しさん
NGNGプログラムの表示とはバイナリですか?
それともソースファイルを表示するのでしょうか?
0462デフォルトの名無しさん
NGNGソースファイルです
0463デフォルトの名無しさん
NGNGで?
それが何?
痴呆?
0464デフォルトの名無しさん
NGNGその類の反応も見飽きた。
飽きた飽きた飽きた飽きたぁぁああぁあぁうぇww
0465454
NGNG0.100000
となりますが・・・
あと、例では単に data変数に測値を入れてますが、
実際にはある演算の結果が 1.00825(デバッガ上で確認)となり、
これをFormat関数に渡すと誤差を含んだ文字列が帰ってきてる
ようです。
うーむ。
0466454
NGNGです
0467デフォルトの名無しさん
NGNGhttp://docs.hp.com/ja/B3909-90017/ch14s03.html
0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNGfloat data = 0.1;
tmpString.Format("%.18f",data);
0470デフォルトの名無しさん
NGNGデバッガ上で確認した数値が誤差を含んでいない保証はない。
0471デフォルトの名無しさん
NGNG1. 1.00825 なんて数は、2進数では表現できない。
2. デバッガでは有効桁数6桁で表示しているが、
Format (つかコレ C じゃねぇだろ) では 7桁表示。
0472423
NGNG構造体↓
NODE **p;
を宣言して
*p
として使ったときと、
NODE *p;
を宣言して
p
として使ったときでは、指しているものが違うことに気がつきました。
何か違っていることを言っているようでしたら、訂正お願いします。
0473デフォルトの名無しさん
NGNGアーカイブでextern宣言した配列に値を設定しておき、
呼び出し元でその配列を参照することはできますでしょうか?
0474デフォルトの名無しさん
NGNGやってみたら?
0475デフォルトの名無しさん
NGNGNODE n;
NODE *p1;
NODE **p2;
p1 = &n;
p2 = &p1;
----------------
*p1 は n;
*p2 は &n;
0476デフォルトの名無しさん
NGNGvoid hoge(double &x, double &y){}
のdouble &xとdouble &y の&の意味を教えてください。
0477デフォルトの名無しさん
NGNGこちらへどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1098543578/
0478デフォルトの名無しさん
NGNGやってみたところ、なんとか自己解決しました。
お騒がせしました。
0479デフォルトの名無しさん
NGNGのように文字 個数という順で並んでいる画像ファイル(バイナリ形式pbm)を
その個数分だけ文字を並べていく(RLE解凍)プログラムです。
if ((fp = fopen(argv[1], "rb")) == NULL){
printf("file open error!\n");
}
while(!feof(fp)){
fscanf(fp, "%c %d ", &c, &i);
while(i>0){
printf("%c", c);
i--;
}
}
という形で直接リダイレクトして出力してるんですが、
出力ファイルの「」(^Kとxyzzyでは表示されている)だけが出力されずに
解凍した画像にズレが生じてしまいます。
解決方法をご教授ください。
環境はWinXP+Cygwin+gccです。
0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNGとりあえず標準出力はテキストモードで、
リダイレクトした際には吐き出すディレクトリのマウントモード(だっけ?)に
依存しそうだから、stdoutをfreopenかなんかでモード変えてみたらどうだろう。
0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG次の関数で0≦x≦2の範囲で、xの値の0,1ごとに
yの値を計算するプログラムを作成せよ。画面にはx、y両方の値を表示す
るようにすること。while文を使うこと。y=x*x−3x+5/4
0487デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
double x;
for (x=0.0; x<=2.0; x+=0.1) {
printf ("x = %.1f\ty = %.2f\n", x, x*x-3*x+5/4);
}
return 0;
}
ていうかマルチすんなボケ
0488デフォルトの名無しさん
NGNGfloat x=0;
while(x<2.0){
printf("x=%2.1f,y=%2.1f\n",x,x*x-3*x+5/4 );
x+= 0.1;
}
答えつつ質問
与えられた整数mの中の任意の桁nの値を求めるにはどうすればいいでしょうか?
例えばm=123のときは
n=1 ; 3
n=2 ; 2
n=3 ; 1
n=4 ; 0
のように求めたいんですが
0489デフォルトの名無しさん
NGNG(n-1)*10で割った後、10で割ったあまりを取ればいいんじゃない?
0490489
NGNGorz
0491デフォルトの名無しさん
NGNGああ、成る程!
ありがとうございました
0492479
NGNG>>483さんの方法で出力自体はできたんで、
fscanfしたものと比較、もし^Kだったら>>483さんの方法で出力、
ということをしようと思ったんですが、
その時点ですでに^Kをfscanfできていなかったことが分かりました。
で、代わりにfgetcを用いた所、^Kを格納することができました。
数字部分にもfscanfを用いると何故か格納ができなくなっていましたんで
そちらに対してもfgetcを用いた、という感じです。
これは処理系によるfscanfの不具合なんですかね?
よく分からん(´・ω・`)
とりあえず、ご教授ありがとうございました。
0493479
NGNGwhile(!feof(fp)){
c = fgetc(fp);
fgetc(fp);
i = fgetc(fp) - 48;
j = fgetc(fp) - 48;
while (j>=0 && j<=9){
i = i * 10 + j;
j = fgetc(fp) - 48;
}
while(i>0){
fprintf(fpw, "%c", c);
i--;
}
}
fclose(fp);
fclose(fpw);
0494773
NGNG0495486
NGNG0496479
NGNG出現回数もchar型で出力&スペース除去したものを
while(!feof(fp)){
fscanf(fp, "%c%c", &c, &i);
while(i>0){
fprintf(fpw, "%c", c);
i--;
}
}
で復元したら、問題なくできました。
なんだったんだ…。
0497デフォルトの名無しさん
NGNGscanf()系は、%sや%dなどではホワイトスペースを取り除く機能を持っている。
通常ホワイトスペースは空白文字、タブ文字、改行文字だがもしかしたら、
0x0bもホワイトスペースとして取り除かれたのジャマイカ。
最後の例では%cしか使っていないからその問題は起きない。
しかし、fscanf()やfprintf()のようなコストの掛かる関数ではなく、
fgetc()やfputc()を使うべきジャマイカ。
0498デフォルトの名無しさん
NGNG0499486
NGNG0500486
NGNG0501486
NGNG0502486
NGNG0503486
NGNG0504デフォルトの名無しさん
NGNGdouble a1;
double a2;
double a3;
};
int main(){
struct value value;
scanf("%f",&value.a1);
printf("%f",value.a1);
}
略してますがこんな感じのソースなんですが、構造体のメンバにscanfで
入力できません。コンパイルは通ったのです。なんででしょうか?
0505デフォルトの名無しさん
NGNGscanf の場合は、%f は double ではなくて float だったような。
double にしたいのなら %lf にしよう。
0506デフォルトの名無しさん
NGNGprintf("%lf",value.a1);
0507デフォルトの名無しさん
NGNG0508504
NGNG要点を書こうとして略しすぎてしましました。%fを%lfにしてもだめで
した。問題は別のところにあったようです。もう一度ご教授ください。
void scan_value(value a){
printf("\nベクトルの要素1を入力してください。");scanf("%lf",&a.a1);
printf("ベクトルの要素2を入力してください。");scanf("%lf",&a.a2);
printf("ベクトルの要素3を入力してください。");scanf("%lf",&a.a3);
printf("\n");
}
という関数を作って、main関数の中で
struct value value_a;
scan_value(value_a);
となってます。
全部書くのもあれなのでまた略してます、すいません。
この辺が問題のようなので。
お願いします。
0509デフォルトの名無しさん
NGNGそんなわけないと思う。
第一、バイト数がわからなければ、実装できないだろう。
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNGそれはキミ scan_value(value a) って書いたら、
value のコピーが渡されるから、
入力しても関数呼び出し側には反映されないよ。
scan_value(value* a) のようにポインタを使わないといかん。
0512デフォルトの名無しさん
NGNGポインタを扱うのでサイズの違いに意味がある。
printf()ではdoubleは%f。%lfは処理系依存だったはず。
暗黙の型変換が入るのでfloatは勝手にdoubleになるからやはり%f。
0513デフォルトの名無しさん
NGNG【ISO/IEC 9899:1999 7.19.6.1 The fprintf function -7】
... or has no effect on a following a, A, e, E, f, F, g, or G conversion
specifier.
と言うことで、「%lfと%fは同じ結果にならねばならない」が正解。
0514508
NGNGscanf("%lf",&a.a1);
scanf("%lf",&a.a2);
scanf("%lf",&a.a3);
の3つの行で
. または .* の左側に構造体が必要
というエラーがでましたがこれはどういうことですか?
教えて君ですいません。Cでやり始めたのですが出来なくて
C++でやったら出来ました。でも原因が知りたいので是非お願いします。
0515デフォルトの名無しさん
NGNGscan_value(value *a)
にしてるなら
scanf("%lf", &a->a1);
0516デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNGファイル分割する単位はどうやって決めてますか?
複数の人間で開発する場合は、一人一人の分担で決まると思いますが、
一人で開発できるボリュームのとき、分割しようとすると、
ヘッダが入り組んできて、よくわからなくなってしまいます。
分割しすぎなのでしょうか?
0520デフォルトの名無しさん
NGNGそういうネタはこっちのスレで
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
0521デフォルトの名無しさん
NGNGCなら機能単位でまとめ、グローバル変数などは一つのヘッダで一括管理すれば
良いでしょう。
C++ならクラス単位。
Cでもファイル単位でクラスの様に扱うとややオブジェクト指向風になるので保守性が
良くなります。
↓このようなことをする人もいますが、ここまで来ると少しやりすぎという気がします。
http://www.sage-p.com/process/cool.htm
0522デフォルトの名無しさん
NGNG関数内で現在時刻を得ても、その時刻をmain関数に反映させることができません。
どうすればいいでしょうか?ご教授お願いします。
・プログラム
#include <stdio.h>
#include <time.h>
void get_time( struct tm *tm )
{
time_t t;
time(&t);
tm = localtime(&t);
printf("1:%s", asctime(tm) );
}
int main (void)
{
struct tm *tm;
get_time( tm );
printf("2:%s", asctime( tm ) );
return 0;
}
・実行結果
1:Sat Nov 13 19:57:08 2004
2:Sun Jan 0/ 00:00:l0 1900
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNGmainでとったtmの実体ないだろ。だからだ。
0525522
NGNGmainのtmはポインタにしてはいけないということでしょうか?
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
void get_time( struct tm **tm )
{
time_t t;
time(&t);
*tm = localtime(&t);
printf("1:%s", asctime(*tm) );
}
int main (void)
{
struct tm *tm;
get_time( &tm );
printf("2:%s", asctime( tm ) );
return 0;
}
0528デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNGなんでわざわざ struct tm **tm よ?
>>522
get_time() の
tm = localtime(&t);
を
*tm = *localtime(&t);
にして、main で
struct tm tm;
get_time(&tm);
と、実体のあるポインタを渡す。
…でも、できれば localtime() じゃなく localtime_r() を使った方がいい。
0532デフォルトの名無しさん
NGNGどうすればいいのでしょうか?
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG{}
void f(int* a)
{}
int main()
{
int a[16][16][16][16];
f(a);
f(&a[0][0][0][0]);
return 0;
}
詳しくは禿本C.7.3で
0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNG数当てゲームのプログラムなんですが、正解のあとループの終わらせ方がわかりません
どなたかご教授願います。↓までが限界です・・・
#include <stdio.h>
int seikai(int num);
int main(void)
{
int ans,num,i;
ans = 253;
printf("数当てゲームです\n整数を入力して下さい。");
scanf("%d",&num);
for (i = 0;i < 9; i++)
{
if(num == 253) seikai(num);
if(num < 253) printf("小さいです\n");
if(num > 253) printf("大きいです\n");
printf("もう一度入力して下さい");
scanf("%d", &num);
}
return 0;
}
int seikai(int num)
{
printf("正解です!");
return 0;
}
0540デフォルトの名無しさん
NGNGを
if(num == 253) {
seikai(num);
break;
}
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNG0544539
NGNG0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNGmalloc で獲得したメモリは開放されるのでしょうか。
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNG---終了--
0549デフォルトの名無しさん
NGNGs=(char *)malloc(sizeof(char)*100);
.
.
.
free(s);
0550デフォルトの名無しさん
NGNGその関数内でその配列の要素数を求める方法はないのでしょうか?
複数の文献をネットであたりましたが、通常のsizeof割り算方式では
不可能を示すものしかなく、関数内でもとめる方法がありません。
教えてください。
0551デフォルトの名無しさん
NGNG不可能です。
0552デフォルトの名無しさん
NGNG思っているのですが、後で痛い目にあいたくないので
扱いやすいソフトを教えていただけないでしょうか?
0553デフォルトの名無しさん
NGNG激安で買えるVisual Stdio.NET theSpoke Disc.8
http://pc5.2ch.net/test/read.cgi/tech/1095325802/
0554デフォルトの名無しさん
NGNGEmacs 最高
Elisp 覚えればな。
0555デフォルトの名無しさん
NGNGゆくゆく何を作りたいかを書きもせず、ましてやOSさえ書いてないのは、
もしかしてエスパーがこのスレにいると思ってますか?
0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNGじゃC++はどうなのよ?
0558デフォルトの名無しさん
NGNG良いんじゃないっすか?
charだったらNULLか何か入れて
関数AでNULLが出るまでカウントする。
これじゃ駄目かな?
0559546
NGNG0560デフォルトの名無しさん
NGNG0561デフォルトの名無しさん
NGNG駄目です。
0562デフォルトの名無しさん
NGNGWHY?
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNGそこまでする努力するのなら、素直にパラメータひとつ増やしてサイズ渡せばいいと思うんだが。
というかそっちの方が楽ですよ。特殊なキャラを埋め込むときにどうせサイズが必要だし、
呼ぶ前に埋めるのと、呼ばれた側でカウントするのとで無駄に速度が落ちるし、いいことないっす。
0565デフォルトの名無しさん
NGNG結局フラグ入れたり、引数に要素数渡したり、グローバル変数でフラグにするしかないのか?
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG自分もパラメータ増やすと思いますが。
>>550は通信等でどうしてもバイトしか渡せない時があるから
その時の処理じゃないのですか?
0568デフォルトの名無しさん
NGNGCのオブジェクト指向の要素を取り入れたのがC++と聞きましたが
では
C#との違いは何でしょうか?
Cさえ覚えればC#もすぐに覚えられるのでしょうか?
0569デフォルトの名無しさん
NGNGセマフォの管理などの場合はグローバルでフラグを
持つのはかなり有効と思うのですが?
0570デフォルトの名無しさん
NGNGC#はWinのみで動作する言語です。
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNGこれからC言語を始めようと思うなら
お金かけずに秀丸+Borlandで十分だと…
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG需要がありそうなのに決定的な解決方法はないってことになるのかな?
0575デフォルトの名無しさん
NGNGcigwin落としてviで書くのが一番かと...
何をやるのか分からないがやはりコンパイルやリンカの仕組みは
知らないと。
0576デフォルトの名無しさん
NGNGタダで使えるVisual C++ $2
http://pc5.2ch.net/test/read.cgi/tech/1086287039/
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNGどこからその通信云々の前提が出てきたんだ…
固定長前提の場合を除くと、C以外でも配列のサイズを渡すしかないっすよ。
コードの字面で陽に渡すかどうか(コンパイラが受け持つかどうか)は別としてね。
0582デフォルトの名無しさん
NGNG結局そういう結論になりますか・・・。
C言語に特化した方法で良いので何か効率の良い解決方法はありませんか?
それについて書かれたサイトやモジュールはないでしょうか?
0583デフォルトの名無しさん
NGNG何故その方法にこだわる?
0584デフォルトの名無しさん
NGNGポインタは通常メモリアドレスに過ぎないので、それだけではどれだけの長さがあるのかなんて判別できない
通信の場合でも何も無しでは何処で区切るなんてわかりっこないので
一定の長さにするか、事前に長さを渡すか、区切りを決めておくという方法でやり取りする
0585デフォルトの名無しさん
NGNGどうしても、ていうなら、こんなのくらいしか思いつかない。
typedef struct {
char *p;
size_t size;
} char_array;
char_array *char_array_alloc(size_t size) {
char_array *ca = malloc(sizeof char_array);
if (!ca) return NULL;
ca->p = malloc(size);
if (!ca->p) {
free(ca);
return NULL;
}
ca->size = size;
return ca;
}
0586デフォルトの名無しさん
NGNGvoid char_array_free(char_array *ca) {
free(ca->p);
free(ca);
}
size_t char_array_get_size(char_array *ca) {
return ca->size;
}
char *char_array_get_buf(char_array *ca) {
return ca->p;
}
使い方はわかるよね。
0587デフォルトの名無しさん
NGNGsize_t size;
char values[1];
} char_array;
しといて
char_array* array = malloc( sizeof( size_t )+count );
というのはよく見るね。
言語仕様的にはアウトの予感だけど。
0588デフォルトの名無しさん
NGNGアウトです。C99でも標準化委員会で議論はされたけど結局アウトだったような。
0589デフォルトの名無しさん
NGNGvalues[1] じゃなくて values[] にれば C99 的に ok
http://seclan.dll.jp/c99d/c99d04.htm#dt19990726
0590デフォルトの名無しさん
NGNGおー、サンキューっす。それは知りませんでした。精進します。
0591デフォルトの名無しさん
NGNGtemplate<int N> void Hoge(int& Foo[N]);
0592デフォルトの名無しさん
NGNGsize_t size;
char values[0];
} char_array;
0593デフォルトの名無しさん
NGNGプロセス終了処理を追えばわかる。
0594デフォルトの名無しさん
NGNGtemplate <T, std::size_t N> void f(const T (&t)[N});
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNGfor (;;) と
while (1) で、
gccでのコンパイル結果のバイナリーに差がでるような
gccのオプションって何だ?
IRCの会話をみながら、ひそかに自分で試してみたが、見つからなかった。
(見つけて反論してやろうと思ったのに)
gccにかぎらず、その2つで差がでるようなコンパイラー自体
思い当たらないのだが。
0598デフォルトの名無しさん
NGNG; 8 : for(;;);
jmpSHORT $L582
$L585:
; 9 :
; 10 : while(1);
moveax, 1
testeax, eax
jeSHORT $L586
jmpSHORT $L585
$L586:
0599デフォルトの名無しさん
NGNG↓
0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNGお二人様ご案内
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
0602デフォルトの名無しさん
NGNGとあるプログラムを使ってコマンドプロンプト上に出力された文字列
(例:りんご を 3個 ください)からオリジナルのプログラム上で
自動対応させることは可能でしょうか。
例
1):「りんごを3個ください」(外部プログラムからの出力)
↓
2):「りんご3個でよろしいですね」(if文などを使ったオリジナルプログラムから出力)
初歩的な質問ですいませんが宜しくお願いします。
0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNGは?
0605デフォルトの名無しさん
NGNGできるが、多少面倒かもしれない。
0606デフォルトの名無しさん
NGNG読みづらい文章ですいません。
最初にコマンドプロンプトで、あるプログラム(hoge.exe)を実行します。
C:\bin\hoge\hoge.exe -C
sentence1: りんご を 3個 ください
と出力されるのですが、ここで主力結果「りんごを・・」に対する返答を
するプログラムをCで作りたいのですが、キーボードからの入力は
scanfを使えばいいと分かるのですが、既に画面上に表示されている文字列を
利用する関数はありますでしょうか。
分かりづらい説明ですいませんが宜しくお願いします。
0607デフォルトの名無しさん
NGNG> プロセス終了処理を追えばわかる。
プロセス終了処理ということは OS のソースを見ないといけないということで
しょうか。 Windows などの場合はどうすればよいでしょうか。
0608デフォルトの名無しさん
NGNGでちゃったの拾うのは面倒なんで
FIFOかPIPE使って
0609デフォルトの名無しさん
NGNGそんなときのためにサポートセンターがある。
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNGそうしない積極的な理由がない限り、それでいい。
>>606
インタラクティブに対応するのは結構難しいかと。
事前に出力がわかっているのなら、入力すべき内容を
テキストファイルにでも入れてリダイレクトで済むかも知れず。
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNGどうも有難うございます。参考にさせていただきながらやってみます。
またお世話になるかもしれませんが宜しくお願いします。
0614デフォルトの名無しさん
NGNGなんでこんなナンセンスな香具師が湧いてるんや…
0615デフォルトの名無しさん
NGNG>611が敢えて抽象的な表現したんだから察しような。
0616デフォルトの名無しさん
NGNG事前に出力される結果は分かっていないんです。外部音声認識により
「りんご3個」と発話した結果(話者により、果物名や個数は異なる)
に対して
if fruit(りんご){
こんな処理しろ
}
else {
りんごじゃなかったら、こうしろ
}
上記適当ですが、こんな形の処理を実行したいと思ってます。。
初歩的な質問かもしれませんが宜しくお願いします。
0617デフォルトの名無しさん
NGNGこんな感じでやって OS に異常がなければ free しなくても大丈夫?
int main(int argc, char *argv[], char *envp[])
{
int i;
int *dummy;
int mem = 1;
for (i = 0 ; i < 1000000; i++){
if ((dummy = malloc(mem <<= 1)) == NULL){
printf("mem: %d\n", mem);
exit (1);
}
}
return 0;
}
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNG最近C使ってねぇや
0620デフォルトの名無しさん
NGNG異常が無いかどうかを正確に判断できるのならね。
0621デフォルトの名無しさん
NGNGパイプ使っとけ。
0622デフォルトの名無しさん
NGNG> 異常が無いかどうかを正確に判断できるのならね。
何回も実行して特に不都合がなければ異常なしと判断してよいと思っていたの
ですが、何かいい方法はあるのでしょうか。
0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNGたとえば、
明日は\n
いい\n
天気="晴れ"ですね。\n
という文字列があるとします。
「晴れ」の部分を取り出すときはどうすればいいのでしょうか?
sscanf()関数しかないのでしょうか?
0626デフォルトの名無しさん
NGNG気になるならfree()しとけ。気にならないならfree()しなくていいから。
0627デフォルトの名無しさん
NGNGすげー亀レスだけど最適化切ればwhile(1)は
cmpしてからjmpすると思う。多分。
少なくともBorland C++ではそうだった気がする。昔試したときは。
ってそういう話ではない?
0628デフォルトの名無しさん
NGNG真っ当な回答としては、そのプログラムの開発元に相談しろとしか言えない。
既に何度か書かれているようにpipeを使ってできないこともないが、結構難しい。
後は、要件と開発コスト次第。
0629デフォルトの名無しさん
NGNG他にも方法は色々あると思うが、sscanf()を躊躇う理由がないならそれでいい。
0630デフォルトの名無しさん
NGNGチェックするにはどうするかという質問?
0631デフォルトの名無しさん
NGNG天気="雨" 天気="曇り"という場合もあります。
「雨」「曇り」・・・
sscanf(buf,"明日は\nいい\n天気="%s"ですね。\n",tenki);
これくらいならいいけど、文字列がもっと長くて、取り出したい値が10個あるときにどうすれば・・・
0632デフォルトの名無しさん
NGNGstrstr()
0633デフォルトの名無しさん
NGNGハァ?
0634デフォルトの名無しさん
NGNG取り出したい文字列を配列にして、ループでまわしたら?
#define N_TENKI_TYPE 3
cahr *tenki_type[N_TENKI_TYPE]={"晴","雨","曇"};
for(i=0;i<N_TENKI_TYPE;i++){
val=strstr(buf,tenki_type[i]);
if(val)break;
}
if(val)strcpy(tenki,tenki_type[i]);
でどーよ?
あとは、正規表現regex()とか。
0635デフォルトの名無しさん
NGNGsscanf(buf, "%*[^\"]\"%[^\"]", tenki);
0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNG0638634
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNG(;´Д`)スバラスィ ...ハァハァありがとうございます。
そこに入る値が不明(ランダム)の場合はどうしたらよいのでしょうか?
0642デフォルトの名無しさん
NGNGランダムなら、適当な値入れればいいんじゃない?
0643デフォルトの名無しさん
NGNGchasenで形態素解析するのと、
「="」が出てきてから「"」までの区間と「="」の一つ前の形態素とを
取り出せばよい。
0644デフォルトの名無しさん
NGNG>635は虫界。
0645デフォルトの名無しさん
NGNGchasen()関数?初耳だ・・・
勉強せねば・・・
>>644
おお!!thx!!!!!見落としてたよ。
スレの住人様迷惑かけてすみません。
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG関数ちゃうちゃう…
http://chasen.naist.jp/hiki/ChaSen/
0648デフォルトの名無しさん
NGNG「今日はいい天気="晴れ"ですね。」
という構文だと 天気="晴れ" というのが取り出せへんと思うんやけど。
0649デフォルトの名無しさん
NGNGじゃあ、おまいの解決方法は?
0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNGちゃんと動く?
0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG実装による。
非標準だがVCやBCCなら_mbsstrなどが用意されている。
0655デフォルトの名無しさん
NGNGC++でstd::wstring.find()使えばどう?
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNGマルチバイト文字版と書いてあるのですが、ワイド文字、
マルチバイト文字とは何を指しているのでしょうか。
0658デフォルトの名無しさん
NGNG聞くスレをちゃんと選んで聞けよ
0659デフォルトの名無しさん
NGNGその通りでした。>657の質問は取消ます。
0660デフォルトの名無しさん
NGNGうるせぇんだよ。ボケ。
0661デフォルトの名無しさん
NGNG黙れ総理大臣
0662デフォルトの名無しさん
NGNG例えばa.asmというのに対してCプログラム中で、extern inline void a();としてやってみましたが、
コンパイル時に function "a" was referenced but not defined となってしまいます。
ご存知の方いたらよろしくお願いします。
0663デフォルトの名無しさん
NGNGインラインアセンブラ でぐぐれ
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNGopendirとかreaddirを使えばできそうですね
0667デフォルトの名無しさん
NGNGひとつのプロセスがオープンできるファイルの数は限りがあるよ。
0668デフォルトの名無しさん
NGNG大丈夫みたいです
#include<stdio.h>
#include<sys/types.h>
#include<dirent.h>
int main(){
DIR *dp;
struct dirent *entry;
if((dp = opendir("dat"))==NULL){
exit(-1);
}
chdir("dat");
while((entry=readdir(dp))!=NULL){
printf("%s\n",entry->d_name);
}
}
0669デフォルトの名無しさん
NGNGgets(buf);
で何も入力せずにリターンを押した場合、bufには何が入ってくるのですか?
if (gets(buf)==NULL)
break;
というコードを見て、何も入力せずにリターンを押した場合にbreakと思ったのですが、
動かなかったです。
0670デフォルトの名無しさん
NGNGシラネぇーよ。
0671デフォルトの名無しさん
NGNG>>670
知らんのなら黙っとけ。な?
>>669
何が返されるのか知らず、マニュアルも見ず、か。
いい度胸だ。
「成功すると引数そのまま、エラー or ファイル終端で NULL」
改行コードでファイル終端と見做されちゃ困るだろう?
0672デフォルトの名無しさん
NGNG死ねや。ゴミ糞やろうが。
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG何も入力せずにリターンを押した場合は、
長さゼロの文字列を入力したことになる。
0676デフォルトの名無しさん
NGNGgets()がNULLを返すのはEOFまで読み込んだか失敗したとき。
何も入力していないときはEOFでも失敗でもない。
お前がやりたいことはたぶんこう。getsよりfgetsの方が良いが。
if (gets(buf) == NULL || !strcmp(buf, ""))
break;
0677669
NGNG0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNGそこで関数化ですよ。
inline bool Gets(char *p)
{
return (gets(buf) == NULL || !strcmp(buf, "");
}
0681デフォルトの名無しさん
NGNG0682669
NGNG何か騙りがたくさんいますが。
getsで読み込んだ時、何も無かった場合のエラー処理がしたかったのです。
676さんの方法でいけそうです。
ありがとうございました。
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNGこう?
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNGint aaa();
int main() { return aaa(); }
int aaa() { return 0; }
というようなファイルをコンパイルすると
プロトタイプ宣言のない関数という警告がでます。
プロトタイプ宣言を int test(void); とするか、
-P オプションで C++ とみなしてコンパイルすると
出ないのですが、VC6 や gcc ではこんなのはでません。
bcc の C は古い仕様だからなのですか?
0695デフォルトの名無しさん
NGNG○ int aaa(void);
0696デフォルトの名無しさん
NGNGいえ、gccでもオプションを調整すれば出ます。
つーか、Cはプロトタイプ宣言必須じゃないからね。
引き数無しのプロトタイプはvoidを明記する必要があるわけさ。
0697694
NGNG0698デフォルトの名無しさん
NGNG文書ファイルに文字を上書きをする場合は,単にwrite()で書き込みをすればそれで十分と思ったのですが,
文書ファイルに文字を挿入する場合っていったいどういう処理が行われているんでしょうか?
そのまんま考えてみると,挿入された文字以降のデータを全て移動させないといけないはずなんで,それってものすごい効率悪い処理だな〜って思い,気になってしまいました.
0699デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1095843584/560
なぜ時間差でマルチする?
0700デフォルトの名無しさん
NGNG内部では行単位でリストに格納している
やたら長い行だとそれでも効率悪いがそんな文章は滅多にない
0701デフォルトの名無しさん
NGNGvoid (*func)(void) = func1; などとしたとき、
func()
↑と
(*func)()
↑とではどう違いますか?
0702デフォルトの名無しさん
NGNGどちらも結果は同じなので、今は書きたい方を書いていいことになってます。
0703デフォルトの名無しさん
NGNGこっちのスレだとwrite()の時点でスレ違い。
つーか、あっちでほぼ答が出てるのに何故そのままコピペ?
で、あっちでも書いたけど、普通は入出力を別のファイルにするから問題にならない。
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG同じだよ。
俺はポインタを通していることを隠したくないんで後者だな。
あくまで個人的な気持ちで、周りに負担をかけてまで突っ張りはしないが。
0706デフォルトの名無しさん
NGNG区別してないって奴ね。言語の決めの問題。
0707デフォルトの名無しさん
NGNGハァ?????????????????????
wwwwwwwwwww
ぷ
0708デフォルトの名無しさん
NGNG706 がわけわかめってとこには同意だが、
おまいさんもちゃんと技術的な話を入れないと同類だよ
(*p).member って書き方も使うときは使う
(*pp)->member なんてメリットねえし
0709706
NGNGどちらも()を使うけど、構造体と構造体へのポインタでは
使う演算子が違うってことなんだけど。
・関数
func()
(*pfunc)()
・構造体
s.member
ps->member
0710706
NGNG関数へのポインタの場合は
pfunc()
でも可。
0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNGあります。
ないとも言えます。
文字列を先頭から舐めていけばなんとかなるでしょう。
0714デフォルトの名無しさん
NGNGユニコードは知らん
0715デフォルトの名無しさん
NGNGttp://www.rtpro.yamaha.co.jp/RT/docs/misc/kanji-sjis.html
0716デフォルトの名無しさん
NGNGインクルード ファイルを開けません。'stdbool.h': No such file or directory
とエラーが出てしまいます。
VC7.1 では stdbool は使えないのでしょうか?
0717宿題47
NGNG宿題46かな?
VCだとPOSIX独自のインクルードファイルがないから取り敢えずこれでも突っ込んどいて。
--
/* dummy stdbool.h for no POSIX env.. */
#ifndef STD_BOOL_H
#define STD_BOOL_H
typedef enum {false, true} bool;
#endif
0718デフォルトの名無しさん
NGNGstdbool.hは今やC99で標準ライブラリに取り込まれた。
もちろんVCは非対応だが。
0719717
NGNGふむ、情報THX。
C99に対応しているSun-OSのccで見つからないって言われたからないもんかと思ってたよ。
#そういえばC99フル対応のオプションはつけてないなぁ。その所為かな?
0721デフォルトの名無しさん
NGNG礼くらいちゃんと言え
0722デフォルトの名無しさん
NGNG0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNG礼を言えと言っているのだ
0725デフォルトの名無しさん
NGNG周公を学びなさい。
あなたがたに不足しています。
0726デフォルトの名無しさん
NGNGなにそれ。
要点いってくれないかなー
0727デフォルトの名無しさん
NGNGただ、学びなさい。
それが貴方に必要なことです。
学べばそういう言動はなくなるでしょう。
0728デフォルトの名無しさん
NGNGばっかじゃねーの?
0729デフォルトの名無しさん
NGNG学びなさい。
0730デフォルトの名無しさん
NGNG学びなさい。
0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNG学びなさい。
0733デフォルトの名無しさん
NGNG学びなさい。
0734デフォルトの名無しさん
NGNGもう終わり?
0735デフォルトの名無しさん
NGNG宿題を他人にやらせる。これ最低
0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNG仕方が無いじゃないか
このスレ無かったら、CやC++のスレが宿題であふれちゃうぜ
0738デフォルトの名無しさん
NGNGここは宿題スレじゃないが。
何時間寝てないですか。
0739デフォルトの名無しさん
NGNGstruct {
char n[20]; int i;
} test[] = {
{"A", 1},
};
を indent 使って整形すると, (いろいろオプションは試したのですが)
struct
{
char n[20];
int i;
} test[] =
{
{
"A", 1},};
となります.
関数は
func(void)
{
となって欲しいんですが,
構造体は
struct {
となって欲しいんです.
何かテクがありますか?
0740デフォルトの名無しさん
NGNG自分で作れば?
0741デフォルトの名無しさん
NGNGないのね
0742デフォルトの名無しさん
NGNGCygwinを使わずに実現する方法はありますか?
0743デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNGVMって何?
VirtualMachine?
VMWare?
人にわかるように書いてほしいものだ。
0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNGSFU
0748デフォルトの名無しさん
NGNGどうやってソレでforkを実現するのだ?
0749デフォルトの名無しさん
NGNGforkで喰えば
0750デフォルトの名無しさん
NGNGCygwinで使えたっけ?できなかったような?
0751デフォルトの名無しさん
NGNG>>742
Cygwinではこうやって実装してる
http://www.sixnine.net/cygwin/translation/cygwin-ug-net/highlights.html
親プロセスが子プロセスを fork する際に最初に発生する作業は、
親プロセスが子プロセスのために Cygwin のプロセステーブル内の領域を初期化するすることです。
それから、Win32 の CreateProcess 呼び出しを使用して、サスペンド状態の子プロセスを作成します。
次に、親プロセスは自分自身のコンテキストを保持するために setjmp を呼び出し、
Cygwin の共有メモリ領域 (Cygwin の全てのタスクの間で共有される) にこのコンテキストへのポインタを設定します。
そして、親プロセス自身のアドレス領域からサスペンド状態の子プロセスのアドレス領域へとコピーすることで、
子プロセスの .data セクション及び .bss セクションを埋めます。
子プロセスのアドレス領域が初期化された後、子プロセスが実行され、その間親プロセスはミューテックスを使用して待機します。
子プロセスは自分自身が fork されたことを知ると、保存されたジャンプバッファを使用して longjump します。
子プロセスは親プロセスが待機しているミューテックスをセットし、もう一つのミューテックスをブロックします。
これは親プロセスに対して、子プロセスが親プロセスのスタックとヒープをコピーし終わったことを知らせるシグナルとなり、
その後、親プロセスは子プロセスが待機していたミューテックスをリリースして fork 呼び出しから復帰します。
最後に、子プロセスは最後のミューテックスのブロックから復帰し、共有領域を使用して渡されたメモリマップ済み領域を再生成して、
自分自身の fork から復帰します。
あとはCygwinのソース読め
0752初心者
NGNG0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNG機種も環境も書いてないのに回答できるわけないだろ。
0755デフォルトの名無しさん
NGNG(2)ある色の濃さ以上のみを表示する。
以上
0756デフォルトの名無しさん
NGNG白黒って、本当にモノクロームなのか。それともグレイスケールなのか。
それによってかなり違う。
後者なら簡単なので説明略。
前者なら、濃い部分=点の密度の高い部分として
>>753のいうように小さなブロック内の色の平均をとる。モザイクみたいに。
0757test ◆.CzKQna1OU
NGNG0758test ◆pAe7pK8jnY
NGNG0759デフォルトの名無しさん
NGNG機種とか環境に依存すると思うなら素直に追い払えばいいのに
0760デフォルトの名無しさん
NGNGなにを勉強すればよろしいでしょうか?ポインタの基礎程度までの知識はあるつもりです
なにか良い書籍や、作っといたほうがいいプログラムがあれば教えて下さい
0761デフォルトの名無しさん
NGNGそこまで分かってるなら後は研修で習うんじゃないか?
0762デフォルトの名無しさん
NGNGその会社で何をやってるかわからないのに、助言できんわ。
0763デフォルトの名無しさん
NGNG多分にスレ違いな気がするけど。
0764デフォルトの名無しさん
NGNG> ポインタの基礎程度までの知識はあるつもりです
まずはポインタを便利に使ったプログラムを紹介してみては?
アイディアが浮かばないならば
そのへんを勉強すればいいと思うし
0765デフォルトの名無しさん
NGNGとにかく基本をしっかり
・二重ポインタ
・構造体の配列
・分割コンパイル
・アルゴリズム(ソート、圧縮、行列、etc...)
スタイルは入社後でないと無理
実行環境は配属先が決まらないと雲を掴むような話
デバドラあたりがんがん作ってたりする位ならまだしも
ちょっとかじってる程度ならどれやっててもないよりまし位
0766デフォルトの名無しさん
NGNG加えて、行列とポインタの区別かな
0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNGそれC++のSTLのこと言ってる?
0771デフォルトの名無しさん
NGNG0772デフォルトの名無しさん
NGNG空気嫁
0773デフォルトの名無しさん
NGNGこちらへどうぞ。
http://pc5.2ch.net/test/read.cgi/prog/1094732728/l50
0774デフォルトの名無しさん
NGNG煽りじゃないよ。
どのくらいを知っていると「基礎」って言えるんだろう。
int *abc; と宣言するとポインタ変数になります。 くらいで基礎?
0775デフォルトの名無しさん
NGNG俺の特にオススメは
1:プログラミング言語C 、共立出版株式会社、カーニハン&リッチー
2:Cプログラミング専門課程、技術評論社 、藤原博文
3:Cプログラミング診断室 、技術評論社 、藤原博文
の3冊、どれも¥3000でジャリ銭釣りが来る値段。
1はANSI規格本なので俺はC言語で仕事する時は必携と思ってる、
が翻訳本の常かチョット読みづらい。
2、学生の時ポインタが理解し切れなかったとき、これで
C言語のメモリを意識するという意味を理解した。
関数も配列も構造体もポインタも多重だろうが
全ては所詮メモリと悟りたければオススメ。
俺はこれでCを飛躍的に開眼した。
3、これはダメなプログラムの見本集の意味合いも強いので、
自分を戒めるために時々再読するためにオススメ。
他にも色々あるが取り合えずこんだけ
0776デフォルトの名無しさん
NGNGメモリがイメージできるかどうか
0777デフォルトの名無しさん
NGNGプロンプト画面で良いから
入力/閲覧が出来る日記プログラム作ったら?
・ファイルの入出力
・画面表示
・ちょっとしたDB設計
・構造体の設計
・配列のポインタ
・構造体のポインタ配列の繋げ変え
・メモリの確保
etc・・・
結構いろいろな事が出来ると思うぞ。
>>774
ポインタの基礎って言うと
実体とアドレスだから
char *cP = Null; の *cP と cP の意味知ってれば良いんでない?
ホントに最低の基礎だが。
0778デフォルトの名無しさん
NGNG1:規格本としてしか利用しないなら規格本を買えばいいので不要。或いはManOnWWWでいい。
2:これでもいいけどこの辺はひとそれぞれかな。
3:Webで読めるから不要。一度通しで読みたいなら借りれば充分。
>>760
「ダブルポインタなら大丈夫です」と自信ありげに面接のときに言ってた香具師がいたが、
入社してから「トリプルポインタはよく判らないんですよぉ」と言いやがった。
こういうのは、ポインタの基礎ができていない典型。
まぁ、余裕があるなら何かテキストファイルの加工をするようなツールでも作ってみたら?
その辺りのイメージが湧かないなら「プログラミング作法」を読んでみてもいいかと。
#但し、言語がRatforなのでコード丸写しはできないが。
##私自身は、そのお蔭でより勉強になったし知らない言語に対する恐怖が減ったが。
その会社がもし合わないようなら就職フェアで待ってるからw
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNGC言語歴13年の自分ですが「ダブルポインタ」「トリプルポインタ」と
いう言葉は初耳。なにそれ?
0781デフォルトの名無しさん
NGNGポインタはアドレスを格納するための「変数」で、
配列はアドレスを示す「ラベル」の働きをすることを認識できればいい。
char* pc;
char ac[10];
pc = ac; // ポインタ変数pcに配列acのアドレスを代入する
因みにポインタ変数のバイト数は不定だが、4バイトであることが多い。
作っておいた方がいいプログラムはファイルの16進ダンプかな?
0782デフォルトの名無しさん
NGNG>>760 にススメたのを評価するは分かるが、
何故「不要」までいいだすの?ナゾ・・・
それに1.に関して「規格本を買えば良い」ってアンタ・・・
この本の意味や知らないだろ?amazonで良いから見て来いよ。
今更「知ってる」言っても嘘バレバレだぞ
0783デフォルトの名無しさん
NGNGポインタのポインタのポインタは
単純にポインタのポインタでいいんじゃないの?
どっちもポインタ型なわけだし
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNG俺は 778 ではないが、K&R が「規格本」という >>775 の発言は明白に誤り
C の標準を定義している文書は規格本ではなく規格票といい
C の規格票を取り寄せるときに指定する文書番号は ISO/IEC9899 もしくは JIS X3010
実際に C で開発をするにあたっては規格を確認することはもちろんだが、
処理系に特有のことを調べる必要も出てくる
そういう場合にも参照すべきは K&R ではなく、その処理系のマニュアル
K&R が有用なのはあくまで C を勉強中のテキストとして用いたときで
そんなのがまだ必要なレベルで仕事している人の苦労は察して余りある
0786デフォルトの名無しさん
NGNGどうにも煽りたいんだろうけど。
0787デフォルトの名無しさん
NGNGいんたーふぇーすで使うのが良い。
あぽいんとめんとを取っておかないとえらーになり
きなくさいことに暴走する事もある。
あの星をつかみたいなら
いでたちを綺麗に整えば
かすかに手が届きそうかと思う。2列。
0788778
NGNG実際にそういった香具師がいるんだが、私もそのとき(面接)初めて耳にしたよ。
>>782
K&Rが何かは知ってるよ。>775を皮肉りたかっただけさ。
#尤も、改訂版は買ってないし通読してはいないが。
>>783
私も同意。ポインタを理解できていれば、ポインタのポインタもポインタに変わりがないことくらい判るからね。
>>787
ご愁傷様です。
0789デフォルトの名無しさん
NGNG日下部先生の「作ってわかるCプログラミング」技術評論社
がいちばんわかりやすかったな。
後輩にもそれを読ませてる。
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNGint main(void){
float f;
for(f= 1.0;f>=0.1;f=f-0.1){
printf(" %f \n",f);
}
}
の実行結果が
1.000000
0.900000
0.800000
0.700000
0.600000
0.500000
0.400000
0.300000
0.200000
となり0.100000が出力されません。なぜそうなるか教えてください
0792デフォルトの名無しさん
NGNG誤差
0793デフォルトの名無しさん
NGNGfloatの演算は10進演算ではないから誤差が出る。
forループの中でfを使いたいなら、
for (int i = 10; i >= 1; i--) {
f = i / 10.0;
}
としろ。
0794791
NGNG誤差なのは分かりますが、もう少し詳しく教えてください。
逆にfloat f;
for(f = 0.1;f <= 1.0;f = f+0.1){
printf(" %f \n",f);
}
としたときも 0.100000 〜 0.900000 までしか出力されません。
0796デフォルトの名無しさん
NGNG>>1のリンク先は当然チェック済みなんだろうな?
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNGttp://pc21.nikkeibp.co.jp/special/gosa/
言語は変わるが主旨は同じだ
たっぷり30分は考えるといい
0799デフォルトの名無しさん
NGNGていうか行列からしてよくわかんないんだけど。
0800デフォルトの名無しさん
NGNG「0.1」は2進数で表せないから。
0801デフォルトの名無しさん
NGNG0.1 を 2進数 で表してごらん
0802デフォルトの名無しさん
NGNG質問の意味わかってるのかな
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNGどのみち、それ以外の説明ないが
0805デフォルトの名無しさん
NGNGただし、ここで言う等値比較とは == != <= >= ! を指す
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG別におかしくない。浮動小数の内部表現形式が違うだけ。たぶん。
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNG嘘をつくな
printfの書式制御文字列と出力が一致しない
0811デフォルトの名無しさん
NGNG特定の環境では'\\'を書き込もうとすると'\'に置き換えられるからしょうがねぇべさ。
0812デフォルトの名無しさん
NGNG3DCCCCCD 00111101 11001100 11001100 11001101 0.100000 ← 0.1
3F800000 00111111 10000000 00000000 00000000 1.000000
3F666666 00111111 01100110 01100110 01100110 0.900000
3F4CCCCC 00111111 01001100 11001100 11001100 0.800000
3F333332 00111111 00110011 00110011 00110010 0.700000
3F199998 00111111 00011001 10011001 10011000 0.600000
3EFFFFFD 00111110 11111111 11111111 11111101 0.500000
3ECCCCCA 00111110 11001100 11001100 11001010 0.400000
3E999997 00111110 10011001 10011001 10010111 0.300000
3E4CCCC8 00111110 01001100 11001100 11001000 0.200000
3DCCCCC3 00111101 11001100 11001100 11000011 0.100000 ← 10回目のf
ってな感じで、10回目のfは0.1より小さいからforループを抜ける。
0813デフォルトの名無しさん
NGNG嘘をつくな
\\n でそんな出力など出るものか
0814デフォルトの名無しさん
NGNGなんか基礎本サヨナラ&紙媒体持たない派が多いみたいだけど
使える言語の基礎確認本は1冊くらい手元に置いておかないの?
それと、金融系の仕事が多く自前PC持ち込めなかったり環境制
限が厳しい俺には紙媒体はまだまだ現役だよ。
0815デフォルトの名無しさん
NGNG金融系って説得力の補強のつもりで言ってるのか?
物事を確認すべきときの情報源の選択に関して論外な発言をしながらでは逆効果にしかなってないぞ
0816デフォルトの名無しさん
NGNG全部手元に置いていたらいくらスペースがあっても足りない。
0817デフォルトの名無しさん
NGNG意味分からん
0818デフォルトの名無しさん
NGNG繰り返す
物事を確認すべきときの情報源の選択に関して論外な発言をしながらでは逆効果にしかなってないぞ
0819デフォルトの名無しさん
NGNG一次情報って言ってるんだが、本気で意味わからないのか?
0820デフォルトの名無しさん
NGNGwwwでトロトロ検索閲覧するより、ずっと楽
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNGwww って誰が言い出したんだ?
相次ぐ金融系のシステムトラブルはもしかして
1人のアフォに業界全体が振り回されている痛い構図か?
0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNGC言語はクリトリス言語の略ですか?
0827デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNGB
C
D
Z 言語までいくとあれか? 死姦とか?
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNGブラウザの話ね。'\\'と書いたのは勇み足。
'\n'と書こうとして'\n'になったんでしょって話。
0831デフォルトの名無しさん
NGNGww
wwwww
w
wwwwwwwwww
www
wwww
wwwww
0832デフォルトの名無しさん
NGNG…
while(fscanf(fp, "%c", c)==1){
printf("%c", c);
}
…
途中にfscanfがあるのですが、whileを抜けません。ファイルの終わりまで来ても
1を返し続けているようです。ファイルの終わりでwhileを抜けるにはどうしたらよい
ですか?
0833デフォルトの名無しさん
NGNGじゃダメかい?
0834デフォルトの名無しさん
NGNGそれに欲を言えば(f)getc/putcharにしろ。
0835デフォルトの名無しさん
NGNGプ
某に毒されてるだけだって
正直に言えよ、ホモ野郎w
0836デフォルトの名無しさん
NGNG半可通ほど居丈高の法則ですな。
0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNG|
1○\
| \
2 ○―○3
上図のように、任意の数のノード数がランダムにリンク(1がリンクしている状態)
するネットワークである始点から終点までの経路長を求めたい。
例えば、0が始点だったら1は経路長1、2と3は経路長2。
ランダムなネットワークの図を配列とfor文を用いて
|0123
―+――――
0|―100
1|1―11
2|01―1
3|011―
という具合に生成することはできたんですけど、
肝心の経路長を求める部分がわかりません。
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNGそれは、終点ノードまでの最短の経路長ってことでいいのかな?
0841838
NGNGそうです。
無限ループで値が割り振られていない隣り合うノードに1、2…と値を割り振っていって
最終的に割り振るノードが無くなったら終了すればいけると思うんですけど…
ネットワーク図のコピーをとって、値を割り振ったノードへのリンクを消していく(1を0にする)
既に値が入っている場合は無視する部分のアルゴリズムをプログラムで表現するのが
かなり難しいです…
0843838
NGNG0844デフォルトの名無しさん
NGNG全ノードを辿ることが出来てるなら、その時点で経路長は分かってるはずだが
0845838
NGNGごちゃごちゃやってんと、プログラム自体晒せや。
0846デフォルトの名無しさん
NGNGつーか、別にマルチでもいいんだよ
あなたがどこで何を聞こうが、それはあなたの主権だし
色んな人に聞いて回るのは聞き込み調査の基本だよ
収穫があってもなくても会釈くらいしろって話に過熱したバカガキが
マルチ=無礼者の判断基準を勝手に制定したがっているだけ
バカガキの必死=自演の大合唱
これのほうが説得力ありすぎるのはみんなわかってる
0847デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNG既出も既出、大既出だよ。
0855デフォルトの名無しさん
NGNG一人で過去ログ読んでろオナニー小僧
0856デフォルトの名無しさん
NGNG何この人
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG関数内で配列Aを逆順した配列Bを作るにはどうすれば良いですか?
0859838 ◆e.FqsY.OU2
NGNGトリップつけました。
>>844
経路長は辿っていけば分かるんですけど、
最短経路長を出すのに
無限ループ(隣のノードが無くなるまで){
隣のノードに経路長を記録
隣のノード番号を配列に記録
}
>>847
ダイクストラ法も調べたんですけど、
ランダムに生成されるネットワークである点と
向きが無い点、リンクの長さが均一な点が違いまして…
参考にはなったんですけど。
0860デフォルトの名無しさん
NGNG0861838 ◆e.FqsY.OU2
NGNG経路長は辿っていけば分かるんですけど、
最短経路長を出すのが上手くいかなくて…
無限ループ(隣のノードが無くなるまで){
隣のノードに経路長を記録
隣のノード番号を配列に記録
}
とやればうまくできそうなんですけど…
0862デフォルトの名無しさん
NGNG大部分のヲタは実際にはデブではない。
0863デフォルトの名無しさん
NGNG始点からノードnまでの最短経路をa[n]とすると、
各ノード(仮にk)について、周辺ノード(仮にm1, m2…mn)との関係は
a[k] = min(a[m1], a[m2]…,a[mn]) + 1
この関係をそのまま再帰関数にすればいいのでは
0864デフォルトの名無しさん
NGNGよろしくお願いします。
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNG0、1とかをノードと名付けたとして、ノードを結ぶ線に番号つけて、
その番号の順列組み合わせをしていったらどうかね。
その順列組み合わせのうち
・始点または終点がノードを共有してないもの
・これまでに出てきたもの
を最初に省いちゃう。線の数が距離ね。
順次計算していって、えーと終了条件が問題っすね。
線の数に等しくなったら終了なのは明らかだけど、
それ以前に終わる条件があるようなきもする。
0867デフォルトの名無しさん
NGNGAに隣接する点をマークする(距離1)。
距離1に隣接し、かつまだマークされていない点をマークする(距離2)。
以下Bに到達するまで。
Aからだけ行うよりも、
AとB両方から歩み寄るほうが速い事が期待できる。
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNGmemsetを使う
完全に文字列としてしか使わないならa[0]='\0';でも見かけ上は同じだが
0870デフォルトの名無しさん
NGNGとりあえず、文字配列てことだから、
void strclear(char *s)
{
*s = '\0';
}
でどうだ。
0871デフォルトの名無しさん
NGNG空にする時に文字配列の一つ一つに'\0'を入れていたのですが、'\0'が反映されてないのか配列に数字が残ってる事があったもので…
とりあえずmemsetを使ってみたところきちんとできました。念のため確認したいのですが、char型のa[20]を初期化する場合、
memset( a , 0 , 99 * sizeof(char) );
で大丈夫でしょうか?
0872871
NGNG0873デフォルトの名無しさん
NGNG'\0'が反映されてないのか配列に数字が残って
'\0'が反映されてないのか配列に数字が残って
'\0'が反映されてないのか配列に数字が残って
'\0'が反映されてないのか配列に数字が残って
0874デフォルトの名無しさん
NGNG99→20で一応正解。ただ、規格によりsizeof(char)はつねに1なので、省略してもOK
#これは場合にもよる。趣味とかコーディングルールとか。
aが確実に配列なのであれば、
memset(a, 0, sizeof(a));
のほうがいいかも。
0875デフォルトの名無しさん
NGNGいつも思うんだけど、
sizeof( T[N] )==sizeof( T )*N って、保証されてるんだっけ?
これが強制されると配列内にコントロールデータを埋め込むことが出来なくなるよね。
(実際に埋め込んでるコンパイラは見たこと無いけど)
かといってこれが保証されてないと
N = sizeof( array )/sizeof( array[0] ) が軒並み破綻するわけだけど。
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNGうーん、コントロールデータがわからん。もうちょっと詳しく。
ただ、少なくとも
sometype A[N];
という、sometype型の配列があったときは
sizeof(A) == sizeof(sometype) * N
が真になることは保証されてる。
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG配列の要素数を求めるのに使える てな例が載ってたな
0882デフォルトの名無しさん
NGNGと釘を刺してみる
0883デフォルトの名無しさん
NGNG経過時間を測定する関数を作りたい
scanfを利用して、文字か整数かの入力待ちでなら作れそうなんですけど
どうやってリターンの入力待ちを行うのでしょうか
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNGID無いのも相まって少数の人が必死に書いてる感じ。
特に高圧的な文体数人が目立つ、朝から晩まで筆まめだな仕事しろよ(w
まぁこの業界の教えたがりは大抵居丈高だが
0887デフォルトの名無しさん
NGNGコントロールデータ埋め込んで例えば何がしたいの?
実行時 sizeof ならコントロールデータをカウントしない値を返せばいいし
配列と称して実はリストとか言い出すと、連続領域ではなくなるわけで
サイズはと訊かれても答えようがなかったりするよな
ちなみに sizeof array / sizeof array[0] は規格票の文中でも使ってるぞ
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNGどこかで苛められたのかい?可哀相に。ヨシヨシ
0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNG多少分かるようになった初心者は、お前こんなのも分からないのかよと馬鹿にしつつ自分の知識をひけらかしたくなる。
もう少しすると興味が無くなるのでROMるかスレ自体からいったん離れる。
さらにもう少しすると煽りに徹するようになる。答えは書かない。ピンポイントでヒントだけ教えてやる。
安易に答えを教えてしまうと質問者のためにならないから。
さらにもう少しすると再びROMる。
すっかり古参と化した彼らはスレと住人たちのの成長を生温かく見守るようになる。
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNGなにげにワロタ
0894デフォルトの名無しさん
NGNG>sizeof array / sizeof array[0]
俺はいつも numberof って名前でマクロ書いてる。
つか、どうせなら標準マクロにしてくれればよかったのに。
// offsetof は標準化されてるのになあ…
0895デフォルトの名無しさん
NGNG俺ここ
0896デフォルトの名無しさん
NGNG895は大馬鹿。
0897デフォルトの名無しさん
NGNG激しく同意
0898デフォルトの名無しさん
NGNG激しく同位
0899デフォルトの名無しさん
NGNG0900タヌキ
NGNGいくら叩かれたって煽られてもいいです知りたいのです!
CGIについてなのですが
http://homepage1.nifty.com/kodayan/cgi/con2/pass1source.htm
このページを参照してくれませんでしょうか
このCGIの設置方法を教えてください
AAA!CAFEというところでCGIを使いたいのですが
0901デフォルトの名無しさん
NGNGそんなに寂しいのか?
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNGなにか手はあるのでしょか。
それとも fread が無理だとして、簡易な別の手段とか。
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNGfreadは読み込めた個数を返すよ。EOFは返さない。
0908デフォルトの名無しさん
NGNG>708は存在する意味が分からない。
0909デフォルトの名無しさん
NGNGスルーできない理由は何?
0910デフォルトの名無しさん
NGNGC言語で作成したプログラムをVC++でコンパイルして実行ファイルだけ抜き出す。
実行ファイル(exeファイル)だけから作製したプログラムを逆算することはできるのでしょうか?
できないと思うのですが、それで正しいのでしょうか?
0911デフォルトの名無しさん
NGNGC言語で作成したプログラムをVC++でコンパイルして実行ファイルだけ抜き出す。
実行ファイル(exeファイル)だけから作製したプログラムを逆算することはできるのでしょうか?
できないと思うのですが、それで正しいのでしょうか?
0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGC言語で作成したプログラムをVC++でコンパイルして実行ファイルだけ抜き出す。
実行ファイル(exeファイル)だけから作製したプログラムを逆算することはできるのでしょうか?
できないと思うのですが、それで正しいのでしょうか?
0914デフォルトの名無しさん
NGNGできない。
Releaseビルドされたものは
dumpbin /disasm kusosure.exe
で逆アセンブルまではできるが逆コンパイルは
シンボルファイルがないと無理
0915デフォルトの名無しさん
NGNGOh!産休!
やはりできないのですね。
じゃ、例えばWindowsとかのプログラムがCD-ROMから読み取ることができるなんてもなしですね。
0916デフォルトの名無しさん
NGNGソースファイルを再現することはほぼ不可能と言っているのだよ。
0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNGvoid shuffle(){
char mozi[50][50],mozi2[50]; //ファイルの中身は50文字*50行と仮定
int kazu,kazu2,loop;
FILE *fp;
fp = fopen("test.txt" , "r"); //ファイルを開く
//ファイルから読み込む
for(loop=0;loop<50;loop++){
fgets( mozi[loop] , 50 , fp);
}
//ファイルを閉じる
fclose(fp);
fp = fopen("test.txt", "w"); //ファイルを開く
//ランダムに並べ替える
for(loop=0;loop<20;loop++){
kazu = GetRand(50); //GetRand(50)で0〜50の間で乱数を取得
kazu2 = GetRand(50);
strcpy(mozi2 , mozi[kazu]);
strcpy(mozi[kazu] , mozi[kazu2]);
strcpy(mozi[kazu2] , mozi2);
}
//ファイルへ書き込み
for(loop=0;loop<50;loop++){
fputs(mozi[loop] , fp);
}
//ファイルを閉じる
fclose(fp);
}
0919デフォルトの名無しさん
NGNGどこでどんなエラーが出るか書け!クソめ!
0920デフォルトの名無しさん
NGNG>kazu = GetRand(50); //GetRand(50)で0〜50の間で乱数を取得
>kazu2 = GetRand(50);
ここぢゃね?
0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNG質問の仕方すら分かんねーのか?
0923918
NGNG「test.exe の 0xcccccccc で初回の例外が発生しました : 0xC0000005: 場所 0xcccccccc を読み込み中にアクセス違反が発生しました」
「test.exe の 0xcccccccc でハンドルされていない例外が発生しました : 0xC0000005: 場所 0xcccccccc を読み込み中にアクセス違反が発生しました。」
の二つが出ていて具体的な場所は表示されてませんでした。
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG>>920のとこじゃね?
0926918
NGNG。レスくださった方々ありがとうございます。
0927デフォルトの名無しさん
NGNG...いや、そっちぢゃねーだろ
>GetRandが50を返してるんじゃね?
って読めてる?
0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNGmain()
{
int i;
for(i=0;i<10000;i++){
printf(゙ヌルポ\n゙);
}
}
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNGできるよ
const char *fusianasan(void)
{
return "mojiretu";
}
問題はやった奴が何が起きるのかを理解しているかであって
言語の不備じゃない
0932java to c
NGNGありがとう。
参照を返せるってことですね
0933デフォルトの名無しさん
NGNGstd::string fusianasan()
{
std::string str;
str = "mojiretu";
return str;
}
0934デフォルトの名無しさん
NGNGスレ違い
struct string
{
char mojiretu[256];
};
struct string fusianasan(void)
{
struct string kusosure = { "sine" };
return kusosure;
}
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNG別物。拡張子は *.lib とか。複数の *.obj をいい感じに連結してある。
と言っても、リンカに渡すときは殊更 *.obj と *.lib を区別する必要もない。
0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG256文字迄なのかよ!
0940デフォルトの名無しさん
NGNGそもそも、fusianasann()はちゃんと動作するのか?
0941デフォルトの名無しさん
NGNGCで文字列を返したいときに
初心者が陥りやすい例を示しているのかと思ってスルーしてたんだが。
0942デフォルトの名無しさん
NGNGry しないで続きをどうぞ
何が起こると言い出すか見物の悪寒
0943デフォルトの名無しさん
NGNG「ローカル変数だ」と言えばこれ以上のくだくだしい説明はいらんと思うが。
こんな当然のことで高みの見物を決め込んでるとすれば、
それがおまえの技量ということだな。 プッ
では わかっていないリアル厨房のおまえのために書いてやろう。
~~~~~~~~~~~~~~~~~~
ローカル変数のアドレスを返しているが、関数から出てしまえばその領域は破棄される。
したがって親ルーチンがそれを受け取っても、この領域へのアクセスは違法となる。
ただし、偶然にも文字列が残ったままになっている可能性もあるので、
結果だけを見れば正常に動作することもある。が、違法行為だ。
わかったか、坊や。
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNG942とは違う人だが、どれの事を言ってるんだ?
0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNG>「ローカル変数だ」と言えばこれ以上のくだくだしい説明はいらんと思うが。
「違う。>>931 は文字列定数だし、>>934 は構造体返しだ」と言えば
これ以上のくだくだしい説明はいらなくなるな。
0948デフォルトの名無しさん
NGNGアドレスを返しているとはどれのことだい?
931 が返しているアドレスがローカル変数のアドレスだと言いたいの?
それとも 934 がアドレス返しだと言いたいの?
# 予想どおり、これは見物だw
0949デフォルトの名無しさん
NGNG文字列リテラルは静的記憶域期間だから>>931は大丈夫
他はダメ
0950デフォルトの名無しさん
NGNGこれ以上続けても荒れるだけ。
0951デフォルトの名無しさん
NGNGおいおい 943、これからが面白いところじゃないかw
0952デフォルトの名無しさん
NGNG文字列を返すには「誰か」が文字列用のバッファを確保しておかなければならない。
お勧めは1.
2.はお手軽だけどprintf("%s %s", foo(), foo())とやるとおかしなことになる(バッファがひとつしかないから)。
3.はあまり使われない方法でp = foo(); free(p); と見た目的にmalloc/freeが対になってないのでなんとなく不安。
1. 呼び出し側が確保
char *foo(char *buf, size_t buf_size){ return buf; }
2. static, global変数で確保
char *foo(){ static char buf[256]; return buf; }
char buf[256];
char *foo(){ return buf; }
3. 動的に確保
char *foo(){ char *p = malloc(256); return p; }
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNG0955946=950
NGNG構造体の値全部返しなんかでもめなくても、無知には笑って無視すりゃいいのに…
0956デフォルトの名無しさん
NGNGおいおい、世間が狭いってのは時として罪だな。
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNGで、943 さんよ 934 は何のアドレスを返しているんだい?
0959デフォルトの名無しさん
NGNGstrdup()は不安ですか?
0960デフォルトの名無しさん
NGNG初心者に毛が生え始めたばかりのころ。
0961デフォルトの名無しさん
NGNGそんなものCには無いから
0962デフォルトの名無しさん
NGNGあるじゃんw
きみの脳内ではISO/IEC9899で定義しない関数は「存在しない」ことになってるのか?
0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNGつ>>1
標準以外の話題は別スレにどうぞ。
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGhttp://qb5.2ch.net/test/read.cgi/sec2chd/1094197597/404
943・・・(・∀・)ニヤニヤ
0967デフォルトの名無しさん
NGNG> 初心者が陥りやすい例を示しているのかと思ってスルーしてたんだが。
たしかに初心者が陥りやすい罠のようだなw
0968デフォルトの名無しさん
NGNG面白すぎるぜこのやろう
0969デフォルトの名無しさん
NGNGC言語なら俺俺に聞け! Part 87
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNG0972あーあw
NGNG~~~~~~~~~~~~~~~~~~
0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNGいーや済まない
>結果だけを見れば正常に動作することもある。が、違法行為だ。
に対して、くだくだしい説明が必要だ
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG話はそれからだ。
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNG質問スレでやる話題じゃないよ。
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG0983悲しい。
NGNGそいや!!
http://nakagawamasaharu.hp.infoseek.co.jp/
0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNGどれぐらい時間がかかるものでしょうか。
最適化なしで 3 人月ぐらいですか?
0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNGどうやったら簡単にダウンロードできますか?
というか、Windowsで使えるんでしょうか??
0991デフォルトの名無しさん
NGNGこれ http://cygwin.com/setup.exe
を実行して、オプションに gcc を選択するだけ。
0992デフォルトの名無しさん
NGNGCygwin っていうのを勉強してみるといい。
Windows の gcc は Cygwin 上で使うのが一番いいんじゃないかな。
0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNGどういうこと?普通の質問だと思うんだけど。
0995デフォルトの名無しさん
NGNGあ、名前欄にはv(^o^i)dを入れてね。
0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1065535118/
1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。