C言語なら俺に聞け! Part 101
レス数が1000を超えています。これ以上書き込みはできません。
0001v(^o^i)d
05/01/31 08:37:54質問する前には最低限検索を。
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 100
http://pc5.2ch.net/test/read.cgi/tech/1106403600/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0002デフォルトの名無しさん
05/01/31 08:38:47gcc
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デフォルトの名無しさん
05/01/31 08:39:350004デフォルトの名無しさん
05/01/31 08:45:080005デフォルトの名無しさん
05/01/31 08:46:500006デフォルトの名無しさん
05/01/31 09:16:13出力したときに結果がすべて0になってしまいます。何も代入されないってのはおかしいので質問させていただきます。
以下はその探索に使用するプログラムを抜き出したものです。再帰を使ってます。
m番目にまだめぐってない点を見つけて、次に(m+1)番目に巡ってない無い点を・・・と探して行ってます。
具体的にはN*Nのます目に0(FALSE)を入れたあとで縦に点の番号、横に巡回の順番をとって、
点 n が m 番目に巡回したときに n行m列のます目に1(TURE)を入れていき、最後にその順番に従って距離計算、比較を行っています。
変数の説明ですが、s1、s2、d1、d2は大域で宣言し、 tは縦、yは横、s1は横(点側)から見たとき巡回が重複か否かを見ていて、s2はすでに回った点の番号を入れ、
d1は各点間の距離でこれはすでに計算されています。よろしくお願いします。
void search(int t){
int y,i,j;
for(y = 0; y < N; y++){
if(s1[y] == FALSE){
s1[y] = TURE; s2[t] = y;
if(t < N-1) search(t+1);
else{
for(i = 1; i < N; i++)
d2 += d1[s2[i-1]][s2[i]];
d2 += d1[s2[0]][s2[N-1]];
if(d2 < mini_d){
mini_d = d2;
for(j = 0; j < N; j++)
mini_s2[j] = s2[j]; d2 = 0;
}
}
s1[y] = FALSE;
}
}
}
0007デフォルトの名無しさん
05/01/31 09:20:37mainの最後にprintfでこの2つを出力しています。
0008デフォルトの名無しさん
05/01/31 10:17:310009デフォルトの名無しさん
05/01/31 10:22:02でもdefineでもそう定義してありました・・・
ここは直します
0010デフォルトの名無しさん
05/01/31 10:23:13まさか、mini_dが初期化されてなくて0のままって落ちじゃないよな?
ぱっと見よく判らんから、私なら極力グローバル変数を無くすように書き換えて、
各変数の生存期間を制限した上でそれぞれの挙動を確かめるだろうな。
#私ゃグローバル変数の挙動を追えるほど頭良くないんでね。
0011デフォルトの名無しさん
05/01/31 10:36:32mini_dは最初は0で初期化しましたけど、それじゃ比較できないよなってことで
適当に大きい数を最初に入れてます
それと自分で実験してみたんですが、大域でとった場合は関数の引数に入れなくても、
またreturnしなくても数値代入ができるようなのでそうしました。
/**/で説明入れてみます。
void search(int t){
int y,i,j;
for(y = 0; y < N; y++){
/*t番目に巡回したときにまだ回ってない点があるならそこにチェック(TRUE)を入れる*/
if(s1[y] == FALSE){
s1[y] = TURE; s2[t] = y;
/*まだ回りきってないなら次に行く点を探す*/
if(t < N-1) search(t+1);
/*回りきっていたら距離計算、比較*/
else{
for(i = 1; i < N; i++) d2 += d1[s2[i-1]][s2[i]];
d2 += d1[s2[0]][s2[N-1]];
if(d2 < mini_d){
mini_d = d2;
for(j = 0; j < N; j++) mini_s2[j] = s2[j]; d2 = 0;
}
}
/*バックトラックのために一個前に回った点の履歴を削除*/
s1[y] = FALSE;
}
}
}
001210
05/01/31 10:41:01大丈夫、そのコメントくらいは理解できたから。
それが正しいかどうか、グローバル変数も含めて挙動を推測するだけの頭はないがね。
で、私なりの方針を提示したわけだが、それを否定されたら私にできるアドバイスはもうないよ。
0013デフォルトの名無しさん
05/01/31 10:44:56わかりました
大域変数減らしてみます、ありがとうございました
まずはd2を。
0014デフォルトの名無しさん
05/01/31 13:59:14else{
d2 = 0; /* d2 はここで初期化しないとダメ。*/
for(i = 1; i < N; i++)
d2 += d1[s2[i-1]][s2[i]];
0015GANMEN ◆6JRRRjFXoU
05/01/31 14:12:400016デフォルトの名無しさん
05/01/31 14:16:40氏ねば?
0017デフォルトの名無しさん
05/01/31 14:58:55Web制作
http://pc5.2ch.net/hp/
0018デフォルトの名無しさん
05/01/31 16:09:53で、反対語は? > 大域
0019デフォルトの名無しさん
05/01/31 17:07:01局所変数
0020デフォルトの名無しさん
05/01/31 17:37:26質問お願いします。
文字をある長さまで指定した文字で充填することは可能でしょうか?
イメージ的にはoracle SQLのRPAD関数のような事がやりたいのですが…。
よろしくお願いします。
0021デフォルトの名無しさん
05/01/31 17:41:36memset()
0022デフォルトの名無しさん
05/01/31 17:42:04別に御仕着せの関数を使わないと、Cじゃなんもできないってわけじゃないんだから。
002320
05/01/31 17:47:28>21様
ご回答ありがとうございます。
21様の方法で試してみます。
>22様 もしうまくいかなければ自分で作ってみます。
どうもありがとうございました。
0024デフォルトの名無しさん
05/01/31 21:28:24関数の定義で記憶クラスを省略した場合は extern 扱いになりますが、
プロトタイプ宣言の場合も省略時は extern と考えていいですか?
ネットを回ってると、プロトタイプ宣言では関数の定義が外部にある場合は
extern、内部の場合は記憶クラスなしと言う記述があって混乱しています。
また、関数定義では extern、そのソース内のプロトタイプ宣言は static と
指定すると外部からは static 扱いになってるのはそのように決まってるのでしょうか。
早く出た順なのかな、と extern static と同じ関数をプロトタイプ宣言させて、
関数の宣言では extern としても static 扱いだったので…。
VCとBCCのコンパイラで試しました。
0025デフォルトの名無しさん
05/01/31 21:32:56staticは使うけど
0026デフォルトの名無しさん
05/01/31 22:07:41じゃなかったっけ
0027デフォルトの名無しさん
05/01/31 23:09:58扱いはしてない
0028デフォルトの名無しさん
05/01/31 23:15:27領域先頭アドレスさえ間違えなければ
サイズとか分からなくてもきちんとfreeできるものですか
char* p = NULL;
/* 4〜5層下の関数がpにmallocする */
test_func(p);
/* 大きさとか知らんけど解放 */
free(p);
0029デフォルトの名無しさん
05/01/31 23:16:260030デフォルトの名無しさん
05/01/31 23:18:05test_func(&p);
か
p=test_func();
003128
05/01/31 23:28:21mallocした領域の終端には
ボクには見えない機械様用のマーキングかなんかがきっと
あるのですね。
0032デフォルトの名無しさん
05/01/31 23:30:37http://www.kouno.jp/home/c_faq/c7.html
の7.26
0033デフォルトの名無しさん
05/01/31 23:35:57>>25
自分も普段は関数に extern は使ってないです。
プロトタイプ宣言で static を使ってる例ってネットじゃあまりみないですね。
>>26
それだと道理があいますね。なるほど。。。
>>27
リンク時に外部参照が未解決になるので static 扱いされて参照できない
のかと思ったのですが、もっと別の理由ということでしょうか。
0034デフォルトの名無しさん
05/01/31 23:44:57> プロトタイプ宣言で static を使ってる例
staticを付けると翻訳単位内でしか呼び出せなくなるのでどうせヘッダに宣言する意味がないから。
0035デフォルトの名無しさん
05/01/31 23:53:41unko.c
static void unko() { /*...*/ }
manko.c
mein() { unko(); }
manko.c では unko は暗黙に extern 宣言される
だからこそリンクでずっこける
^^^^^^^^^
0036デフォルトの名無しさん
05/02/01 00:10:02ヘッダに宣言しても確かに意味ないですね。
やったら各ソースで見つからないと怒られるのかな。。。後でやってみます。
関数が定義されているソース内のプロトタイプ宣言でも static は結構書いてないのが
多そうな気がするのですが、気のせいでしょうか。
>>35
記憶クラスを省略した場合は extern というのは一応分かってるつもりです。
プロトタイプ宣言の場合は、違う説明をしているサイトがあって混乱してますが。。。
自分が特に疑問に思ったのは下記のような場合です。(関数名はかえました。)
testA.c
static void testA(void); /* プロトタイプ宣言は static */
extern void testA(void) { /*...*/ } /* 関数宣言は extern */
testB.c
int main(void) { testA(); } /* 外部参照の未解決が発生。static が優先されてしまう。。。? */
003736
05/02/01 00:11:53は関数宣言ではなくて、関数定義の間違いでした。
0038デフォルトの名無しさん
05/02/01 00:19:350039デフォルトの名無しさん
05/02/01 01:08:46なりません
0040デフォルトの名無しさん
05/02/01 08:16:56ill-formedtって未定義って解釈でいいでしょうか。
プロトタイプ宣言と関数定義で記憶クラスが違うというのは普通しないですもんね。
>>39
関数で使用できる記憶クラスは extern と static だけですよね。
省略時に extern でないとすると static ってことでしょうか。さすがにそれは。。。
0041デフォルトの名無しさん
05/02/01 08:40:45全然ちがいます。
> 関数で使用できる記憶クラスは extern と static だけですよね。
いいえ
0042デフォルトの名無しさん
05/02/01 08:44:540043デフォルトの名無しさん
05/02/01 09:30:240044デフォルトの名無しさん
05/02/01 09:34:29教えて欲しい
0045デフォルトの名無しさん
05/02/01 09:35:450046デフォルトの名無しさん
05/02/01 11:45:54なにかソフトがいるのですか?
0047デフォルトの名無しさん
05/02/01 11:48:390048デフォルトの名無しさん
05/02/01 12:18:26非可逆です。
0049デフォルトの名無しさん
05/02/01 12:19:350050デフォルトの名無しさん
05/02/01 12:36:09>testB.c
> int main(void) { testA(); } /* 外部参照の未解決が発生。static が優先されてしまう。。。? */
プロトタイプを省略すると、
int を返す関数と解釈される。
つまり、「testB.c」では「int testA();」がないと言われるのは当然。
0051デフォルトの名無しさん
05/02/01 16:20:08#include <stdlib.h>
int main(void)
{
int i, r, j, c=0, n[6];
do {
r=rand()%42+1;
for(j=0;j<c;j++) {
if(c==0) break;
if(r==n[j]) break;
}
if(j==c) {
n[c]=r;
c++;
}
} while(c<6);
printf("%d %d %d %d %d %d", n[0], n[1], n[2], n[3], n[4], n[5]);
return 0;
}
ロト6の数字をランダムに作り出すプログラムを作ろうと思ってます。
何度やっても同じ数字しか出ないのですが、プログラム的な問題なんでしょうか?
0052デフォルトの名無しさん
05/02/01 16:34:550053デフォルトの名無しさん
05/02/01 16:36:19randの実装を100回くらい読んでみろ。
0054デフォルトの名無しさん
05/02/01 17:24:49malloc や calloc で cast 無しでメモリ領域を確保するとき、warning が出ないようにするには
どうすればよろしいのでしょうか?
コンパイラは gcc, g++ です。
0055デフォルトの名無しさん
05/02/01 17:27:25は?神でいいよ。
005654
05/02/01 17:34:19すみません、意味が分からないのですが・・・
コンパイル時に Warning が出て、正常にコンパイルできないのですが・・・
0057デフォルトの名無しさん
05/02/01 17:37:30どっちだよ
つか C++ じゃmalloc, calloc なんて使わねーしな
0058デフォルトの名無しさん
05/02/01 17:40:48mallocの返り値はvoid*型だよね。
で、君が確保したメモリ領域は何型で使うの?
例えば、int*型だったとしたら、そこにvoid*型を代入するのはおかしいよね。
いい?代入というのは左辺値も右辺値も同じ型でないといけないの。
mallocは確保したメモリ領域の先頭アドレスを返してくれるわけだけど、void*型を
int*型にキャストしてから代入しないといけないの。
warningとは、君がそういうことをしていないから警告しているわけ。
errorとは別物だよ。
0059デフォルトの名無しさん
05/02/01 17:42:48君が使わなくても使う人はいるけどネ。
0060デフォルトの名無しさん
05/02/01 17:45:49006154
05/02/01 17:50:55すみません、人(先生)が書いたプログラムなので。
基本的に C のプログラムなのですが、コメントに // を使ったり、
関数の途中で変数宣言したりするので、結局 g++ でコンパイルするしかないのです。
>>58
それは分かるのですが、double 型に int 型の変数を代入したときに自動的に型変換されるように、
malloc や calloc でも自動的に型変換してくれないものかと思ったのですが・・・
0062デフォルトの名無しさん
05/02/01 17:57:070063デフォルトの名無しさん
05/02/01 18:01:00いちいちキャストすんな ぼけ。
0064デフォルトの名無しさん
05/02/01 18:01:15うpろだ紹介しる。
誰か出してくれるだろ。
明日までに他の誰もうpしなかったら俺がやる。
0065デフォルトの名無しさん
05/02/01 18:08:08> それは分かるのですが、double 型に int 型の変数を代入したときに自動的に型変換されるように、
> malloc や calloc でも自動的に型変換してくれないものかと思ったのですが・・・
暗黙の型変換は、すべきでないところで暗黙の変換が行われることがあるため、
型を意識してプログラミングしなければならない。
しばしばバグの元になる。
暗黙の型変換はCの汚点の一つ。
0066デフォルトの名無しさん
05/02/01 18:11:44gccって一行コメントに未対応だったか?
俺が動かした環境だと、なぜか、Windowsからエミュレートしたら動かなかったけど
Warning出て欲しくなければ、コンパイラオプション(-?かな)をチェック。たぶん出来る。
0067デフォルトの名無しさん
05/02/01 18:18:33よろしこ。
ttp://up.isp.2ch.net/upload/c=03okari/index.cgi
0068デフォルトの名無しさん
05/02/01 18:26:21規格ではvoid *と任意のポインタとの相互の変換は暗黙のうちにやって良いことになっているけどね。
0069デフォルトの名無しさん
05/02/01 18:27:18>>65
0070デフォルトの名無しさん
05/02/01 18:32:10違った。日本語のコメントがあったから動かなかっただけだったと思う。
0071デフォルトの名無しさん
05/02/01 19:36:04嘘をつくな
warning はコンパイルを妨げないぞ
ある処理系では warning でもコンパイルを中止しろというオプションがあったりするが
それを自分で指定しておいて寝言ほざいてんじゃねえだろな
0072デフォルトの名無しさん
05/02/01 19:47:40「正常に」ってのが、警告無しにって意味じゃない?
まぁ、ソース変えずに警告だけ無くしたいなら、警告消えても消えなくても同じだけど
(∩ ゚д゚)アーアー警告しらなーい
って感じだし。
0073デフォルトの名無しさん
05/02/01 20:05:47忘れてるとか
0074デフォルトの名無しさん
05/02/01 20:27:33PerlやRubyなんか最悪。
Javaはキャストだらけでださい。
Cの方がよっぽどまし。
0075デフォルトの名無しさん
05/02/01 20:36:42int hoge;
int hoge_hoge()
{
int geho;
hoge=1;
geho=1;
}
int main(void)
{
hoge_hoge();
printf("%d", hoge);
}
とすれば、全ての関数の中でhogeが使えますが
関数内で定義したgehoはmainの中では使えませんよね?
関数内で作った変数を他の関数からも使えるようにすることはできないのでしょうか?
0076デフォルトの名無しさん
05/02/01 20:40:50いいえ。
0077デフォルトの名無しさん
05/02/01 20:41:120078デフォルトの名無しさん
05/02/01 20:43:12ありえねーッ
本読んでもわかんねーッ
0079デフォルトの名無しさん
05/02/01 20:44:31だれも答える必要ねーッ
0080デフォルトの名無しさん
05/02/01 20:55:16何のためにint hoge_hogeにしたの?
そういう気分だったから?
0081デフォルトの名無しさん
05/02/01 21:16:48>>41
ill-formedtって翻訳かけたら不適格って出てきました。全然違いますね。すみません。
関数で使用できる記憶クラスのくだりはスコープに関連した…が抜けてました。
自信がないですが、extern, static, と関数に使用できるのはあとtypedef・・・?
typedef では関数のポインタに対してで、関数に使用できるとなると違和感があります。
すみません、自分なにかすごい勘違いしてそうです。
>>44
googleで検索かけたら、上のほうに不明瞭と出てきてたので、未定義のことなのかなと
思ってしまいました。infoseek翻訳で調べたら不適格ですね。
となると、本来はコンパイルエラーにならないといけない・・・?
>>50
36の testB.c で記述抜けがありました。試したときは extern void testA(void);
という testA.c の関数定義にそったプロトタイプ宣言を入れてました。
家と会社にある本、解説サイトもこの辺あんまり書いてませんで、
42でも言われてますけど、本当に知りたいなら規格書を読むべきですよね。うーむ。
0082デフォルトの名無しさん
05/02/01 21:17:21C99も読んでねーのかよ。
0083デフォルトの名無しさん
05/02/01 21:52:32nについては、1〜20くらいを考えています。
0084デフォルトの名無しさん
05/02/01 21:55:12再帰すれば?
0085デフォルトの名無しさん
05/02/01 21:57:35roop()
{
int i;
for( i = 0; i < n; i++ )
{
}
0086デフォルトの名無しさん
05/02/01 22:03:190087デフォルトの名無しさん
05/02/01 22:05:40{
int i;
for( i = 0; i < n; i++ )
{
roop();
}
それで、変数ひとつ用意して、if文で規定値になるまで再帰する、みたいな条件を書いたんですが、
なにか変なことしてますか??
0088デフォルトの名無しさん
05/02/01 22:25:38面倒くさいのなら、ソース生成プログラム作れば?
0089デフォルトの名無しさん
05/02/01 22:27:33そんなことせんでもマクロで十分。
0090デフォルトの名無しさん
05/02/01 23:03:41帰ってきたら結論出てるかと思ったのにまだのようなので調べてみたよ。ISO/IEC 9899:1999 より。
> 6.9.1 Function definitions
> 4 The storage-class specifier, if any, in the declaration specifiers
> shall be either extern or static.
となってるので、関数定義につけられる記憶クラスは extern か static だけ。
> 5 If the declaration of an identifier for a function has no storage-class
> specifier, its linkage is determined exactly as if it were declared with
> the storage-class specifier extern.
なので、省略時は extern 扱い。
> 6.2.2 Linkages of identifiers
> 4 For an identifier declared with the storage-class specifier extern
> in a scope in which a prior declaration of that identifier is visible,
> if the prior declaration specifies internal or external linkage, the
> linkage of the identifier at the later declaration is the same as the
> linkage specified at the prior declaration. (後略)
となっているので、先行する宣言がある場合の extern は先行する宣言の
リンケージと同じになるから、 static の後の extern は許容された上、
static が優先されると思われ。一方、
> 3 If the declaration of a file scope identifier for an object or a
> function contains the storageclass specifier static, the identifier
> has internal linkage.
> 7 If, within a translation unit, the same identifier appears with both
> internal and external linkage, the behavior is undefined.
となっているので、extern の後の static は ill-formed ではないが、undefined
だと思われ。gcc だと警告が出るね。
0091デフォルトの名無しさん
05/02/01 23:05:30再帰を使うというのもありだと思う。特に n が可変なら。
0092デフォルトの名無しさん
05/02/01 23:07:13その意見は出てるんだよ!
もっと創造的なアイデアを出せよ。しねよ!
0093デフォルトの名無しさん
05/02/01 23:11:28AAA.hにAAAクラスを定義してあり
BBB.hにBBBクラスを定義してあるとします。
AAAクラスの中でBBBクラスのポインタを宣言したかったので
AAA.hでBBB.hをincludeしました。
BBBクラスでもAAAクラスのポインタが必要になった時に
リンクはどのようにすれば良いんでしょうか?
A→B B→Aと双方をリンクの場合です
よろしくお願い致します…
0094デフォルトの名無しさん
05/02/01 23:13:160095デフォルトの名無しさん
05/02/01 23:19:370096デフォルトの名無しさん
05/02/01 23:24:39Cの問題と言えばCの問題と言う気もするが、
クラスを使っているのなら素直にC++スレに逝け!
0097デフォルトの名無しさん
05/02/01 23:29:26{
int count[N] = {0に初期化};
int max[N] = {どこかで設定};
int i;
for (;;) {
count[0]++;
for (i = 0; i < n-1 && count[i] == max[i]; i++) {
count[i] = 0;
count[i+1]++;
}
if (count[n] == max[n])
break;
なんかやりたいこと;
}
}
0098デフォルトの名無しさん
05/02/01 23:30:170099デフォルトの名無しさん
05/02/01 23:30:210100デフォルトの名無しさん
05/02/01 23:32:56おおう、済まねぇ。ポップアップで見て間とばしてた。じゃ、こんなんでどう?
int i[N], j, start[N], end[N]; /* start[], end[] は適当に設定しる */
for(j=0;j<N;j++) i[j]=start[j]; /* 初期値 */
while(1) {
/* i[] を使って適当に処理 */
j=0;
while(j<N&&++i[j]>=end[j]) {
i[j]=start[j];
j++;
}
if(j==N) break;
}
最後の判定を最初の while に持ってくることもできるし、中の while を for に書き直すことも
できるけど、一応素直にしてみた。
0101デフォルトの名無しさん
05/02/01 23:34:400102デフォルトの名無しさん
05/02/01 23:39:56http://up.isp.2ch.net/up/7823d7244446.zip
0103デフォルトの名無しさん
05/02/01 23:48:30>>1嫁
010475
05/02/01 23:57:440105デフォルトの名無しさん
05/02/01 23:59:320106デフォルトの名無しさん
05/02/02 00:01:00出来ない。
そもそも、ローカル変数はstaticを付けない限り、
関数から抜けた時点で存在がなくなるし。
010775
05/02/02 00:06:48ありがとうございます
じゃぁ、グローバル変数として上にぞろぞろとかくしかないのですね…
ディスプレイ構造体等、増えるにつれてわけがわらなくなってきたので
ローカルで宣言したものを使えないものなのかと思いきいてみました
どうも有難うございました
0108デフォルトの名無しさん
05/02/02 00:11:180109デフォルトの名無しさん
05/02/02 00:11:37何がしたいのやら
0110デフォルトの名無しさん
05/02/02 00:12:58データ構造の勉強汁
0111デフォルトの名無しさん
05/02/02 00:14:25全部mallocした後に'\0'で初期化されているんですが、
これは糞コードの類に入るんでしょうか?
callocでやるべき?
0113デフォルトの名無しさん
05/02/02 00:18:46漏れならcalloc()使うな。
0114デフォルトの名無しさん
05/02/02 00:21:06webで公開されてますか
0115デフォルトの名無しさん
05/02/02 00:21:21ループで回して'\0'代入しているなら糞コード。
# 浮動小数点数の配列の確保で、
# ループで0.0を代入しているなら糞コードではないと思うが
0116デフォルトの名無しさん
05/02/02 00:21:410117デフォルトの名無しさん
05/02/02 00:22:43それ以前に見る必然性がない。
0118111
05/02/02 00:24:20memset
の繰り返しでした
callocを使わないんですかと聞いたら
「あまりそういうソースは見ないな」
とベテランの先輩がおっしゃっていたのです
0119デフォルトの名無しさん
05/02/02 00:24:36callocでやってもよいって程度。
0120デフォルトの名無しさん
05/02/02 00:28:16まぁ、あまり見ない。
0121デフォルトの名無しさん
05/02/02 00:28:28コーディング規約の中に、
char buf[256] = {'\0'};
等の初期化を使わず、
char buf[256];
memset( buf, 0, sizeof(buf) );
の様にいちいち memset() しなきゃならない、
と言う糞規約があったことを思いだした。
浮動小数点数の時にどうするのか?と小一時間(ry
0122デフォルトの名無しさん
05/02/02 00:32:28「メモリ確保はmalloc」のように決めといたほうが、いろいろと楽。
0123こもん
05/02/02 00:33:39各個人の格教科の点数と合計データと平均データを
合計点数が大きい順で並べるプログラムを作ってくれませんか?
0124デフォルトの名無しさん
05/02/02 00:34:540125デフォルトの名無しさん
05/02/02 00:40:12とても詳細に調べていただきまして、ありがとうございます。
規格の記述箇所まで教えていただきまして・・・。
辞書と翻訳サイトを使って、引用の箇所を出来るだけ読んでみました。
引用下の解釈があってやっと読めた感じです。おかげさまで24での疑問が解決しました。
また、関数で使用できる記憶クラスが extern と static だけと覚えていたのが
間違っていなくてよかったです。
細かく調べたいなら、やはり規格を参照しないと駄目ですね。
英語ですと誤読しそうなので、今度JISの規格書を図書館から借りてきたいと思います。
ありがとうございました。
0126デフォルトの名無しさん
05/02/02 00:44:480127デフォルトの名無しさん
05/02/02 01:12:17エクセルでやれば良し
0128デフォルトの名無しさん
05/02/02 01:13:29実用的にはその方がいいね。
0129デフォルトの名無しさん
05/02/02 01:39:440130デフォルトの名無しさん
05/02/02 02:00:070131デフォルトの名無しさん
05/02/02 02:02:350132デフォルトの名無しさん
05/02/02 02:15:23流れ。
0133デフォルトの名無しさん
05/02/02 07:35:40アリガトー
0134デフォルトの名無しさん
05/02/02 09:31:06#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MEMBER 50
#define COURSE 5
typedef struct {
int score[COURSE];
int total;
double average;
} DATA;
DATA r[MEMBER] = {
中略
};
0135デフォルトの名無しさん
05/02/02 09:34:25int main(void)
{
int i,j;
for (i = 0; i < MEMBER; i++) {
r[i].total = 0;
for (j = 0; j < COURSE; j++)
r[i].total += r[i].score[j];
r[i].average = r[i].total / (double)COURSE;
}
qsort(r, MEMBER, sizeof(DATA), cmp);
for (i = 0; i < MEMBER; i++) {
for (j = 0; j < COURSE; j++)
printf("%d ", r[i].score[j]);
printf("%d %g\n", r[i].total, r[i].average);
}
return EXIT_SUCCESS;
}
以下略
0136デフォルトの名無しさん
05/02/02 09:35:140137デフォルトの名無しさん
05/02/02 09:40:390138デフォルトの名無しさん
05/02/02 09:42:190139デフォルトの名無しさん
05/02/02 09:44:090140デフォルトの名無しさん
05/02/02 09:47:190141デフォルトの名無しさん
05/02/02 09:51:48ファイルから設定を読みこむときって皆さんはどうやってますか?
width=500
height=600
と、設定ファイルにかかれているとき
Perlなら、widthを変数名に、500を値にいれていたのですが
C言語ではどうするのでしょうか?
もしよろしければ適当にソースを書いていただければ幸です
0142デフォルトの名無しさん
05/02/02 10:03:57データ構造に合わせる
0143デフォルトの名無しさん
05/02/02 10:10:560144デフォルトの名無しさん
05/02/02 10:45:000145デフォルトの名無しさん
05/02/02 11:31:000146デフォルトの名無しさん
05/02/02 13:21:33もうちょっと良い方法もあるとは思うので、参考までに。
widthとかheightとかの、キーの種類や数が固定なら
それに対応する専用の変数を用意しとけばいいんでない?
キーが固定じゃないなら、
「キーの文字列」と「値」を両方格納できる構造体でも作っておいて
自前でそれを調べて値を返す関数を作るとか、そんな感じ。
0147デフォルトの名無しさん
05/02/02 13:38:06特定の値を文字列から取りだしたいです
0148デフォルトの名無しさん
05/02/02 13:54:00parseline(keyword, value);
if strcmp(keyword, 'width') == 0 then
width := value;
else if strcmp(keyword, 'height') == 0 then
height = value;
else ...
0149デフォルトの名無しさん
05/02/02 13:59:57あるかどうか自分で調べろ。
http://cham.ne.jp/piro/p_stdfunc.html
無ければ作れ。
0150デフォルトの名無しさん
05/02/02 15:39:54//fclose(fp);
のようにコメントアウトするとエラーがでないのですが、
コメントアウトを外すと
free():invalid pointer 0x859b6a8
という風に実行中にエラーをはきます。
どうすれば、いいのでしょうか?
それ以降ではfpは使用していないので、fcloseしても問題ないような気が・・・
0151デフォルトの名無しさん
05/02/02 15:47:03同じファイルポインタを2回fcloseしてたりする?
0152デフォルトの名無しさん
05/02/02 15:50:23してないです。
0153デフォルトの名無しさん
05/02/02 15:53:41助けるにしても情報が足りなさすぎです
0154デフォルトの名無しさん
05/02/02 15:58:510155デフォルトの名無しさん
05/02/02 16:05:210156デフォルトの名無しさん
05/02/02 16:09:200157デフォルトの名無しさん
05/02/02 16:12:16似たことがあった。自分の場合、他のポインタで
メモリ破壊してるとこがあってそれを直すと解決した。
そんなことない?
0158デフォルトの名無しさん
05/02/02 16:13:05FILE *fp;
char date[30];
strcpy(date,"a.txt");
fp=fopen(date,"r");
・・・
fclose(fp);
}
なんですが、、、
ファイルポインタを作りすぎると100個くらい?
エラーになるのですか?
0159デフォルトの名無しさん
05/02/02 16:15:49それは、既知だよ。ここに来るやつは。知ってるよw
0161デフォルトの名無しさん
05/02/02 16:22:32同じだ、何回メモリ暴走したことか、意味が無いな
0162デフォルトの名無しさん
05/02/02 16:28:07ファイルポインタを作りすぎるとって、一般的に100もファイルを開けるOSは少ないと思うのだけど。
ファイルポインタがエラーでNULLになるんでない?
0163デフォルトの名無しさん
05/02/02 16:32:55OSに同化できるかだ
0164デフォルトの名無しさん
05/02/02 16:36:14100個くらいで大丈夫よ、安心して、
0165デフォルトの名無しさん
05/02/02 16:41:300166デフォルトの名無しさん
05/02/02 16:53:59好きにやれよ
0167デフォルトの名無しさん
05/02/02 18:01:000168デフォルトの名無しさん
05/02/02 18:01:11struct A{
int a;
int b;
};
struct B{
A[10]; ←ここ
};
こういう使い方はできないんですか?
0169デフォルトの名無しさん
05/02/02 18:04:34struct B {
struct A a[10];
};
「struct A」はあくまでも型名。
0170デフォルトの名無しさん
05/02/02 19:02:38int a;
int b;
};
struct B{
A A[10]; ←ここ
};
コレなら作れる
0171デフォルトの名無しさん
05/02/02 19:08:18あ、そういえばそうだった・・・
なんか勘違いしてた・・・アリガトンゴザイマス
0172デフォルトの名無しさん
05/02/02 20:31:21ここのスレタイをよく読め。
0173デフォルトの名無しさん
05/02/02 20:46:25C言語では配列の添え字を宣言する際に2のべき乗を使うと
内部演算がビットシフトで表現され、処理が高速になる。
と聞いたのですが、これを的確に実験する方法はあるでしょうか?
0174デフォルトの名無しさん
05/02/02 20:48:50アセンブラに落とせ。
0175173
05/02/02 20:58:31申し訳ないです。
0176デフォルトの名無しさん
05/02/02 21:01:27gcc -S hoge.c
0177デフォルトの名無しさん
05/02/02 21:19:440178173
05/02/02 21:25:41お礼を忘れていました。すいません。有難うございます。
っと、>>176の作業によってアセンブラソースが生成されました。
が、これのどこを見ればいいのかさっぱりわかりません。
アセンブラのソースは少しだけ意味がわかる程度でして・・・。
私が考えるに、実行速度の向上はわずかで、
非常に大きなプログラムを書いたときに影響が出てくるのかということ。
で、ちょこっとのプログラムでは向上を確認できないのではないかと。
なに言ってるかわかんなくなってきました。頭冷やしてきます。
0179デフォルトの名無しさん
05/02/02 21:38:01何回その部分を実行するかで決まる。
で、興味を持ったから試してみたけど、
gccだと全部シフトと加減算にしてしまってるように見えるな。
乗算にした方が速いケースってないんだろうか。
0180デフォルトの名無しさん
05/02/02 21:39:46>>176は私ですー にゃんにゃん
つまり、別人^^;
あのですね、掛算をするときは最適化されちゃってあまり効果がないかもですが、
割算の時は効果がでるかもですー。
例えば、こういうコードをコンパイルするとどうなるでしょうか。
(やってみてくださいね)
test3とtest4では最適化されて同じ(アセンブリ)コードになってしまうかもしれませんが、
test1とtest2ではたぶんtest2の方が長いコードになってしまうとおもいますー
int test1(int a) {
return a>>1;
}
int test2(int a) {
return a/2;
}
int test3(int a) {
return a<<1;
}
int test4(int a) {
return a*2;
}
0181デフォルトの名無しさん
05/02/02 21:51:02#include <stddef.h>
main(){
struct station{
int bango;
char *p_name;
struct station *pm;
};
struct station m1 = {1001, "tokyo" , NULL};
struct station m2 = {1002, "shinbashi", NULL};
struct station m3 = {1003, "shinagawa", NULL};
struct station m4 = {1004, "kawasaki" , NULL};
struct station m5 = {1005, "yokohama" , NULL};
struct staion *p_m1;
m1.pm = &m2; //次のデータを指すようにポインタを設定する
m2.pm = &m3;
m3.pm = &m4;
m4.pm = &m5;
printf("bango namae\n");
for(p_m1 = &m1;p_m1 != NULL;p_m1 = p_m1->pm) //ポインタの更新
printf("%4d %s\n", p_m1->bango, p_m1->p_name);
}
0182173
05/02/02 21:51:29たしかに、test2のみ長いコードになりました。
シフト演算はたしかに高速であるということですよね?
・・・で、問題は配列の添え字が
・2のべき乗
・そうでない場合
この実行速度の比較なんですが・・・どう繋がるんでしょう・・
私はあほなんでしょーか。
0183181
05/02/02 21:52:00何で?
0184デフォルトの名無しさん
05/02/02 21:53:37コンパイルエラーがでるの?
実行時エラーが出るの?
実行時エラーは出るけどまともな結果がでないの?
0185デフォルトの名無しさん
05/02/02 21:56:20エラー E2451 未定義のシンボル bango(関数 main )
エラー E2451 未定義のシンボル p_name(関数 main )
参考書の通りにやってるんだけどなー
0186181
05/02/02 21:57:060187デフォルトの名無しさん
05/02/02 21:59:59配列の添え字って
char* p;
int i;
p[16*i] = 0;
ってのは
p+(16*i)なわけだから
p+(i << 4)
と表現できるでしょ
0188デフォルトの名無しさん
05/02/02 22:00:420189デフォルトの名無しさん
05/02/02 22:04:11レジスタがどういう処理行うかって問題じゃないかぁ…
明らかに加算するよりbitシフトのが速そうな気がするじゃん
0190デフォルトの名無しさん
05/02/02 22:08:35char image[256*256];
みたいなんだったらシフト&マスクで高速化できる場面もありそうだけど。
0191デフォルトの名無しさん
05/02/02 22:14:390192デフォルトの名無しさん
05/02/02 22:56:49#include <stdio.h>
void f(int a);
void f(int a)
{
printf("a = %d\n", a);
}
int main(void)
{
void (*x)(int, int);
x = (void (*)(int, int))f;
x(1, 2);
return 0;
}
0193デフォルトの名無しさん
05/02/02 23:02:160194デフォルトの名無しさん
05/02/02 23:11:400195173
05/02/02 23:13:12int a[16][16];
これを
int a[256];
ってやるってことで、要素(6,8)にアクセスするときに
a[6][8]
ってやるところを
a[0x68]
ってやったりはしてます。
この辺とは関係ないんでしょうか・・・。
0196デフォルトの名無しさん
05/02/02 23:14:020197デフォルトの名無しさん
05/02/02 23:14:49それは関係ありませんよー にゃんにゃん
0200デフォルトの名無しさん
05/02/02 23:20:30特別な使い方をしない限り、ない。
0201173
05/02/02 23:25:46有難うございました!勉強になりました。
実は明日までにレポートを書き上げる必要があって、
てんやわんやです。
がんばります!それでは。
0202デフォルトの名無しさん
05/02/02 23:51:03その口調、やめてくれないか?
すごく気持ち悪い
0203デフォルトの名無しさん
05/02/02 23:55:20確かに。
目の前にいて、かつ、不細工や奴が言ってたら、条件反射で顔面殴りそうだ。
0204デフォルトの名無しさん
05/02/02 23:57:480205デフォルトの名無しさん
05/02/02 23:58:480206デフォルトの名無しさん
05/02/03 00:01:37ひどいよー にゃんにゃん
0207大原ゆき
05/02/03 00:02:54次回からはにゃんにゃん抜きで書きます。
0208デフォルトの名無しさん
05/02/03 03:44:12次回からはにゃんにゃん抜きで書きますにゃん
0209デフォルトの名無しさん
05/02/03 03:45:17便利なときって、どんなとき?
0210デフォルトの名無しさん
05/02/03 05:02:06デバッグが終わったことになっていて、実稼働を行なう時に、
core吐いて止まることが予想出来る場合、その時調べやすい
0211デフォルトの名無しさん
05/02/03 06:30:34int a[6],b[2][3]を確保して
a[0]とb[0][0]、a[1]とb[0][1]、a[2]とb[0][2]、
a[3]とb[1][0]、a[4]とb[1][1]、a[5]とb[1][2]が
それぞれ同じアドレスを参照してa[0]を変えたらb[0][0]も一緒に中身が変わるようにしたいんだけど
#include <stdio.h>
void main(void)
{
int *a[2];
int b[6];
a[0]=&b[0];
a[1]=&b[3];
}
って書き方でいいかな?
なんか問題ある気がするんだけど他にいい方法ないかな?
あとポインタにするのは2次元配列のほうにしてほしいのよ
0213デフォルトの名無しさん
05/02/03 08:16:41ポインタと配列の箱の絵でも書いて、じっくり考え直した方がよい。
0214デフォルトの名無しさん
05/02/03 09:46:26int main(void)
{
int a = 0;
switch (a) {
case 0:
printf("a is 0.\n");//この行をコメントにすると、コンパイルエラー
int b = 2;
printf("b is %d.\n", b);
break;
case 1:
printf("a is 1.\n");
}
return 0;
}
このソース(swtest.c)なんですが、
このままだと、問題なくコンパイル(gcc -Wall swtest.c)できるのに、
printf("a is 0.\n");
の行をコメントにしてからコンパイルしようとすると、
swtest.c: In function `main':
swtest.c:9: error: parse error before "int"
swtest.c:10: error: `b' undeclared (first use in this function)
swtest.c:10: error: (Each undeclared identifier is reported only once
swtest.c:10: error: for each function it appears in.)
となって、エラーとなってしまいます,,,。
どうしてなんでしょうか?(環境はMacOSX10.3+GCC3.3です。)
0215デフォルトの名無しさん
05/02/03 09:54:50case自体はラベルだから、gotoのラベルと一緒で
次に「文」が続く必要があるけど、宣言って、文じゃなかったかな。
覚えてないや。
0216デフォルトの名無しさん
05/02/03 10:11:50ありがとうございます。
同じswitchでもJavaとは微妙に違うんですね。
勉強になりました。
0217デフォルトの名無しさん
05/02/03 12:54:22教えてください。
0219デフォルトの名無しさん
05/02/03 13:01:11sourceforge
koders
0220デフォルトの名無しさん
05/02/03 13:10:05そうやって教えると、>>217 はいつまで経っても莫迦のまま。
0221デフォルトの名無しさん
05/02/03 13:12:52お前が馬鹿だ。
0222デフォルトの名無しさん
05/02/03 13:15:09園児の脊髄反射乙。
0223デフォルトの名無しさん
05/02/03 13:34:56なんだとこの
0224デフォルトの名無しさん
05/02/03 14:18:230225デフォルトの名無しさん
05/02/03 14:43:42そりゃ困る。
馬鹿が伝染るからな。
0226デフォルトの名無しさん
05/02/03 14:43:51ありがとうございます。
後者の存在は初めて知りました。
0227218
05/02/03 15:06:540228デフォルトの名無しさん
05/02/03 15:17:53ほら、言わんこっちゃない…
0229デフォルトの名無しさん
05/02/03 15:46:33業界に入られた時に非常に困るだろ。
0230デフォルトの名無しさん
05/02/03 15:53:11http://www.codesampler.com/
0231デフォルトの名無しさん
05/02/03 15:55:39伝染すると誰がどう困るのか
0232デフォルトの名無しさん
05/02/03 16:07:12どんどん伝染を繰り返し、馬鹿が増える。
馬鹿が増えると文明を維持することが困難になる。
文明を維持することが困難になると人類の繁栄に影響がでる。
人類の繁栄は最優先事項なので、馬鹿が伝染すると困る。
0233デフォルトの名無しさん
05/02/03 17:28:19void pp(char *fmt, ...) {
printf(fmt);
}
とか。
0234デフォルトの名無しさん
05/02/03 17:36:45printfの場合はvprintfを使え。
自作の関数の場合は初めからprintf/vprintfの用にva_list版も作って置け。
0236デフォルトの名無しさん
05/02/03 22:15:39名前なんかいちいち見ないよ
0237デフォルトの名無しさん
05/02/03 22:21:23ドアの1つには賞品の車があります。残りの2つのドアはハズレでヤギがいます。
あなたがドアの1つ、たとえば1番ドアを選びます。
司会者は、それらのドアに何があるかを知っており、ヤギのドアを1つ、例えば3番ドアを開けてみせます。
そこで司会者があなたに、「2番ドアに変更してもいいですよ」といいました。
2番ドアに変えたほうがいいのでしょうか。
↑の確率を試行回数1万回くらいで実験してみたいんですが
どんな風に書けばいいの?
0238デフォルトの名無しさん
05/02/03 22:47:28ごく単純なマルコフ過程。
0239デフォルトの名無しさん
05/02/03 22:48:36変えた時は1/2で変えない時は1/3。以上
0240デフォルトの名無しさん
05/02/03 22:50:42はい?もう一度良く考えて。
0241デフォルトの名無しさん
05/02/03 22:55:27え”!!違うの?ずっとそうだと思ってた
0242デフォルトの名無しさん
05/02/03 22:56:20王子が結婚するというので王様が一人だけ恩赦にしてやることになった。
誰が恩赦になるのか決定されたが、まだ囚人たちには知らされていない。
結果を知っている看守に、囚人Aが『BとCのうち、どちらかは必ず処刑
されるのだから、処刑される一人の名前を教えてくれても、私に情報を
与えることにはならないだろう。一人を教えてくれないか。』と頼んだ。
看守は、その言い分に納得して『囚人Bは処刑されるよ』と教えてやった。
囚人Aは、「はじめ自分の助かる確率は1/3だった。いまや助かるのは
自分とCだけになったので、助かる確率は1/2になった」と喜んだ。
さて、看守の返事を聞いた後の囚人の助かる確率はどれだけか?
0243デフォルトの名無しさん
05/02/03 22:58:15Cの話にアレンジできない低脳は氏んで
0244デフォルトの名無しさん
05/02/03 22:59:20文字列とポインタに関してです。
ポインタの文字列というものを勉強しているとき、
char *ptr = "123";
ptr = "456";
と途中で書き換えられる。
と書いてありました。
しかしもう少しよんでいくと、ポインタの文字列リテラルの中身を書き換えてはいけない
と書いてありました。
いったいどういうことでしょうか?
ポインタで文字列を扱った場合、書き換えてはいけないのですか?
0245デフォルトの名無しさん
05/02/03 23:00:27237と問題違うし
0246デフォルトの名無しさん
05/02/03 23:00:300247デフォルトの名無しさん
05/02/03 23:00:56アレンジできてないのはお前一人
0248デフォルトの名無しさん
05/02/03 23:01:18どう言う確立で司会者が変更して良いというのか。
0249デフォルトの名無しさん
05/02/03 23:01:34どこに書いてた?
0250デフォルトの名無しさん
05/02/03 23:02:42明解C言語という本です。
0251デフォルトの名無しさん
05/02/03 23:02:481/3
0252デフォルトの名無しさん
05/02/03 23:02:510253デフォルトの名無しさん
05/02/03 23:03:01司会者がどこが当たりか知っているのか?
それによっては条件が変わってくるぞ
0254デフォルトの名無しさん
05/02/03 23:05:14ソレはptrは書き換わってるが、"123"を書き換えてるわけじゃなく。
0255デフォルトの名無しさん
05/02/03 23:05:28書いてあるだろよ
0256デフォルトの名無しさん
05/02/03 23:05:34で、ハズレを教えてもらって残り2択となり、
選んだものがハズレの場合、変えた時点で
当たるわけだから、変えたときは2/3かな?
違う?
何言ってるかわからなくなった。
orz
0257244
05/02/03 23:07:00456という文字列の先頭ポインタをさしているんですよね?
それは456という文字が連続してあるからでしょうか?
これが457だとエラーになるのでしょうか?
それならなっとくが出来ます。
0258デフォルトの名無しさん
05/02/03 23:08:02氏ねばいいのに
0259デフォルトの名無しさん
05/02/03 23:08:48変えるか変えないかの二択の時1/3、
再分配すると1/2じゃないかね
0260デフォルトの名無しさん
05/02/03 23:09:41御前が市ね。スレの雰囲気を崩すな。
低脳は困る。
0261デフォルトの名無しさん
05/02/03 23:10:25char *ptr = "123";
ptr = "456"; /* できる */
strcpy(ptr, "456"); /* できない */
ということじゃないの。
0262デフォルトの名無しさん
05/02/03 23:11:28コード書けねえバカクズばっかり!!!!!!!!!!!
0263デフォルトの名無しさん
05/02/03 23:11:55ptr = "456"; /* できる */
*ptr = '4'; /* できない */
0264デフォルトの名無しさん
05/02/03 23:13:180265244
05/02/03 23:15:55よくわかりました。ありがとうございました。
0266デフォルトの名無しさん
05/02/03 23:17:200267デフォルトの名無しさん
05/02/03 23:31:55そんなんで分かっちゃだめだよん
0268デフォルトの名無しさん
05/02/03 23:34:34はじめにハズレを選んでいた場合、変えたら必ず当たる。
はじめにあたりを選んでいた場合、変えたら必ず外れる。
で、はじめにハズレを選ぶ確率は2/3なので、
変えた場合、必然的に2/3で当たることになる。
実験するまでもなくね?
0269デフォルトの名無しさん
05/02/03 23:40:51"January" や "February" のように " " で囲んだ文字列を
「文字列リテラル」又は「文字列定数」と呼びます。
文字列リテラルは「定数」であり、本質的に値を変えないものです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
しかし、値を変えないはずの文字列リテラルですが、この単元で説明したように
ポインタを用いて指定をした場合、その変更が可能になってしまいます。
そのため、ANSI規格では文字列リテラルを「定数」とは呼びません。
たとえば、
char *p = "ABC";
strcpy(p, "DEF");
とした場合、処理系によっては文字列の書き換えが可能になります。
(処理系によっては動作不能になります。)
文字列リテラル内の文字列を変更してよいかどうかは、処理系に依存しますが、
ANSI規格では、文字列リテラルの変更は未定義(何が起こるかわからないということ)です。
http://www9.plala.or.jp/sgwr-t/c/sec10-3.html
0270デフォルトの名無しさん
05/02/03 23:49:42char *ptr = "123";
ptr = "456";
おそらくこれで、文字列が書き換わっていると勘違いしていると思われる。
char *org_ptr = "123";
char ptr = org_ptr;
ptr = "456";
printf("%p, %p\n", org_ptr, ptr);
これを試してみれ。文字列が書き換わっているんじゃなくてアドレスが
書き換わっているだけだ。
0271デフォルトの名無しさん
05/02/03 23:56:47char *point;
point=( char *)malloc( sizeof(char) * (strlen(str)+1) );
strcpy(point,str);
0272デフォルトの名無しさん
05/02/03 23:58:420273デフォルトの名無しさん
05/02/04 00:00:100274デフォルトの名無しさん
05/02/04 00:00:38結局大丈夫なんですか?
0275デフォルトの名無しさん
05/02/04 00:03:20そんなレベルの問題じゃない
0276デフォルトの名無しさん
05/02/04 00:04:12>>273
日本語も理解できない池沼ですか?
0277デフォルトの名無しさん
05/02/04 00:05:130278デフォルトの名無しさん
05/02/04 00:05:58まぁ大体そんな感じだな。
0279デフォルトの名無しさん
05/02/04 00:07:07ま、実際に規格を作る段階で>>274のような実装の処理系があるから
ということで検討がなされたんだけどね。
規格となってしまった現在ではそういうレベルの問題じゃないというのは同意。
0280デフォルトの名無しさん
05/02/04 00:11:19どうやら画像サイズに関係しているみたいです。(1024*768 160*120ならOK,800*600 1024*819ならNG)
memcpyでエラーが発生してるってことはデバッガで確認しましたが、理由がわかりません。
あくまで推測ですが、ポインタが怪しいかと。
環境
OS Windows
VC.NET
ソース一部。
前略
typedef struct{
unsigned char b;
unsigned char g;
unsigned char r;
}pixel;
中略
void henkan_mirrou(BITMAPINFOHEADER *bminfo, pixel *img){
int x,y;
pixel cache;
for(x=0;x < bminfo->biWidth;x++){
for(y=0;y < (bminfo->biHeight/2);y++){
memcpy( &cache, (img + (y*bminfo->biWidth) +x) , sizeof(pixel) );//←←←エラー(?)
memcpy( (img + (y*bminfo->biWidth) +x) , (img + (bminfo->biHeight-y) * bminfo->biWidth +x) , sizeof(pixel) );
memcpy( (img + (bminfo->biHeight-y) * bminfo->biWidth +x) , &cache, sizeof(pixel) );
}
}
}
以上。
ご教授下さい。
0281デフォルトの名無しさん
05/02/04 00:11:24アフォ?
0282デフォルトの名無しさん
05/02/04 00:14:17エラー出してるんなら原因わかるでしょ。
0283デフォルトの名無しさん
05/02/04 00:16:18レベルが違うとはどうゆう違いなのでしょうか?
244さんが言う「ポインタの文字列リテラルの中身を書き換えてはいけない」
とは
char *p = "\n";
*p = '\a';
printf("\n");
がおかしくなる処理系の場合を指しているんじゃないんですか?
0284デフォルトの名無しさん
05/02/04 00:18:480285デフォルトの名無しさん
05/02/04 00:21:050286280
05/02/04 00:21:53解決方法がわからないから困ってるんです。
追加
・別関数の左右反転は正常にできる。
・画像サイズが大きいと発生というわけでも、小さいから発生と言うわけでもないみたいです。
0287デフォルトの名無しさん
05/02/04 00:24:23(1) y=0 の時に bminfo->biHeight-y はどこを指す?
(2) 4バイト境界の罠
0288デフォルトの名無しさん
05/02/04 00:25:16エラーとは何?
memcpyの前後で書かれるべき値が書かれてないってこと?
0290デフォルトの名無しさん
05/02/04 00:41:12int a;
struct {
int b1;
int b2;
} b;
};
という構造で a と b1 は同じ領域を占めることって保証されてますか?
0291デフォルトの名無しさん
05/02/04 00:42:20保証されません。
0292デフォルトの名無しさん
05/02/04 00:50:21struct {
int a1;
int a2
} a;
struct {
int b1;
int b2
} b;
};
でもこの場合a1とb1が同じ位置になることは保証されますよね
どうして結果が違うんでしょう??
0293デフォルトの名無しさん
05/02/04 01:05:450294デフォルトの名無しさん
05/02/04 09:22:150295デフォルトの名無しさん
05/02/04 09:23:130296デフォルトの名無しさん
05/02/04 09:23:340297デフォルトの名無しさん
05/02/04 10:06:01----------------
#include <stdio.h>
int main(void)
{
int c;
FILE *fp = fopen("source.c", "rb");
while((c = fgetc(fp)) != EOF){
fputc(c, stdout);
}
fclose(fp);
return 0;
}
----------------
0298デフォルトの名無しさん
05/02/04 10:33:290299デフォルトの名無しさん
05/02/04 10:35:200300デフォルトの名無しさん
05/02/04 10:41:50それがどう関係する?
0301デフォルトの名無しさん
05/02/04 10:42:531って何型?って聞かれたんですが・・・。
何型なんでしょう?
0302デフォルトの名無しさん
05/02/04 10:48:59while 云々関係なく「1」はint型
0303デフォルトの名無しさん
05/02/04 10:49:050304デフォルトの名無しさん
05/02/04 10:53:51LINUX版の「_pgmptr」とかないっすか?
0305デフォルトの名無しさん
05/02/04 11:00:110306デフォルトの名無しさん
05/02/04 11:07:44標準的な方法はない
0307デフォルトの名無しさん
05/02/04 11:10:00argv[0]
0308デフォルトの名無しさん
05/02/04 11:15:470309デフォルトの名無しさん
05/02/04 12:53:43それはOSに依存してるよ〜
UNIX系環境ではコマンドラインの一番目が来ちゃう
0310デフォルトの名無しさん
05/02/04 13:05:37UNIX系環境では知らん
0311デフォルトの名無しさん
05/02/04 13:41:57さっぱりわかりません
分けわっかんなああああああああああああああい
0312デフォルトの名無しさん
05/02/04 13:47:11あなたはプログラミングに向いていません。
0313デフォルトの名無しさん
05/02/04 13:50:50プログラミング関係ないよ。
0314デフォルトの名無しさん
05/02/04 13:51:04それを言うなぁ!!
日曜プログラマなのでちょこっとづつ理解していくさT〜T
0315デフォルトの名無しさん
05/02/04 13:52:46にゃんにゃん
0316デフォルトの名無しさん
05/02/04 13:54:15大原ゆきに教えてもらえ。
0317デフォルトの名無しさん
05/02/04 13:56:21にゃふうん
>>316
だれだよソレT〜T
0318デフォルトの名無しさん
05/02/04 13:58:26>>207
0319デフォルトの名無しさん
05/02/04 14:05:23構造体…一緒に使うデータなんかは纏めておいたほうが楽だよね?
オブジェクト指向…構造体についでにそれの処理法も纏めておくと
中でなにやってるか気にせずに済んで楽♪
ポインタ…これはC言語及びC++言語のある意味最大の特徴
俺は理論だけじゃ完全に理解できなかったので
デバッガ使って何やってるか追い駆けた
0320デフォルトの名無しさん
05/02/04 14:05:29クラスがどーとかうすーい記憶が。
ポインタなんて一生わかんね!
わかんなくてもAPI使えるからいいもん!
>>318
にゃん抜きな人なのね
ありがと。
0321デフォルトの名無しさん
05/02/04 14:09:56,,、,、、,,,';i;'i,}、,、
ヾ、'i,';||i !} 'i, ゙〃
゙、';|i,! 'i i"i, 、__人_从_人__/し、_人_入
`、||i |i i l|, 、_)
',||i }i | ;,〃,, _) 汚物は消毒だ〜っ!!
.}.|||| | ! l-'~、ミ `)
,<.}||| il/,‐'liヾ;;ミ '´⌒V^'^Y⌒V^V⌒W^Y⌒
.{/゙'、}|||// .i| };;;ミ
Y,;- ー、 .i|,];;彡
iil|||||liill||||||||li!=H;;;ミミ
{ く;ァソ '';;,;'' ゙};;彡ミ
゙i [`'''~ヾ. ''~ ||^!,彡ミ _,,__
゙i }~~ } ';;:;li, ゙iミミミ=三=-;;;;;;;;;''
,,,,-‐‐''''''} ̄~フハ,“二゙´ ,;/;;'_,;,7''~~,-''::;;;;;;;;;;;;;'',,=''
;;;;;;;;''''/_ / | | `ー-‐'´_,,,-',,r'~`ヽ';;:;;;;;;;, '';;;-'''
''''' ,r'~ `V ヽニニニ二、-'{ 十 )__;;;;/
0322デフォルトの名無しさん
05/02/04 14:10:41オブジェクト指向の説明間違っているぞ。
0323デフォルトの名無しさん
05/02/04 14:11:04すんげー噛み砕いて教えてくれた!
ありがとう!
ポインタのお勉強をしてみるかぁ
0324デフォルトの名無しさん
05/02/04 14:18:530325デフォルトの名無しさん
05/02/04 14:23:150326デフォルトの名無しさん
05/02/04 14:40:110327デフォルトの名無しさん
05/02/04 14:42:33http://www.teck.co.jp/gj/products/ane&boin/index.htm
0328デフォルトの名無しさん
05/02/04 15:02:47char *str[]={"abcdef", "ghijkl", "mnopqr"};
と定義したとき「b」だけを出力するならstr[0][1]でいいと参考書にあるのですが
これだとコンパイラは通っても実行結果が出てきません。
どのようにしたら「b」だけを出力できるのですか?
0329デフォルトの名無しさん
05/02/04 15:07:26どうやって出力しましたか?
ポインタはきっと関係ない。
0330デフォルトの名無しさん
05/02/04 15:08:12printfで出力するのなら%sではなく%cにしろ。
0331328
05/02/04 15:11:34pritnf("%s", str[n][1]);
です。nはint型で0が入ってます。
ちなみにstr[n]に置き換えると「abcdef」が出力できました。
0333デフォルトの名無しさん
05/02/04 15:30:170334デフォルトの名無しさん
05/02/04 15:31:34とりあえず、「文字」と「文字列」の区別は付けた方が良いよ。
0335デフォルトの名無しさん
05/02/04 15:31:470336デフォルトの名無しさん
05/02/04 15:33:090337デフォルトの名無しさん
05/02/04 15:37:58昔gotoでがちゃがちゃ遊んでたベーシックとは違って
あぁあわかっちゃったT-T
0338デフォルトの名無しさん
05/02/04 17:44:090339デフォルトの名無しさん
05/02/04 19:00:18FLAG1とFLAG2とFLAG3という意味なんだから
FLAG1 & FLAG2 & FLAG3 が正しいですよね。
C言語作った人は英語を知らなかったんでしょうか?
0340デフォルトの名無しさん
05/02/04 19:10:420341デフォルトの名無しさん
05/02/04 19:21:58スレ違い
http://pc5.2ch.net/test/read.cgi/tech/1101931660/
0342デフォルトの名無しさん
05/02/04 19:22:43おまえはFLAG1+FLAG2+FLAG3と書いてればよし
0343デフォルトの名無しさん
05/02/04 19:25:59unsigned int type0:1;
unsigned int type1:1;
unsigned int type2:1;
}TYPE;
0:1の「:」って何でつか??
0344デフォルトの名無しさん
05/02/04 19:30:260345デフォルトの名無しさん
05/02/04 19:32:36虫眼鏡で拡大してよく見てみろ
ビット
フィールド
と書いてあるのが分かるから。
0346343
05/02/04 19:37:25ビットフィールド?
0347デフォルトの名無しさん
05/02/04 19:42:41将来大物になるよきっと。
0348343
05/02/04 19:55:32TYPE[][][]─type2(1ビット
└type1(1ビット
って書いてあるんだけど何のことか分からん
0349デフォルトの名無しさん
05/02/04 19:56:510350デフォルトの名無しさん
05/02/04 20:00:32どっちを選ぶかは個人差の影響が強く出る
2ch で聞く場合の「ぐぐれ」は
google を使う場合で言えばデッドリンクに相当する承知のノイズ
言うだけ無駄だってことに気付いていないピエロは 2ch のコメディアンw
0351デフォルトの名無しさん
05/02/04 20:03:17僕のサイトに来てください!
1:192.168.0.774:05/01/25 19:45:33 ID:zJhPTC7W
http://www.ric.hi-ho.ne.jp/yosuke-07215021/
2:192.168.0.774:05/01/25 19:47:31 ID:s5U6TTtG
さっさと削除依頼出せ糞
3:192.168.0.774:05/01/25 20:38:35 ID:LzJU6YiX
先週ホムペを作りましたぁ(●´ω`●)ゞ エヘヘ♪
ハムスター中心のサイトですが、気に入ってくれたら嬉しいデ━━(●´∇`)b━━ス
サイト名ゎ☆ハム福餅★
http://www.geocities.jp/asyu0508/です
是非来て.+:。(●ゝω・)〜☆NE!!。゚+.
相互も募集chu━━(・´3`・)━━!!!
4:192.168.0.774:05/01/26 23:11:08 ID:x4sVVaC/
あまり来ないでくれよ。
http://room.pic.cx/bbs02/?i=yohtaso_inc
5:192.168.0.774:05/01/27 16:42:41 ID:zoFAVlN1
どんどん来てください。
http://www.aspara-media.com/
0352デフォルトの名無しさん
05/02/04 20:04:070353デフォルトの名無しさん
05/02/04 21:22:42覚えたてで使いたがる低スキルがいるがやめれ
制御系は使うかもしれんが
0354デフォルトの名無しさん
05/02/04 21:25:11低スキルってオマエ・・・・w
0355デフォルトの名無しさん
05/02/04 21:51:27使わんってw、32ビットを丸々フラグで良いよ
0356355
05/02/04 21:53:58というこった。
0357355
05/02/04 21:59:00というこった。
0358デフォルトの名無しさん
05/02/04 21:59:51ビット演算でたりるから
0359デフォルトの名無しさん
05/02/04 22:02:34必要ないだろう?、昔は2Kバイト境界でチップが増えるし、1Mバイトとから
2Mバイトの境界は楽だよな
0360デフォルトの名無しさん
05/02/04 22:04:05このページのワイルドカードを含む文字列比較の関数なんですが、
case '*'のところがよくわかりません。
どなたか解説お願いします。
//*********************************************************
// 第1引数にワイルドカードを含む文字列を指定する。
// 2つの文字列が一致すれば真、さもなくば偽を返す。
//*********************************************************
int StrMatch( const char *ptn, const char *str )
{
switch( *ptn )
{
case '\0':
return '\0' == *str;
case '*':
return StrMatch( ptn+1, str ) || (('\0' != *str) && StrMatch( ptn, str+1 ));
case '?':
return ('\0' != *str) && StrMatch( ptn+1, str+1 );
default:
return ((unsigned char)*ptn==(unsigned char)*str) && StrMatch( ptn+1, str+1 );
}
}//StrMatch
0361デフォルトの名無しさん
05/02/04 22:12:540362デフォルトの名無しさん
05/02/04 22:14:43int n=4;
double theta=3.14159265358979323846*2/n;
double ar1[]={0,0,1,2};//実数
double ar2[]={0,0,0,2};
double ar3[]={0,0,0,0};
double ai1[]={0,0,0,0};//虚数
double ai2[]={0,0,0,0};
double ai3[]={0,0,0,0};
fft(n,theta,ar1,ai1);//ar1,ai1をFFT変換
fft(n,theta,ar2,ai2);//ar2,ai2をFFT変換
for(int i=0;i<n;++i)
{
ar3[i]=ar1[i]*ar2[i]/n;
ai3[i]=ai1[i]*ai2[i]/n;
}
fft(n,-theta,ar3,ai3);//FFT逆変換
ってやるとar3が{2,1,2,1}ってなってしまう。
期待してるのは{0,0,2,4}です。
単純に繰り上がりの処理とかもなしでかまいません。
どこが間違ってるのか解説してくれる方いませんか?
お願いします。
ちなみにfftって関数は
ttp://momonga.t.u-tokyo.ac.jp/%7Eooura/fftman/ftmn1_2.html#sec1_2
からコピーしたのを使っています。
0363デフォルトの名無しさん
05/02/04 22:20:36もし答えられないならここに来い、かまってやる
0364デフォルトの名無しさん
05/02/04 22:23:33すごそうな人なので怖くて聞けませんorz
かまってください。お願いします
0365デフォルトの名無しさん
05/02/04 22:26:06断る
0366デフォルトの名無しさん
05/02/04 22:27:55J.W.CooleyとJ.W.Tukeyから派生したもの以外知らない。
だよ
0367デフォルトの名無しさん
05/02/04 22:30:43>>366
そうですか。ありがとう。
もうすこし自分でがんがるとです
0368デフォルトの名無しさん
05/02/04 22:35:14*がなかなか簡潔で良いね。少し感心した。
0369343
05/02/04 23:14:50確かに漏れは低スキルだけど
基本情報の勉強中に突然出てきたから分からなかったのだ
0370デフォルトの名無しさん
05/02/04 23:16:19ビットフィールドはさらっと流すだけでいいと思う。
おそらく一生使うことはない。
万が一見かけたときに「あー、こんなのがあったな」って思い出す程度で十分っす。
0372デフォルトの名無しさん
05/02/04 23:19:460373デフォルトの名無しさん
05/02/04 23:20:52条件(1) StrMatch( ptn+1, str ) ptn+1 と str がマッチすれば成功。
(例)ptn:"*ABC", str:"ABC" ・・・ ptn+1:ABC, str:ABC だから成功。
条件(2) (*str!='\0') && StrMatch( ptn, str+1 ) strの最後まで、strを(再帰で)進める。
(例) ptn:"*ABC", str:"xyzABC"
・・・ str:"yzABC" --> "zABC" --> "ABC" ここで条件(1)が成立。
0375デフォルトの名無しさん
05/02/04 23:41:030376デフォルトの名無しさん
05/02/04 23:42:20馬鹿? 4バイトくらい使えない貧乏コンパイライラネ
0377デフォルトの名無しさん
05/02/04 23:52:40確かにそれは中山道に遊女なしと言うくらいだからな。
0378デフォルトの名無しさん
05/02/05 00:22:49これってちゃんとansiとかの規格で決まってるものなんでしょうか?
ansiの公式とかいってみたんですが、英語だし、Cのページにすら辿り付けません。
0379デフォルトの名無しさん
05/02/05 00:26:030380デフォルトの名無しさん
05/02/05 00:28:45どうしようもない
0381デフォルトの名無しさん
05/02/05 00:29:440382デフォルトの名無しさん
05/02/05 00:39:50配列なのは決まってる。
というか、きまってなくて追加だか変更されたきがする
0383デフォルトの名無しさん
05/02/05 00:44:17いつからvectorがCに?
0384デフォルトの名無しさん
05/02/05 00:47:14#include <iostream>
#include <vector>
template <class T>
class Null {
template <class U> struct Po { enum { isPointer = false }; };
template <class U> struct Po<U*> { enum { isPointer = true }; };
public:
enum { isPointer = Po<T>::isPointer };
};
int main()
{
std::cout << std::boolalpha << Null<std::vector<int>::iterator>::isPointer << std::endl;
return 0;
}
0385デフォルトの名無しさん
05/02/05 00:51:010386デフォルトの名無しさん
05/02/05 00:53:490387デフォルトの名無しさん
05/02/05 01:16:30ソラリスのrwlockしたい。
0388デフォルトの名無しさん
05/02/05 01:20:13この糞野郎
スレくらい適切な所を選べ
0389デフォルトの名無しさん
05/02/05 01:33:10ここじゃねぇべか?
う○こ産はどこさ行けばえぇだ?
0390デフォルトの名無しさん
05/02/05 01:37:16ここはC言語のスレであって、世にあるAPIの使い方のスレではないことに注意。
0391デフォルトの名無しさん
05/02/05 01:51:54別にいいじゃねえか
いちいち細かいんだよおまえ
0392デフォルトの名無しさん
05/02/05 01:53:410393デフォルトの名無しさん
05/02/05 02:00:50プログラミングはもっと細かいぞ。
一字一句間違ってはいけないし、代入するとき変数の型が違ってもいけない。
しかも、1回や2回、演算回数が無駄に多いと修正すべきだと言われる。
0394デフォルトの名無しさん
05/02/05 02:06:55じこれす
int n=4;
double theta=3.14159265358979323846*2/n;
double ar1[]={0,2,5,6};
double ar2[]={0,0,0,4};
double ar3[]={0,0,0,0};
double ai1[]={0,0,0,0};
double ai2[]={0,0,0,0};
double ai3[]={0,0,0,0};
fft(n,theta,ar1,ai1);
fft(n,theta,ar2,ai2);
for(int i=0;i<n;++i)
{
ar3[i]=ar1[i]*ar2[i]-ai1[i]*ai2[i];
ai3[i]=ar1[i]*ai2[i]+ai1[i]*ar2[i];
ar3[i]/=n;
ai3[i]/=n;
}
fft(n,-theta,ar3,ai3);
にしたらうごいた。でも結果が10倍されてるの
なんでだろ〜
0395デフォルトの名無しさん
05/02/05 02:13:150396デフォルトの名無しさん
05/02/05 02:14:360397デフォルトの名無しさん
05/02/05 02:31:000398デフォルトの名無しさん
05/02/05 02:33:350399デフォルトの名無しさん
05/02/05 02:37:02ゆとり教育を受けてないのがバレバレですが
0400デフォルトの名無しさん
05/02/05 02:37:320401デフォルトの名無しさん
05/02/05 02:40:04なぜだ、なぜ私が信じられない!!!
0402デフォルトの名無しさん
05/02/05 02:40:520403デフォルトの名無しさん
05/02/05 02:46:220404デフォルトの名無しさん
05/02/05 02:47:390405デフォルトの名無しさん
05/02/05 02:57:520406デフォルトの名無しさん
05/02/05 03:08:160407デフォルトの名無しさん
05/02/05 03:42:33配列サイズは桁数の2倍必要、あと数字の並びが逆だと思う。256*4なら、
int n=6;
double theta=3.14159265358979323846*2/n;
double ar1[]={6,5,2,0,0,0};
double ar2[]={4,0,0,0,0,0};
でやってみそ。
0408デフォルトの名無しさん
05/02/05 03:53:37女でも分かるわ。?
0409デフォルトの名無しさん
05/02/05 04:00:11SIZEOF(KASU) == 408
0410デフォルトの名無しさん
05/02/05 04:22:210411デフォルトの名無しさん
05/02/05 04:32:250412407
05/02/05 04:41:00試してみた。ごめん、そのfftは配列サイズが2のn乗でないとうまくいかない。n=6はダメ
桁あふれしなければ4のままで大丈夫だった。これで、1024が表示された。
int n=4, i;
double theta=3.14159265358979323846*2/n;
double ar1[]={6,5,2,0};
double ar2[]={4,0,0,0};
double ar3[]={0,0,0,0};
double ai1[]={0,0,0,0};
double ai2[]={0,0,0,0};
double ai3[]={0,0,0,0};
fft(n,theta,ar1,ai1);
fft(n,theta,ar2,ai2);
for(i=0;i<n;++i)
{
ar3[i]=ar1[i]*ar2[i]-ai1[i]*ai2[i];
ai3[i]=ar1[i]*ai2[i]+ai1[i]*ar2[i];
ar3[i]/=n;
ai3[i]/=n;
}
fft(n,-theta,ar3,ai3);
for(i=0;i<n-1;i++){
ar3[i+1]+=(int)ar3[i]/10;
ar3[i] = (int)ar3[i] % 10;
}
for(i=n-1; i>=0; i--) printf( "%d",(int)ar3[i]);
printf("\n");
0413デフォルトの名無しさん
05/02/05 10:33:36親プロセスに返したいんですけど何か良い方法はありませんか?
0414デフォルトの名無しさん
05/02/05 10:36:14pipe
socket
0415デフォルトの名無しさん
05/02/05 10:38:46ありがとうございます。
調べて、適切なものを使ってみます。
0416デフォルトの名無しさん
05/02/05 11:14:14もっとお手軽にファイル経由とか。
0418デフォルトの名無しさん
05/02/05 11:17:070419デフォルトの名無しさん
05/02/05 11:27:320421デフォルトの名無しさん
05/02/05 12:54:00因みに、今の指導要領では円周率は概念を教える時には3.14を(例に?)使って教えて、計算では適宜3を使用するっぽい
変数を覚えたら、πを使うっぽい
0422デフォルトの名無しさん
05/02/05 13:18:32汎用性の高さとデバッグの容易さでは?<お手軽
0423デフォルトの名無しさん
05/02/05 15:06:07if ( sizeof( int ) < -1 ) puts("設計したやつ馬鹿だろw");
0424デフォルトの名無しさん
05/02/05 15:16:00Cは何指向というのでしょうか?
0425デフォルトの名無しさん
05/02/05 15:17:520426デフォルトの名無しさん
05/02/05 15:20:160428デフォルトの名無しさん
05/02/05 16:24:56今からC勉強するのはあんまりよくないの?
javaの方がいい?
ちなみに基本情報も受けたい。
0429デフォルトの名無しさん
05/02/05 16:26:010430デフォルトの名無しさん
05/02/05 16:36:36将来糞ほどの役にも立たないよ
0431デフォルトの名無しさん
05/02/05 16:45:57他の言語を勉強するときも、Cやっていた方が理解しやすい
もっとも、Cやっている時間も他の言語につぎ込んだ方が早いだろうが
0432デフォルトの名無しさん
05/02/05 16:48:25実用型
0433デフォルトの名無しさん
05/02/05 16:53:220434デフォルトの名無しさん
05/02/05 16:54:560435デフォルトの名無しさん
05/02/05 17:58:53かなり役立ってます。
人それぞれ
0436デフォルトの名無しさん
05/02/05 18:02:09どんな風に役に立ってるの?
0437デフォルトの名無しさん
05/02/05 18:14:21給料もらうぐらい役立っている。
0438デフォルトの名無しさん
05/02/05 18:18:290439デフォルトの名無しさん
05/02/05 18:19:210440デフォルトの名無しさん
05/02/05 18:38:24ビットとは何のことなんでしょうか。
今、ビット演算子のところを勉強しているのですが
何のことなのかよく分りません。
0441デフォルトの名無しさん
05/02/05 18:43:41こんなとこで聞くより
0442デフォルトの名無しさん
05/02/05 18:46:370443デフォルトの名無しさん
05/02/05 18:46:502進数で表した数、で合ってますか?
0444440
05/02/05 18:49:37でも、どうして数値を2倍にするときに*2ではなく、<<を使うんですか?
*2と記述したほうが読みやすいと思うんですけど・・・
0445デフォルトの名無しさん
05/02/05 18:49:520446デフォルトの名無しさん
05/02/05 18:56:010447デフォルトの名無しさん
05/02/05 18:59:33どーでもいいけど、それ、10進数でも成り立つな。
0448デフォルトの名無しさん
05/02/05 18:59:550449デフォルトの名無しさん
05/02/05 19:00:010450デフォルトの名無しさん
05/02/05 19:00:45「基数」倍するということの本質の片鱗に触れた希ガス
0451デフォルトの名無しさん
05/02/05 19:03:3111 * 1010 = 11110
0452440
05/02/05 19:05:45ビット演算子って頻繁に使われるんですか?
0453デフォルトの名無しさん
05/02/05 19:06:14どういう意味でしょうか・・・
0454デフォルトの名無しさん
05/02/05 19:08:32>*2と記述したほうが読みやすい
色んなものをデバッグしてみりゃわかるけど
<<1 と *2 は両方向瞬時に連想できないと仕事にならん
0455デフォルトの名無しさん
05/02/05 19:10:10>>453
二人まとめて組み込み系でググってみろ
0456440
05/02/05 19:12:05でも、*2のほうが直感的に分りやすいから、<<1と書く必要はないと思うんですよ。
実際に2倍や4倍にするときに<<って使われているんですか?
0457デフォルトの名無しさん
05/02/05 19:15:18CPUの中ではビット演算しかしてないわけだがw
0458デフォルトの名無しさん
05/02/05 19:17:54組み込みでなくても使うぞ
例えばウインドウを表示するのにこんな関数を呼び出すが、
hwnd = CreateWindow("foo", "bar",
WS_POPUP | WS_CAPTION | WS_THICKFRAME | WS_SYSMENU | WS_MAXIMIZEBOX,
0, 0, 640, 480, 0, 0, 0, 0);
複数選択のオプションを組み合わせるのにビットORを使っている
0459デフォルトの名無しさん
05/02/05 19:19:33その方が高速な可能性が高いからそうやっている。しかしながら最近の
コンパイラでは自動的にそのように置き換えを行っていることが多い。
0460デフォルトの名無しさん
05/02/05 19:20:34こういう出力を期待してたら
○○○●○●
↓
○○●○●○
あれ? 何で2倍になってるんだろう・・・
てなことが色んなとこで出てくるよ
0461デフォルトの名無しさん
05/02/05 19:21:12<<すると2倍4倍になるのはあくまで結果の話であって、2倍4倍するために<<使うやつは今どきいない。
0462440
05/02/05 19:23:50まだよく分ってないけど、なんとか頑張って理解してみます。
0463デフォルトの名無しさん
05/02/05 19:27:48おまえさん、金額に0つけたら10倍になるのもあくまで結果の話とのたまうか?
0464デフォルトの名無しさん
05/02/05 19:37:48私の知り合いに居ますよ
0465デフォルトの名無しさん
05/02/05 19:48:180つけたら10倍になるのは結果だが・・・。
逆に10倍にするために0つけることは日常的によく使うな。
でもそれは俺らの脳が10進法ならそれで十分なことを知ってるからであって、乗算の本来のやり方じゃない。
9倍や13倍に応用できない。
最近のコンパイラはその辺最適化してくれるし、
プログラムの場合乗数が変化する可能性も考慮したほうがいいのだから
あえて<<る必要が無い。
0466デフォルトの名無しさん
05/02/05 19:52:10意味わかってね。
0467デフォルトの名無しさん
05/02/05 19:55:50じゃね、>>は?
0468デフォルトの名無しさん
05/02/05 19:55:52うちはCできる人募集中ですよ。
(実際には、最低でもCはできることが条件)
0469デフォルトの名無しさん
05/02/05 19:56:38俺はCだけでなく懸垂が20回できる。
0470デフォルトの名無しさん
05/02/05 19:57:590471デフォルトの名無しさん
05/02/05 19:58:280472デフォルトの名無しさん
05/02/05 20:01:050473デフォルトの名無しさん
05/02/05 20:01:23漏れ5分間息止めれるけどどうですか?
0474デフォルトの名無しさん
05/02/05 20:04:06俺2分… すごいな。
そういえば、ハレー彗星がやってきた時、世界中の空気が5分間だけなくなるとかいう
噂が立って、自転車のチューブがよく売れたという話が…
0475デフォルトの名無しさん
05/02/05 20:24:47ちょっと待て、9進法でも13進法でも通用する話だぞ?
日常的に2進法使ってない PG がいないとは言い切らないけど
自慢するこっちゃねえぜ、少なくとも
>最近のコンパイラはその辺最適化してくれるし、
アフォなコンパイラは普通にあるよ
逃げらんない形でのご対面が怖いんだよ
0476デフォルトの名無しさん
05/02/05 20:30:06・アフォなコンパイラを使わないといけない
・シフト演算使って時間を短縮させないといけない
そんな現場に素人連れて行くのが間違い。
0477デフォルトの名無しさん
05/02/05 20:33:41意味わかんね
0478デフォルトの名無しさん
05/02/05 20:35:30>アフォなコンパイラは普通にあるよ
両方とも本当のことだと思う
0479デフォルトの名無しさん
05/02/05 20:38:46つか、最近のWeb系では2進法使えるPGの方が少数派。
0480デフォルトの名無しさん
05/02/05 20:39:050481デフォルトの名無しさん
05/02/05 20:41:110482デフォルトの名無しさん
05/02/05 20:41:22また、それを使わなければいけない状況とは?
0483デフォルトの名無しさん
05/02/05 20:42:47組み込みとかでアホなコンパイラしかない場合とかじゃない?
0484デフォルトの名無しさん
05/02/05 20:46:03専門外の能力がないことを恥じることはないが自慢することでもない
0485デフォルトの名無しさん
05/02/05 20:48:59> つか、最近のWeb系では2進法使えるPGの方が少数派。
>>478っす。これも多分両方とも間違ってないとおもうけどね。
0486デフォルトの名無しさん
05/02/05 20:49:01あぁ!あるあるあるあるアルマジロですよ!!
0487デフォルトの名無しさん
05/02/05 20:56:160488デフォルトの名無しさん
05/02/05 21:15:240489デフォルトの名無しさん
05/02/05 21:17:320490デフォルトの名無しさん
05/02/05 21:20:23すべてのデータをvoid *で受け渡しして各メソッドでキャストすればOK
0491デフォルトの名無しさん
05/02/05 21:23:060492デフォルトの名無しさん
05/02/05 21:24:540493デフォルトの名無しさん
05/02/05 21:27:04アルカリ性の逆
0494デフォルトの名無しさん
05/02/05 21:27:36ソースの字面が汚い
0495デフォルトの名無しさん
05/02/05 21:30:30ええーまじですこ?
0496デフォルトの名無しさん
05/02/05 21:35:15それぞれの言語に合ったやり方というのがある
本当に必要なら別の言語にしなさい
0497デフォルトの名無しさん
05/02/05 21:36:120498デフォルトの名無しさん
05/02/05 21:43:12え〜!?
0499デフォルトの名無しさん
05/02/05 21:45:31>C言語で無理にポリモフィズムなんかしたって報われないよ
unix 系のファイルシステムは、まさに多態性を行っているように
見えるけど、やっぱりあそこら辺を実装するためには
C++ とか Java とかを使うべきだとでも?
0500デフォルトの名無しさん
05/02/05 21:46:560501デフォルトの名無しさん
05/02/05 21:47:18普通は
if (a || b || c || d) {...}
のように書くと思いますが、
これを
if (a | b | c | d) {...}
と書くのは、邪道ですか?
ショートサーキットのルールとコンパイラの最適化を見越すと
条件が変数の読み込みだけであるなら、
大差ないとはいえ、一応後者の方が速そうですが。
0502デフォルトの名無しさん
05/02/05 21:52:500503デフォルトの名無しさん
05/02/05 21:54:580504デフォルトの名無しさん
05/02/05 21:56:13後で保守が大変だぞぉ
0505デフォルトの名無しさん
05/02/05 22:00:22if(!a--)
と、
hoge->foo->bar
こうやって書くと、いけませんか?
評価順番とか考えると。
0506デフォルトの名無しさん
05/02/05 22:02:03/* どれか一つでも0でない場合 */
0507デフォルトの名無しさん
05/02/05 22:05:3160過ぎのジジィが書きそう
0508デフォルトの名無しさん
05/02/05 22:06:26文法的にはなんら問題なし。
漏れはそのif()見かけたら、そのソースは厄介だろうなって感覚を覚えるけどね。
0509デフォルトの名無しさん
05/02/05 22:12:450510デフォルトの名無しさん
05/02/05 22:14:400511デフォルトの名無しさん
05/02/05 22:17:11ありがとうございます。
確かに、これ書いてあるソース厄介っす(w
今見てるけど。
# 関数ポインタ使うのはいいけど、まるで goto 並に処理飛びまくってます。(愚痴
0512デフォルトの名無しさん
05/02/05 22:20:35それは別。詳細設計がまずいだけ。
0513デフォルトの名無しさん
05/02/05 22:21:360514デフォルトの名無しさん
05/02/05 22:23:550515デフォルトの名無しさん
05/02/05 22:27:08> if(!a--)
コレはあとで見直したとき面倒そうだな・・・
0516デフォルトの名無しさん
05/02/05 22:32:20未熟者
0517デフォルトの名無しさん
05/02/05 22:33:30void ○○( void )
{
return △△
}
void △△
こんな感じのがいっぱいあって、しかもこれがご丁寧にファイル分割してある・・・
ループの中でのこういう分岐の嵐。自分には読みにくい・・・
素直に switch case じゃ駄目なんかなぁ、とかオモタわけです。
0518デフォルトの名無しさん
05/02/05 22:34:57>{
>return △△
アホ
0519デフォルトの名無しさん
05/02/05 22:40:240520デフォルトの名無しさん
05/02/05 22:51:46malloc とか出来るようになったら上級者ですか?!
0521デフォルトの名無しさん
05/02/05 22:55:10いろんな言語のパラダイムを学び、TuringMachineが何かということを理解し、
アルゴリズムとデータ構造の基本を学び、Cがどのようにしてアセンブリに変換される
のかということを学べば中級だろうね。
Cコンパイラが作れる程に理解したら上級。
0522デフォルトの名無しさん
05/02/05 22:55:21設計した人が関数型言語の使い手なんだろうな
と、このようにCでバリバリFPやOOP的に書くと、世の中のCしか
使わない人種がコードを読めなくなるので逆に設計が悪いとか
言われる
だから>>488はCでポリモフィズムなんてやめときなさい
0523デフォルトの名無しさん
05/02/05 22:56:410524デフォルトの名無しさん
05/02/05 22:59:03> 設計した人が関数型言語の使い手なんだろうな
どう見たら関数型言語っぽいんだよ。入力引数void・返り値voidだぞ。
0525デフォルトの名無しさん
05/02/05 22:59:53そうでないと計算量理論が理解できないから。
0526デフォルトの名無しさん
05/02/05 23:01:04スレッドを毛嫌いするおっさんがいたな
0527デフォルトの名無しさん
05/02/05 23:02:170528デフォルトの名無しさん
05/02/05 23:02:29低賃金労働者は口を動かさず手を動かしてなさい。
0529デフォルトの名無しさん
05/02/05 23:06:04voidも同じだ!
0530デフォルトの名無しさん
05/02/05 23:08:08(a) サイトで勉強している
(b) 本を読んでいる。(その場合、一日何冊ぐらいのペースで本を読んだりしてますか?)
(c) その他
軽いアンケートのようなものですが、お答えいただければ嬉しいです。
0531デフォルトの名無しさん
05/02/05 23:10:480532デフォルトの名無しさん
05/02/05 23:12:08わからなかったらとりあえず学校の図書館に篭る
0533デフォルトの名無しさん
05/02/05 23:12:420534デフォルトの名無しさん
05/02/05 23:13:360535デフォルトの名無しさん
05/02/05 23:15:290536デフォルトの名無しさん
05/02/05 23:17:200537デフォルトの名無しさん
05/02/05 23:17:45主に本を読み、補助的にサイトを読んでいる。
セミナーにも参加している。
0538デフォルトの名無しさん
05/02/05 23:18:340540デフォルトの名無しさん
05/02/05 23:20:270541デフォルトの名無しさん
05/02/05 23:26:52その本質さえ感じることができれば
あとはOSのシステムコールなりAPIなりを扱うだけでそこそこのものはできる
つまり学ぶんじゃない!感じるんだ!
0542デフォルトの名無しさん
05/02/05 23:28:24f`::'ー 、,-、-、_ _,....-- 、_ _,....-=―ヽ―-、-、_
,.r'‐'゙´ヽ,r' ヽ \ー、_:::::::::/,´:::::::::::,:::::::,::::::::ヽ::\`ー、
,〃ィ ,rヽ'-ヽ i 、 、 ヾ,、 `'y',ィ´/::::::::/|::::::ハ_::::::::ト、::::\ \ そ
r'/〃// | i! |, \、_`ー!rf.,イ-,ィ/u ノ::::/ |::::`::::|iヽ::::::ヽ ヽ.
iヾ!l i /,.=ヽ i,ケ ハ,i', Y't=ラ゙,〉'|::::r'|! 彡´ ,!--、 |i!|::|::i::::::', ', う
{ヾllッ-, 〃ノ'-'、||ii i|i| |-/! /^ヽ ´ ヾ|从ノ::i::::| ||
>|゙! 0ヽ ノ' ´ 0 レノWノi |,.、!/ 0 0 ',' レ|,イ::::i,,_ | ! だ
',i ヽ- , _, " |i| | | ´ '´ハ',Y .!
/l ` !| | i `´ r 'ー‐' u (-, ' | ! っ
/久 U |! i|'´'、u z_,ノ/ .i |
/イ |ヽ '==..‐_、 |!,'|Y´,ヽ ___ ハ_ ,/i | | た
|ト|、',::::\ _,.-‐イ//-'´::::!\'ー‐--ニュ / ト_、 _| _!,=,|
〉:ヾ_'、::::`ー‐r< //イ|::::::_、:::`7i\ __,..-‐'´ .| |`゙"::"::|-" の
'ー‐'´¨`'ー、/,rケ /,'1ノ人'-‐'`y'/::::, i| ,!, |`iiイ:::::::::|
,〃7,‐/ { ´_,-'´ ,,‐!、=,/.〃::::i i|kハ / ,ヾ、::::::|.|! か
,ッ'、_〃'f /゙-<´ r〃 〃 /イ::::,!ッ'/ ', / / |ト、:|:リ ・
rir' 〃,y'、久_,.rヽ/〃 川/iケir'〃/ ,-'水´ / 〃 \ ・
f::}'ー'〃_i| /::::f|::::', .〃 r/if |||ir' f| レ' r'o | .〃-、 〃 "i ・
,);'ーッ゙-. レ:::::/_|::::::',_,〃=_、!!|| !i/ ||:,ri !o ∨/_)_〃 |
0543デフォルトの名無しさん
05/02/05 23:30:130544デフォルトの名無しさん
05/02/05 23:30:16体現しているスレだな
0545デフォルトの名無しさん
05/02/05 23:31:340546デフォルトの名無しさん
05/02/05 23:33:11おお、あなたカワイソウなひと!
わたしのコード見なさい。
0547デフォルトの名無しさん
05/02/05 23:39:200548デフォルトの名無しさん
05/02/05 23:46:59良し悪しはその人の実力でまちまちなところもあるけど。
0549デフォルトの名無しさん
05/02/06 00:12:17みしてくれ
0550デフォルトの名無しさん
05/02/06 00:35:02漏れんとこくるか?
0551デフォルトの名無しさん
05/02/06 00:38:150552デフォルトの名無しさん
05/02/06 00:43:280553デフォルトの名無しさん
05/02/06 02:48:100554デフォルトの名無しさん
05/02/06 03:35:130555デフォルトの名無しさん
05/02/06 03:50:42ライブラリだけFortranのサブルーチンを使ったりすることってできますか?
FortranのオブジェクトファイルとCのオブジェクトファイルを
リンクしている簡単なサンプルを紹介しているページを探しているんですけど
見つかりません。どなたか教えていただけないでしょうか?
0556デフォルトの名無しさん
05/02/06 05:21:16できますが、最近は大概の有名なライブラリーもCで書き直されているものが多いですね。
> FortranのオブジェクトファイルとCのオブジェクトファイルを
> リンクしている簡単なサンプルを紹介しているページを探しているんですけど
それはコンパイラー依存。どのCとどのFortranを使うかによる。
中には相性が悪い物もあるし。
0557デフォルトの名無しさん
05/02/06 05:26:43> ショートサーキットのルールとコンパイラの最適化を見越すと
こいつアホ。ショートサーキットというか「前から順番に評価して、条件を満たさなくなったら
それより後ろは評価しない」が意味をもつのは、副作用のある式だけだ(関数呼び出しとか)。
だから「||」がそれをやらなきゃいけない運命の演算子だからといって、
副作用がない式ばかりのときには関係ないので、それが原因で遅くなることはあり得ない。
それぐらい考えなくてもわかるだろ ぼけ
0558デフォルトの名無しさん
05/02/06 08:25:23分岐命令が4つの場合と1つの場合では速度が全然変わる
こんなことすら知らない化石頭のじじいはさっさと消えろボケ
0559デフォルトの名無しさん
05/02/06 08:27:24そうかあ? ショートサーキットが入るって事は分岐が入るってことで、
昨今の投機実行やら分岐予測をやらかすプロセッサなら、十分性能に影響ありだぞ。
パイプラインがストールする可能性を考慮したら一本道の|と分岐ありの||を
比べることとは沈丁花にも三分の利だぞ。
0560デフォルトの名無しさん
05/02/06 08:39:17「こいつぼけ。たかが4個の分岐で性能の大勢に影響するわけないだろあほ」
かな。
0561デフォルトの名無しさん
05/02/06 08:53:44人のスタイルを真似しているような奴だからな
0562デフォルトの名無しさん
05/02/06 09:01:09数日間鳴りを潜めて、なに食わぬ顔で戻ってくるんじゃないの
0563デフォルトの名無しさん
05/02/06 10:37:210564デフォルトの名無しさん
05/02/06 10:43:320565デフォルトの名無しさん
05/02/06 13:05:39普通と思っていたんですが、これって実は普通じゃないですか?
#define (a,b,c) \
do { \
foo(a,b); \
bar(b,c); \
} while(0)
0566デフォルトの名無しさん
05/02/06 13:12:52{ \
foo(a,b); \
bar(b,c); \
}
で駄目な理由は?
0567デフォルトの名無しさん
05/02/06 13:39:14すみません、マクロに名前を付け忘れましたが仮に
#define do_something(a,b,c) とすると、
if (expression)
do_something(a,b,c);
else
do_otherthing(a,b,c);
という文を考えたときに do ... while(0) じゃないと
構文エラーになります。{} だけだと
if (expression)
do_something(a,b,c)
else
do_otherthing(a,b,c);
とセミコロンを省略する必要があります。
ああ、こういうのって普通どうでもいいんですかね・・・
0568デフォルトの名無しさん
05/02/06 14:01:51> 分岐命令が4つの場合と1つの場合では速度が全然変わる
だーかーらー、副作用がない式ばかりなら || でも | でも最適化したら
条件判断は1個だけだといってるだろ ぼけ
逆に副作用がある式なら | にしたって1回じゃすまない
0569デフォルトの名無しさん
05/02/06 14:03:33こうやって、話題でもないのにうれしそうに出してくるやつは、
よほど「最近知ったばかりでうれしい」馬鹿っていう証拠。
0570デフォルトの名無しさん
05/02/06 14:03:50マクロである以上それを認識せずに使うとバグが発生する可能性が存在する
なら;つけるとダメになるほうが認識しやすいのではないか?
0571デフォルトの名無しさん
05/02/06 14:13:51>マクロである以上それを認識せずに使うとバグが発生する可能性が存在する
>なら;つけるとダメになるほうが認識しやすいのではないか?
>>570 にとっては
isalpha() なんてのも、
「悪い設計」っていう認識なんだろうな。
0572デフォルトの名無しさん
05/02/06 14:21:39コンパイルエラーが起きず、通常通らないような処理だとしてもそう思う?
#やっとく方が無難だよ。
0573デフォルトの名無しさん
05/02/06 14:28:15大きなCSVのデータファイル(全て数値(整数のみ)で200MB程度)を
すばやく配列に読みこむ方法に関して、教えて下さい。
データファイルをどうにかして、バイナリ化(?)しておいて、読みこめば、
早くなるかな。。。とか考えいるのですが、どんなもんでしょか?
0574デフォルトの名無しさん
05/02/06 14:39:30その大きさだとどうやっても読み込みに時間が掛かる気がするが、
先ずはどうやったらどのくらい時間が掛かるのか調査するところから始めるべし。
0575デフォルトの名無しさん
05/02/06 14:40:05>大きなCSVのデータファイル(全て数値(整数のみ)で200MB程度)を
>すばやく配列に読みこむ方法に関して、教えて下さい。
原理的に、回答は不可能。
しかし、もしもこの質問が
>全て数値(整数のみ)で200MB程度のデータをすばやく読み込みたいのです。
>今はCSV形式を使用しているのですが、これをバイナリ化(?)しておいて、
>読みこめば、速くなるでしょうか?
という文章だったならば、回答の余地があるけど。
0576デフォルトの名無しさん
05/02/06 15:09:40#define do_something(a,b,c) \
({ \
foo(a,b); \
bar(b,c); \
})
でどう?
0577デフォルトの名無しさん
05/02/06 15:18:36実行してみたのか?
0578デフォルトの名無しさん
05/02/06 15:39:30いいえ「するものもある」だけ。もちろん副作用などでないように書くのが当然。
0579デフォルトの名無しさん
05/02/06 15:42:04>>「悪い設計」っていう認識なんだろうな。
いいや。なんら問題ない。同じascii用ならば、
isalpha(*p++)ってやっても問題ないし。(中に条件文かいてるような間抜けなマクロはない!)
0580デフォルトの名無しさん
05/02/06 15:45:37>中に条件文かいてるような間抜けなマクロはない!
getchar() も間抜け?
0581デフォルトの名無しさん
05/02/06 15:48:35副作用があるやつマクロってのは、引数が2回以上展開されるようなやつだ。
0582デフォルトの名無しさん
05/02/06 15:51:57する方法はありますか?
0583デフォルトの名無しさん
05/02/06 15:56:090584デフォルトの名無しさん
05/02/06 16:08:280585デフォルトの名無しさん
05/02/06 16:10:29あふぉ?
0586デフォルトの名無しさん
05/02/06 16:21:070587デフォルトの名無しさん
05/02/06 16:22:07そりゃマクロ名ないからねえ。
コンパイルさえとおらん
0588デフォルトの名無しさん
05/02/06 16:22:53こいつまぬけ
0589デフォルトの名無しさん
05/02/06 16:30:27専用のウィンドウ(DOS窓でない)で起動するRPGを作ると
よいと思う。
0590デフォルトの名無しさん
05/02/06 16:50:160591デフォルトの名無しさん
05/02/06 16:53:37http://pc5.2ch.net/test/read.cgi/tech/1106103119/
0592デフォルトの名無しさん
05/02/06 17:05:040593デフォルトの名無しさん
05/02/06 17:30:36DOS窓が云々と言うあたりからゲイツ環境っぽいが
もしそうなら Win32 API を憶えればいい
ウインドウを表示するだけで 100 行くらい書くが
めげないでがんばれ
0594デフォルトの名無しさん
05/02/06 17:38:30新しく別名でファイルを作成させたいのですが、
# include <stdio.h>
int main (int argc, char *argv[])
{
FILE *fp;
fp = fopen (argv[1], "r");
// ここには開いたファイルから文字列を取得して加工する処理が入ります
fclose (fp);
fp = fopen ("newfile.txt", "w");
fputs ("文字列", fp);
fclose (fp);
return 0;
}
このようにすると
コマンドプロンプトから引数を付けてやれば「newfile.txt」は作成してくれるのですが、
でも何故かドラッグ&ドロップでは何の反応も無いんです。
どうにかドラッグ&ドロップでファイルを開き、
新規ファイルを作成する方法は無いのでしょうか?
環境は WinXP VC++ 6.0 です。
0595デフォルトの名無しさん
05/02/06 17:41:040596デフォルトの名無しさん
05/02/06 17:42:08標準Cではできません
0597デフォルトの名無しさん
05/02/06 17:42:120598デフォルトの名無しさん
05/02/06 17:48:27ええ・・・・、そうなんですか。
Windowsアプリ覚えようかな・・
0599デフォルトの名無しさん
05/02/06 17:51:41596の意味わかってんのか?
0601デフォルトの名無しさん
05/02/06 18:06:46# include <stdio.h>
int main (int argc, char *argv[]) {
int cc;
printf("%s\n%s\n%s\n",argv[0],argv[1],"newfile.txt");
cc=getchar();
return 0;
}
D&Dで起動させてみ。
0602デフォルトの名無しさん
05/02/06 18:07:47xaaview.c:139: warning: assignment discards qualifiers from pointer target type
といわれました、
そして少し改変してみたのですが
xaaview.c:139: warning: assignment makes integer from pointer without a cast
といわれます
具体的に、何がわるいのでしょうか?
0603デフォルトの名無しさん
05/02/06 18:10:39具体的なソースなしに”具体的な回答”は出来ない。
0604デフォルトの名無しさん
05/02/06 18:11:450605デフォルトの名無しさん
05/02/06 18:13:35*i = "hoge";
s = i;
ソースは違いますが具体的にはこのようなかんじです
s = i; が139行目にあたります
0606最凶VB厨房
05/02/06 18:16:47これなんだ?
0607デフォルトの名無しさん
05/02/06 18:19:48i = "hoge";
です
0608最凶VB厨房
05/02/06 18:27:29C言語初心者の俺には全然わからんわぁ。
char *s;
int i;
s = "hoge";
i=s;
こんな感じなコードを書いてるんじゃないかと推測。
ではお出かけ。
0609デフォルトの名無しさん
05/02/06 18:32:160610デフォルトの名無しさん
05/02/06 18:48:46その変数を宣言した部分とエラーが出る行の前後3行くらいだしてみ?
0611デフォルトの名無しさん
05/02/06 19:19:270612デフォルトの名無しさん
05/02/06 19:27:05const char *に char *を代入したりすると出るし、
後者は
int に char *を渡したりすると出る
0613デフォルトの名無しさん
05/02/06 19:44:220614602
05/02/06 19:46:22何度もすいません
static void init_display(const char *gridarg) {
char *s;
if (grid == 1){
s = gridarg;
while(c = *s++) {
if(c<'0' || c>'9') {
if (c == 'x'){
gridx = r;
r = 0;
} } } } }
int main(const int argc, char **argv) {
char *gridarg;
while( getopt(argc, argv, "wz:") != -1 ){
switch( optopt ){
case 'z' :
grid = 1;
gridarg = optarg;
break;
} }
このようなかんじです
0615602
05/02/06 19:49:10main のなかで
init_display(gridarg);
と言うかたちで呼び出しています
改行がおおいと言われたので閉括弧をすべてくっつけました
すいません
0616602
05/02/06 19:51:19何か他にもありましたら指摘お願いいたします
0617デフォルトの名無しさん
05/02/06 19:58:310618デフォルトの名無しさん
05/02/06 20:01:51> 以下は実際のソースからの抜粋です
> 何度もすいません
>
> static void init_display(const char *gridarg) {
> char *s;
> if (grid == 1){
> s = gridarg;
char * に consht char * を代入するな。
s の宣言を const char *s にしろ。
0619602
05/02/06 20:02:41s = gridarg;
の行が139行目です
138行目と、140-144行目はソースのままです
0620602
05/02/06 20:10:24ありがとうございます
全くその通ですね・・・
だから型が違うっていわれてたのか・・・
すいません、初めからソースを書けばいいものを失礼しました
0621594
05/02/06 20:52:58新しく作成させるファイルをフルパスで指定したら言うこと聞いてくれました。。。
fp = fopen ("e:\\fullpath\\newfile.txt", "w");
DOS画面から元ファイルを引数にして起動させる時にはフルパスいらないのに、
D&Dさせるときはフルパスじゃないとだめなんて、不思議。
朝から悩んで12時間疲れたぁ
0622デフォルトの名無しさん
05/02/06 20:55:55実は今までもファイルは作成されていたけど、
どこか別のディレクトリに作成されていたから気付かなかっただけじゃないか?
0623デフォルトの名無しさん
05/02/06 20:59:42int main( void ) {
int a ;
cout << "数字を入れる" ;
scanf( "%d",&a ) ;
cout << "演算結果:" << a ;
getchar() ;
return 0 ;
}
これって、なんでscanf から実行されちゃうんですか?
0624デフォルトの名無しさん
05/02/06 21:03:44゚・ 。 ・。
チャーハン! 。・゚・⌒)
チャーハン! _ _ o━ヽニニフ ))
(゚∀゚ )彡。・゚。・⌒)
⊂ o━ヽニニフ )
( ⌒) ≡=−
し'c ≡=−
スレですね
0625デフォルトの名無しさん
05/02/06 21:21:01カレントディレクトリについて勉強してきな
0626デフォルトの名無しさん
05/02/06 21:21:28ちゃんと仕様通り、順番通りに実行されている
表示を思った順番で出したかったらf
0627デフォルトの名無しさん
05/02/06 21:26:370628デフォルトの名無しさん
05/02/06 21:28:01それはどこを見て「仕様どおり」と分かるのですか?
何かの本でしょうか? だとしたら、自分もそれ欲しいです。
もしよろしければ、本のタイトル教えてください。
正式名称は 『ANSI C 規格書』 とかでしょうか? 馬鹿にされそうですが、よろしくです。
0630デフォルトの名無しさん
05/02/06 21:30:56へえ。副作用がなければ||は最適化で条件判断一個なんだ。
void foo(int a, int b, int c, intd) {
if (a || b || c || d) {
/* do something */
}
}
このifは副作用ないんだけど、最適化で条件判断一個になるんだ…
なるんだよね?
天に臓物を捧げるようなデマ飛ばしちゃいかんよ、チミ。
0631デフォルトの名無しさん
05/02/06 21:48:49>なるんだよね?
もしかしたら
if (a || b || c || d)
を
if (((a!=0)<<3) | ((b!=0)<<2) | ((c!=0)<<=1) | (d!=0))
にコード変換してくれるかも。
副作用さえ起こらなければ、
別に「評価の中断」をしようがしまいが
どちらでもかまわない筈。
0632デフォルトの名無しさん
05/02/06 21:53:06おー、これは私の修行が全く足りていませんでした。
失礼いたしました。
0633デフォルトの名無しさん
05/02/06 21:57:070634デフォルトの名無しさん
05/02/06 22:07:36if (image->format != ZPixmap)
など、 -> とあるのですが
これはどういったいみなのでしょうか?
0635デフォルトの名無しさん
05/02/06 22:10:43(*image).format
と同じ
つまり構造体のポインタを用いてメンバにアクセスする場合に用いる
0636デフォルトの名無しさん
05/02/06 22:10:480637デフォルトの名無しさん
05/02/06 22:13:280638デフォルトの名無しさん
05/02/06 22:33:24http://www.amazon.co.jp/exec/obidos/ASIN/0470845732/
これ買えば
0639デフォルトの名無しさん
05/02/06 22:35:530640デフォルトの名無しさん
05/02/06 22:36:370641デフォルトの名無しさん
05/02/06 22:39:100642デフォルトの名無しさん
05/02/06 22:52:40>>5のPDF
0643デフォルトの名無しさん
05/02/06 23:52:56>>642
どうも、ありがとうございましたっ。
0644デフォルトの名無しさん
05/02/07 00:17:19規格の文面は知らないけど
if (a || b || c || d)
の場合、aの条件が成立していたら、
b以降は、「評価してはいけない」んじゃないかな。
これはもちろん、関数呼び出しや変数の増減以外の、
単純な「変数の値の評価」も含めて。
というのは、極端な話、メモリマップドIOの領域だったら
読み出すだけで動作が変わるわけだし。
volatileを付けても「変数の値が前回と違うかもしれないから毎回読み出す」だけで
「最適化のためにメモリから読み出す」という動作(がもしあるならば)には影響しないはず。
実際、件のif (||)を最適化して分岐を減らすコンパイラというものを
俺は見たことはない。
(脳内コンパイラや脳内標準規格を持っている人のことは知らないが)
0645デフォルトの名無しさん
05/02/07 00:20:49Unlike the bitwise binary & operator, the && operator guarantees
left-to-right evaluation; there is a sequence point after the evaluation
of the first operand. If the first operand compares equal to 0, the second
operand is not evaluated.
とある。特記されている内容もないし、>>644が正解では?
0646デフォルトの名無しさん
05/02/07 03:08:52>>568 で墓穴を掘ってるのをからかってるだけでしょ。
ぼけが、ぼけつを掘る。なんちって。。。
0647デフォルトの名無しさん
05/02/07 06:58:55まさに形而上学の論争だね。
「"評価" は実在するか?」
検索よろ。
0648デフォルトの名無しさん
05/02/07 08:06:53「問題」とは?
「形而上学」とは?
「論争」とは?
「実在」とは?
0649デフォルトの名無しさん
05/02/07 09:01:300650デフォルトの名無しさん
05/02/07 09:02:120651デフォルトの名無しさん
05/02/07 09:10:530652デフォルトの名無しさん
05/02/07 10:04:320653デフォルトの名無しさん
05/02/07 10:16:25>それが原因で遅くなることはあり得ない。
と書きながら、
>最適化したら
と、暗にそのままでは遅いと認めてるし。
で、結局>>501は、
「極度に速度が要求される部分」に「ちゃんとコメントを付けて」
使用するのはアリ、でFA?
0654デフォルトの名無しさん
05/02/07 10:38:45HSPスレにお行きなさい。みなが勇者を待ち望んでおります。
0655デフォルトの名無しさん
05/02/07 10:42:030656デフォルトの名無しさん
05/02/07 10:47:340657デフォルトの名無しさん
05/02/07 16:45:200658デフォルトの名無しさん
05/02/07 16:47:390659デフォルトの名無しさん
05/02/07 18:01:250660デフォルトの名無しさん
05/02/07 18:06:390661デフォルトの名無しさん
05/02/07 18:09:090662デフォルトの名無しさん
05/02/07 19:26:11ググッても出てこなかったので。
0663デフォルトの名無しさん
05/02/07 19:29:080664デフォルトの名無しさん
05/02/07 19:29:180665デフォルトの名無しさん
05/02/07 19:33:230.00〜1.00までとかの乱数を、0.45〜1.00の範囲に変換すればいい
(0〜100を45〜100にするのと同じ要領)
0666デフォルトの名無しさん
05/02/07 19:35:36もう少し詳しく教えてください。
0667デフォルトの名無しさん
05/02/07 19:35:44そのargorithmが分からないから質問しているんですが
0668デフォルトの名無しさん
05/02/07 19:44:080669デフォルトの名無しさん
05/02/07 19:53:19>>667は偽者です
0670デフォルトの名無しさん
05/02/07 19:56:42あんたはわかったのかね、わからなかったのかね
0671デフォルトの名無しさん
05/02/07 19:59:29搾取者より尊い
0672デフォルトの名無しさん
05/02/07 20:15:58値域0.0-1.0から値域0.45-1.0への変換
if (a == 0) b = .45;
if (a == 0.1) b = .45 + .055
if (a == 0.2) b = .45 + .11
以下同様に
if (a == 1) b = 1;
0673デフォルトの名無しさん
05/02/07 20:19:55aが0.0〜1.0の範囲の乱数として、
a * (1.0-0.45) + 0.45
0674デフォルトの名無しさん
05/02/07 20:20:08もう少し
1.0〜100の間の乱数を作る
2.0〜100を0〜55に変換(100→55になるようにすればOK)
3.0〜55を45〜100に変換
0675デフォルトの名無しさん
05/02/07 20:22:22本当なんだから仕方ない。
0676デフォルトの名無しさん
05/02/07 20:35:360677デフォルトの名無しさん
05/02/07 21:36:26if (isdigit(*expression) {
m = strtol(expression, &expression);
push(m);
} else {
switch (*expression++) {
case '+':
m = strtol(expression, &expression);
push(m);break;
case '-':
m = -(strtol(expression, &expression));
push(m);break;
case '*':
m = strtol(expression, &expression);
pop(&n);
m = n * m;
push(m);break;
他の演算子たち
}
スタックの中身を合計
これで累乗を
pop(&n);
if (n>0) {
n = -n;
m = -(pow(n, m));
} else
pow(n, m);
とすると式の始めがマイナスの記号の時正しくない結果になってしまいます。
なにかいい方法があれば教えてください。
0678デフォルトの名無しさん
05/02/07 21:36:480679デフォルトの名無しさん
05/02/07 21:38:240680デフォルトの名無しさん
05/02/07 21:42:55- の - で + にしたいのか、
絶対値部分を取り出して符号反転する気なのか、
どっちだ?
0681677
05/02/07 21:46:570682デフォルトの名無しさん
05/02/07 21:50:45いまどきそんな事を言う人間いたんだ
恥ずかしくない?人として
0683677
05/02/07 21:52:270684デフォルトの名無しさん
05/02/07 22:03:280685デフォルトの名無しさん
05/02/07 22:15:19>>684 ヌッ
0686デフォルトの名無しさん
05/02/07 22:38:16http://nssearch.hp.infoseek.co.jp/clang/1070896646.html
Ctrl+f rand
0687デフォルトの名無しさん
05/02/07 22:41:51動的2次元配列って、どんなんだっけ?
char**pp;
int x,y;
int xx=9,yy=9;
pp=new char*[xx];
for(x=0;x<xx;x++){
pp[x]=new char[yy];
for(y=0;y<yy;y++){
pp[x][y]=x*y;
}
}
for(x=0;x<xx;x++){
delete [] pp[x];
}
delete [] pp;
こんな感じでコンパイル通っちゃったけど、だいじょうぶ?
0688デフォルトの名無しさん
05/02/07 22:48:05CとC++の区別もできねえ奴は氏ね
0689デフォルトの名無しさん
05/02/07 22:50:080690デフォルトの名無しさん
05/02/07 22:54:05ごめんよ。氏ぬほど頑張って思い出すよ。
>689
すまんね。リハビリ程度にmainにベタ書きしてもた。
もっと練ってから来るよ。
0691デフォルトの名無しさん
05/02/07 23:00:040692デフォルトの名無しさん
05/02/07 23:00:38nが-だったら絶対値を-符号にしてpush
+だったら絶対値をpushという風に考えてました。
上記のソースでは0-2^2だと正しい答えになりますが
-2^2だと-4になってしまうので困ってたんですが
-が式の先頭だったら単項の-として扱えば計算できますね。
簡単なことでした。ありがとうございまた。
0693デフォルトの名無しさん
05/02/08 00:56:06そのくせ括弧の内側をあけるぼけ。
0694デフォルトの名無しさん
05/02/08 00:58:520695デフォルトの名無しさん
05/02/08 01:00:13やーい > r
0696デフォルトの名無しさん
05/02/08 01:01:590697デフォルトの名無しさん
05/02/08 01:03:19> 上記のとうり
ぼけ > うり
0698デフォルトの名無しさん
05/02/08 01:04:300699デフォルトの名無しさん
05/02/08 01:14:390700デフォルトの名無しさん
05/02/08 01:23:280701デフォルトの名無しさん
05/02/08 01:52:46ほとんどのサイトで
『グローバル変数は有害である。使うべきではない』
と言われていますが、プロの方たちはグローバル変数をひとつも使わないのでしょうか?
もし使うのなら、どういった基準で使うのでしょうか?
参考> チームではなく個人でプログラム
0702デフォルトの名無しさん
05/02/08 01:54:08OOP学べば?
0703デフォルトの名無しさん
05/02/08 01:55:00なる必要はないんじゃないか?
0704デフォルトの名無しさん
05/02/08 01:55:57何故有害なのかを理解してる?
0705デフォルトの名無しさん
05/02/08 01:58:57グローバル変数ってどの関数からでも参照できちゃうでしょ?
だから、収集つかないの。どの関数からその変数が変更されるかっていうのを把握する
のは、とても難しいのね。
それで、グローバル変数はなるべく使わないということ。
使用するシーンの一例として、ごく小規模なプログラムで、画像処理用のバッファなど
をグローバル変数として宣言して使うことはあるかもしれません。
そういう単一の、共有するリソースならばグローバル変数として扱っても良いでしょう。
C++が使えるなら、グローバル変数を使うシーンは全くありません。
0706デフォルトの名無しさん
05/02/08 02:05:56printf()をあちこちに埋め込むようなデバッグをしているのだが、
全部の関数の開始時とリターン時にprintfを書くのが面倒でつ。
なんか良い方法ないかな?
全部の関数のin,out時にprintfできる便利な方法があったら
教えて下さいです。
0707デフォルトの名無しさん
05/02/08 02:07:530708デフォルトの名無しさん
05/02/08 02:07:56It depends.
0709デフォルトの名無しさん
05/02/08 02:13:17グローバル変数は常にメモリ領域を確保してるからメモリの無駄遣いになりやすい
0710デフォルトの名無しさん
05/02/08 02:14:43そんな決まり、どこにあった?
0711デフォルトの名無しさん
05/02/08 02:17:31独習Cに書いてあったw
0712デフォルトの名無しさん
05/02/08 02:18:280713711
05/02/08 02:20:570714701
05/02/08 02:27:28自身の力不足のため場面によってはグローバル変数以外の手段を見出せないことがあるのですが、
>グローバル変数を使うシーンは全くありません。(>>705さん)
と、グローバル変数に代わる手段があるそうなので、
これからはそういったものを勉強し、役立てたいと思います。
0715デフォルトの名無しさん
05/02/08 02:29:450716デフォルトの名無しさん
05/02/08 02:31:14>と言われていますが、プロの方たちはグローバル変数をひとつも使わないのでしょうか?
翻訳単位をまたぐようなグローバル変数は使わない。
>もし使うのなら、どういった基準で使うのでしょうか?
小規模な使い捨ての個人のプログラムに使う。
他人の、結果がグローバル変数渡しの関数を使わなければならないときに渋々使う。
グローバル変数がプロセスやタスクの終了まで定数と保障されているなら使う。
0717デフォルトの名無しさん
05/02/08 02:37:21参考書みると「C言語の定義でいう「ファイル」同士の差異を吸収してくれるもの」とかいう訳のわからない
説明が載ってるんだけど要するににBIOS=ストリームってこと?
0718デフォルトの名無しさん
05/02/08 02:41:000719デフォルトの名無しさん
05/02/08 02:42:160720デフォルトの名無しさん
05/02/08 02:42:380721デフォルトの名無しさん
05/02/08 02:43:46サンキュ、BIOSってその略だったんだ・・・・^^;
0722デフォルトの名無しさん
05/02/08 02:47:19真に受けるな!!!!
0723デフォルトの名無しさん
05/02/08 02:50:480724デフォルトの名無しさん
05/02/08 02:52:260725デフォルトの名無しさん
05/02/08 06:52:01ワロタ
0726デフォルトの名無しさん
05/02/08 06:57:110727デフォルトの名無しさん
05/02/08 07:05:32「どんなに凝った料理を食べても、
結局、体から出てくる時は皆同じ」って事。
0728デフォルトの名無しさん
05/02/08 07:39:300729デフォルトの名無しさん
05/02/08 07:44:28そうだ、お前のうんちの中のとうもろこしの残骸を食べてやろう。
0730デフォルトの名無しさん
05/02/08 10:02:23あなたは残りの部分を
0731デフォルトの名無しさん
05/02/08 10:25:450732デフォルトの名無しさん
05/02/08 10:33:410733デフォルトの名無しさん
05/02/08 10:38:460734デフォルトの名無しさん
05/02/08 10:53:48Cで使おうとしたんだけど動いてくれない・・・
0735デフォルトの名無しさん
05/02/08 11:02:180736デフォルトの名無しさん
05/02/08 11:14:24#include<math.h>
int k;
float a;
double f[100];
for(k=1;K<100;k++){
f[k]=exp(-k*k/(s*s));
}
とおいたのですが、f[k]は常に1になってしまい、乱数を発生しません。
どこが悪いのでしょうか??
0737デフォルトの名無しさん
05/02/08 11:20:260738デフォルトの名無しさん
05/02/08 11:21:34MFCを使わないでWin32でプログラムしてます。
画像の保存の仕方がよく分からないのですが手軽にできる方法はないでしょうか?
公開するのではなく自分で使うだけなので動けば何でもいいです。
0739デフォルトの名無しさん
05/02/08 12:19:05標準Cではできません
0740デフォルトの名無しさん
05/02/08 12:34:50>グローバル変数ってどの関数からでも参照できちゃうでしょ?
>だから、収集つかないの。
収集がつかなくなるような使い方、設計の方が悪いのであって、
グローバル変数自体が悪いわけではない。
そもそも、適切な設計をすれば、
グローバル変数を多用するような事にはまずならない。
自分たちの非をグローバル変数のせいにするな!
0741デフォルトの名無しさん
05/02/08 12:48:40ttp://www.cmagazine.jp/src/kinjite/c/variable.html#index10
0742デフォルトの名無しさん
05/02/08 12:49:07グローバル変数使わなければ自動的に回避できる問題が多いのに、
わざわざグローバル変数使ってまで注意深く設計する意図がわかりません。
0743デフォルトの名無しさん
05/02/08 13:00:44ネットの下らない議論で時間を浪費するので生産性が低いのは羞恥の事実。
0744デフォルトの名無しさん
05/02/08 16:20:57昔はBASIC出身者が濫用してたらしいが
それにグローバル変数使うと後から読む際読みにくくなる
自分の場合使わない一番の理由は名前考えるの面倒だからなんだけどね
0745デフォルトの名無しさん
05/02/08 16:23:42#iとかjとかaとかbとか? プ
0746デフォルトの名無しさん
05/02/08 16:25:490747デフォルトの名無しさん
05/02/08 16:43:160748デフォルトの名無しさん
05/02/08 17:05:04一応、互換性考えて無意味に最初に宣言する事が多いけど、変数が増えてくるとややこしい
(ループ内でしか使わないようなのもあるし)
0749デフォルトの名無しさん
05/02/08 17:22:251 2 5 6 7
3 5 6 6 6
このようなデータのファイルを配列に入れたいのですが、うまくできません。
for(i=0;i<Num;i++){
for(j=0;j<point;j){
fscanf(fp3,"%d ",&hop[i][j]);
}
}
このようなプログラムではだめなのでしょうか?
0750名無しさん@Vim%Chalice
05/02/08 17:48:390751デフォルトの名無しさん
05/02/08 18:04:26俺は C99 で書いちゃう。もしくは
{
int i;
for (...) {
...
}
}
…かな。
>>749
#define ROWS 5
#define COLS 3
for (i = 0 ; i < ROWS ; ++i) {
for (j = 0 ; j < COLS ; ++j) {
fscanf(fp3, "%d", &hop[i][j]);
}
}
j が増えてねーぞ。
0752デフォルトの名無しさん
05/02/08 18:25:05関数の再利用がし難くなる。
0753デフォルトの名無しさん
05/02/08 18:29:29新しく作ったほうが安いもん。
0754デフォルトの名無しさん
05/02/08 19:29:590755デフォルトの名無しさん
05/02/08 19:47:54if ((y%4 == 0 && y%100 != 0 )||y%400 == 0) {
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
sample3.c:
エラー E2206 sample3.c 8: 不正な文字 '|' (0x8162)(関数 main )
エラー E2206 sample3.c 8: 不正な文字 '|' (0x8162)(関数 main )
エラー E2377 sample3.c 8: If文に ) がない(関数 main )
と表示されて実行できません、何故か何処が誤ってるか解らないんです
何回か再試行していますが、こう表示されてしまいます。
間違っている所を、ご示唆お願い致します。
0756デフォルトの名無しさん
05/02/08 19:50:330757デフォルトの名無しさん
05/02/08 19:51:120758デフォルトの名無しさん
05/02/08 19:54:07どうやれば出せるのでしょうか?すみませんorz
あと If文に ) がない と表示されますが、( は入れています
此は半角でないからでしょうか?
0759デフォルトの名無しさん
05/02/08 19:56:03前者を修正しても消えなかったら再検討で。
0760デフォルトの名無しさん
05/02/08 19:57:01||
0761デフォルトの名無しさん
05/02/08 19:58:27ありがとうです!
0762デフォルトの名無しさん
05/02/08 19:58:27||
↑をコピペしてどうぞ
俺日本語キーボードじゃないんで出し方はシラネ
0763デフォルトの名無しさん
05/02/08 20:00:34とりあえずは一番上のエラーから片付けたほうがいいよ。
0764デフォルトの名無しさん
05/02/08 20:01:27#include<stdlib.h>
main()
{
int u,*h;
for(u=60;u<=100;u=u+10)
{
h=(int *)malloc(sizeof(int));
h=&u;
printf("%3d %10p\n",*h,h);
}
}
このプログラムは合っていますか?
(問題にはポインタ変数のみを用いて表示すること、とあるんですが…。
0765デフォルトの名無しさん
05/02/08 20:08:18#include <stdio.h>
main() {int y;
for(y = 1900; y <= 2000; y++)
{if ((y%4 == 0 && y%100 != 0 )||y%400 == 0)
{printf("%d\n", y);
}
}
return 0;
}
これのソースで 何故 forの前には { が無いのに
ifの前には { があるのでしょうか?
あとC言語に於ける { の意味が解らないんですが
どういう意味なんでしょうか?本やググッテも意味が一向に出てきません
ご教授戴けたら幸いです。
0766デフォルトの名無しさん
05/02/08 20:08:24解放し忘れてる
0767デフォルトの名無しさん
05/02/08 20:09:41それのどこが問題なの?
0768デフォルトの名無しさん
05/02/08 20:11:18void sure_chigai_sine(std::ostream& shared = std::cout)
{
shared << "koitsu boke" << std::endl;
}
規模の小ささなんぞどうねじ曲げると
画像処理用のバッファを外部変数にする動機になるんだよ
おおかた「外部変数じゃなきゃやだやだじたばた」系の
非論理的なバイアスフィルタでも入ってるんじゃねえのかw3
0769デフォルトの名無しさん
05/02/08 20:11:44main() 内に return 文がない。
0770デフォルトの名無しさん
05/02/08 20:13:19C++ はスレ違い。お前もイッテヨシ。
0771デフォルトの名無しさん
05/02/08 20:16:16目的が分からないのに合ってるかどうか分かるかよ、ボケ。
あと u = u + 10 じゃなくて、+= 使ってくれ。
>>765
> これのソースで 何故 forの前には { が無いのに ifの前には { があるのでしょうか?
マジレスすると入門書をキチンと理解してください。
イチから読み直せ。書いてねーわけねー。
0772デフォルトの名無しさん
05/02/08 20:16:29(・∀・)ニヤニヤ
0773764
05/02/08 20:21:51#include <stdlib.h>
main(){
int v,l,*t,*p;
printf("%p\n",&l);
v=1;
t=&v;
printf("%p\n",t);
printf("%d\n",*t);
p=(int *)malloc(sizeof(int));
l=2;
p=&l;
printf("%p\n",p);
printf("%d\n",*p);
}
整数型のメモリの動的確保っていうのはする必要がないのでしょうか?
#include <stdio.h>
#include <stdlib.h>
main(){
int l,*p;
l=4;
printf("%p\n",p);
p=(int *)malloc(sizeof(int));
*p=l;
printf("%p\n",p);
printf("%d\n",*p);
}
こうすると最初のprintfのアドレスは表示されないのですが。
0774デフォルトの名無しさん
05/02/08 20:22:49for(y = 1900; y <= 2000; y++)
1) {if ((y%4 == 0 && y%100 != 0 )||y%400 == 0)
2) {printf("%d\n", y);
3) }
4) }
1)の { はfor文の始まり、4)の } はfor分の終わり。
つまり1から4までが、forの条件の下に繰り返されるということ。
2)の { はif文の始まり、3)の } はif文の終わり。
つまりifの条件が合えば2から3までが実行されるということ。
ちなみに { } の中が1つの文だけの場合、 { } はいらない。
いちおう丁寧に説明したつもりだけど、これは直感的に理解することだよ。
0775デフォルトの名無しさん
05/02/08 20:24:01u=u+10;
ってダメなの?
0777デフォルトの名無しさん
05/02/08 20:36:38加算して代入
0778デフォルトの名無しさん
05/02/08 20:39:25どうしようもない学生が増えたのか、
それとも一人が複数に見えるのか…
0779デフォルトの名無しさん
05/02/08 20:40:44ハァ?「足し込む」って言えやボケ
0780765
05/02/08 20:41:06もう一個そこで疑問に残る事があるんですが
何故、{プログラム〜〜}
例えば
{if ((y%4 == 0 && y%100 != 0 )||y%400 == 0)}
{printf("%d\n", y); }
このように{}閉じで終わらせるとエラーが出て、いけないんでしょうか?
で、{ プログラム〜〜〜
{プログラム〜〜
}
}
みたいに最後に{ を付けた分だけ、最後に括らなければいけないんでしょうか?
これが毎回、とても疑問に思います。
0781デフォルトの名無しさん
05/02/08 20:45:05Python使え
0782765
05/02/08 20:49:300783デフォルトの名無しさん
05/02/08 20:55:17サンプルを色々見てると分かると思うよ。
直感的に理解するところだから、説明がしづらい。
それに単なる文法の規則だと思うから、覚えてもらうしかない。
0784デフォルトの名無しさん
05/02/08 20:55:20> h=(int *)malloc(sizeof(int));
この行は要らない。
0785デフォルトの名無しさん
05/02/08 20:57:57納期には間に合わず、かといって引数だらけで再利用する機会も
無いコードの残骸が残っただけであった・・・
0786デフォルトの名無しさん
05/02/08 20:58:11そうなんですか。直感ですね。
やっぱしC言語は難しいです。
これからも諦めず、がんばります。
ありがとうでした。
0787デフォルトの名無しさん
05/02/08 20:59:27お前才能ないわ。
0788デフォルトの名無しさん
05/02/08 21:01:380789デフォルトの名無しさん
05/02/08 21:02:27ありがとうございます。
#include <stdio.h>
#include <stdlib.h>
main(){
int *p;
printf("%p\n",p);
p=(int *)malloc(sizeof(int));
printf("%p\n",p);
}
これの実行結果が下でした
CCCCCCCC
00780EC0
0790デフォルトの名無しさん
05/02/08 21:02:570791デフォルトの名無しさん
05/02/08 21:04:07オマエモナー、
グローバル毛嫌いする理由分からん。
OSのデータにアクセスできなったら困るわ
0792デフォルトの名無しさん
05/02/08 21:06:24>OSのデータにアクセスできなったら困るわ
真性のバカですか?
>どういうわけか無能なプログラマほどグローバル変数を偏愛し,有能な人ほど避けるものです。
どうやらこれは正しかったようだ
0793デフォルトの名無しさん
05/02/08 21:11:51がいじめるー、でもがんばる。
よく聞けよ。
世界はグローバルな変数で満ち溢れてるんだよ、
0794デフォルトの名無しさん
05/02/08 21:23:510795デフォルトの名無しさん
05/02/08 21:36:03そう、俺の愛はグローバルさ。
0796デフォルトの名無しさん
05/02/08 21:37:46>これからは国際化時代でグローバルスタンダードだもんね。みたいな),
0797デフォルトの名無しさん
05/02/08 21:42:01きっとその方が楽だよ。アメリカもイギリスも英語使っているし、後進国である日本
が白人様のご英知を存分にいただくには英語を標準語にするしかない。
0798デフォルトの名無しさん
05/02/08 21:42:04(・∀・)ヘイヘーイ!!
0799デフォルトの名無しさん
05/02/08 21:53:40うちの近所にいる白人様は「グラッチェグラッチェ、ハッハッハッ」と言ってますが、
どう扱えばいいですか?
0800デフォルトの名無しさん
05/02/08 21:55:004様x200
0801デフォルトの名無しさん
05/02/08 21:55:16拝みなさい。
0802デフォルトの名無しさん
05/02/08 21:56:47スゲーよ、英語なんぞクソ食らえだな。
0803デフォルトの名無しさん
05/02/08 22:00:530804デフォルトの名無しさん
05/02/08 22:59:02C99ならいいんだけどなぁ
0805デフォルトの名無しさん
05/02/08 23:02:13#include<stdlib.h>
#include<time.h>
main(){
int b,c[6];
srand(time(0));
for(b=0;b<6;b++)
{
c[b]=rand()%(43)+1;
printf("%d\n",c[b]);
}
上のランダムの関数について質問なのですが、
「time()は”1970年1月1日から何秒たったか”という数を返すコマンド
つまり経過時間によって返す値が変わってくる」と説明があったのですが、
上の場合1〜43の数字からランダムに数字が選択されて出力されると思うのですが、
(数字がダブルこともあるが、きちんとシャッフルされている)
どれくらいシャッフルされて数字が選択されるのでしょうか?
0806デフォルトの名無しさん
05/02/08 23:03:32実装によるから答えられない
0807デフォルトの名無しさん
05/02/08 23:04:050808デフォルトの名無しさん
05/02/08 23:11:31立ち読みだからあんまり覚えてないけど
0809デフォルトの名無しさん
05/02/08 23:17:40つうか一体何を心配してるんだ?
0810デフォルトの名無しさん
05/02/08 23:23:46関数のことをコマンドってゆーな
っつうのはいいとして、rand()%43 の乱雑さは信用ならないと思え。
使うなら上位ビットの方がまし。
0811デフォルトの名無しさん
05/02/08 23:25:19> rand()%43 の乱雑さは信用ならない
どこでそう決められてるの?
0812デフォルトの名無しさん
05/02/08 23:27:38それ昔の実装の話か?
まあ気になるならデヴかMT使っとけ
0813デフォルトの名無しさん
05/02/08 23:27:38標準Cにおいてrandの実装が上位ビットがマシという根拠は何?
0814デフォルトの名無しさん
05/02/08 23:36:29奏すれば平均化される、ぷ
0815デフォルトの名無しさん
05/02/08 23:52:580816デフォルトの名無しさん
05/02/09 00:07:08ttp://www.soi.wide.ad.jp/class/20010000/slides/03/index_1.html
#松本 眞氏…MTの中の人
0817デフォルトの名無しさん
05/02/09 00:19:02同じ研究室だった。
0818デフォルトの名無しさん
05/02/09 00:22:350819デフォルトの名無しさん
05/02/09 00:24:07#define MACRO( a ) (100*a)
当然だが、こうやると2重定義になる。
でもどうしても同じシンボル名で関数型マクロとデータ型マクロを
混在使用したいのだが、良い方法ないかな?
0820デフォルトの名無しさん
05/02/09 00:25:260821デフォルトの名無しさん
05/02/09 00:39:57これで通る筈。
#define MACR0 100
#define MACRO( a ) (100*a)
0822デフォルトの名無しさん
05/02/09 00:46:03プリプロセッサ書け。
0823デフォルトの名無しさん
05/02/09 00:53:440824デフォルトの名無しさん
05/02/09 00:55:130825デフォルトの名無しさん
05/02/09 01:00:38マインスイーパーってなに?
アルゴリズム提示しろそうすれば、NPでも解が得られるかも
知れない
0826デフォルトの名無しさん
05/02/09 01:02:490827デフォルトの名無しさん
NGNGどうすればいいですか?
0828デフォルトの名無しさん
05/02/09 01:11:25ま、精進するんだな。
http://pc.2ch.net/test/read.cgi/tech/984182993/385
http://pc.2ch.net/test/read.cgi/tech/984182993/537
http://pc.2ch.net/test/read.cgi/tech/984182993/540
0829デフォルトの名無しさん
05/02/09 01:16:57C-FAQに書いてたような気がする。
0830デフォルトの名無しさん
05/02/09 01:20:27もしかして全部DAT落ちですか
0831デフォルトの名無しさん
NGNG探したらありました。すみませんでした。
0832デフォルトの名無しさん
05/02/09 01:24:370833デフォルトの名無しさん
05/02/09 01:26:07彼が使っているシステムにファイルシステムがあるから質問しているんだと思うが。
0834デフォルトの名無しさん
05/02/09 01:26:10ふぁイルシステムはいらないけど、でもプログラムの
ロードストアで必要です、ごめんよ。
0835デフォルトの名無しさん
05/02/09 02:19:280836デフォルトの名無しさん
05/02/09 02:20:460837デフォルトの名無しさん
05/02/09 02:21:16必ずしなきゃいけないことはない
0838835
05/02/09 02:25:35ありがとうございます。
0839デフォルトの名無しさん
05/02/09 02:36:38しないと駄目。
0840デフォルトの名無しさん
05/02/09 03:20:550841デフォルトの名無しさん
05/02/09 03:43:120842デフォルトの名無しさん
05/02/09 03:43:51もし癖を付けておかないと、サウンドデバイスを開いた時などもきっと閉じ忘れるよ。
0843デフォルトの名無しさん
05/02/09 05:18:19error C2078: 初期化子の数が多すぎます。
というエラーメッセージが出ます。どうすればいいでしょうか?
0844デフォルトの名無しさん
05/02/09 05:54:03スレ違いではあるんだが…
処理系と定義を記してみよ。おそらくVCだと思うんだが。
0845デフォルトの名無しさん
05/02/09 08:45:06いいえ、パッチSWITCHで充分
0846デフォルトの名無しさん
05/02/09 08:46:06opendir
system("ls")
0847デフォルトの名無しさん
05/02/09 09:06:59大きい配列は関係ないと思う。
char a[3] = {1,2,3,4};
みたいになっているだろ?
0848デフォルトの名無しさん
05/02/09 09:28:02せっかくエラーメッセージを日本語に翻訳したのになぜ理解できないのか。
0849デフォルトの名無しさん
05/02/09 09:37:070850デフォルトの名無しさん
05/02/09 09:37:430851デフォルトの名無しさん
05/02/09 11:50:490852デフォルトの名無しさん
05/02/09 11:53:500853デフォルトの名無しさん
05/02/09 12:02:46( ;´∀`) ちんこ勃ってきた。
人 Y /
( ヽ し
(_)_)
0854デフォルトの名無しさん
05/02/09 12:12:590855デフォルトの名無しさん
05/02/09 12:51:380856デフォルトの名無しさん
05/02/09 12:56:46↑これ何?
0857デフォルトの名無しさん
05/02/09 12:59:560858デフォルトの名無しさん
05/02/09 13:06:33意味ワカラン
0859デフォルトの名無しさん
05/02/09 13:14:350860デフォルトの名無しさん
05/02/09 13:18:130861デフォルトの名無しさん
05/02/09 13:29:17センスのかけらも無い人間だな
0862デフォルトの名無しさん
05/02/09 14:17:38;-) ウインク
何度見ても壁から顔を半分だけ出してじーっと見ているようにしか見えない。
0863デフォルトの名無しさん
05/02/09 14:26:150864デフォルトの名無しさん
05/02/09 14:46:41これってなんですか?
0865デフォルトの名無しさん
05/02/09 14:48:050866デフォルトの名無しさん
05/02/09 14:56:07http://e-words.jp/w/NaN.html
0867デフォルトの名無しさん
05/02/10 00:11:570868デフォルトの名無しさん
05/02/10 00:23:59パン屋さんで売っているよね。パン屋さんに普段行かないから、最近知った。
0869デフォルトの名無しさん
05/02/10 00:39:120870デフォルトの名無しさん
05/02/10 00:57:530871デフォルトの名無しさん
05/02/10 01:10:510872デフォルトの名無しさん
05/02/10 02:14:06128bitでアライメントのとれてるメモリを確保したいのですが、
いまいちきれいな手を思いつかないので、
とりあえず、手元の gcc 3.3 + glibc 2.3 な linux たと、
malloc した結果は 64bit 境界ではアライメントあってるらしいという前提のもと、
いまのところ、double 一個分多めにmallocしといて、
if( (long)v % 16 ) v++;
とかいうなんだかなーってことやってます。
共用体つかうとか、ビット演算でマスクとアンドとるとか、
すれば何とかなりそうな気はするのですが、
ポインタのサイズを決めうちにしない方法がわからず...
Cでアライメントとる定石とかあれば、教えてえろいひと
0873デフォルトの名無しさん
05/02/10 02:47:13使ったこと無いけど。
0874デフォルトの名無しさん
05/02/10 03:43:480875デフォルトの名無しさん
05/02/10 03:47:08足してand
0876デフォルトの名無しさん
05/02/10 03:47:11家から歩いて3分くらいのところだったからいつも行ってたなあ。
0877デフォルトの名無しさん
05/02/10 03:48:21とグローバルに確保して自分で管理
0878デフォルトの名無しさん
05/02/10 07:44:13アライメントしたアドレスとし、そのアドレス-4に実際に捕捉した
アドレスを入れる。
解放処理では-4のアドレスから本来の捕捉アドレスを取得してfree。
なんてのをSSE最適化を行っているプログラムでみたよ。
0879デフォルトの名無しさん
05/02/10 08:39:380880デフォルトの名無しさん
05/02/10 15:44:53普通の配列の宣言ではどれくらいまで確保できるでしょうか?
それとも、そのような用途に使うのでれば別の手段を使った方がいいのでしょうか?
allocなどは動的メモリの確保で大量確保の手段ではないですよね?
0881デフォルトの名無しさん
05/02/10 15:48:19大量に取るならmalloc使っとけ。OSの許す限界まで取れる。
配列じゃサイズ固定で使いづらいし、もしローカルに取ったら一発でアボーンだぞ。
0882デフォルトの名無しさん
05/02/10 15:48:40やりたい事を詳しく。
0883デフォルトの名無しさん
05/02/10 15:50:030884デフォルトの名無しさん
05/02/10 15:50:13普通の配列がどれくらいの要素数まで使えるかというのは環境依存。
少なくともmalloc/callocは普通の配列よりよっぽど多くメモリを確保できる。つまり大量確保にも使う。
0885デフォルトの名無しさん
05/02/10 15:52:310886デフォルトの名無しさん
05/02/10 15:52:46目安として要素数10000以上の配列は宣言するな。
0887デフォルトの名無しさん
05/02/10 15:53:17VC++のデフォルトでは1MB
0888デフォルトの名無しさん
05/02/10 15:53:330889デフォルトの名無しさん
05/02/10 15:53:35何故ですか?
0890デフォルトの名無しさん
05/02/10 15:54:56経験則。
0891デフォルトの名無しさん
05/02/10 15:55:42このゴミ野郎め。
0892デフォルトの名無しさん
05/02/10 15:56:19はいまだにCP/M使い
0893デフォルトの名無しさん
05/02/10 15:56:45よくわからん罵倒だな。
経験則はきちんと証明された理論がない限り重要だよ。
0894デフォルトの名無しさん
05/02/10 15:58:00スタックに取るとは書いてないな
0895デフォルトの名無しさん
05/02/10 15:58:46配列はスタックに取られるものじゃないの?
0896デフォルトの名無しさん
05/02/10 16:01:00お前の中では重要かもしれんが
人に教えるのであれば、そんなあいまいな事言うなよ
0897デフォルトの名無しさん
05/02/10 16:01:150898デフォルトの名無しさん
05/02/10 16:01:32そうとは決まっていない。
0899デフォルトの名無しさん
05/02/10 16:01:54これが俺の経験則
0900デフォルトの名無しさん
05/02/10 16:03:17これが俺の経験則
0901デフォルトの名無しさん
05/02/10 16:08:14>>880が何をやりたいか言わない限り結論は出ない
0902デフォルトの名無しさん
05/02/10 16:08:44俺の経験則では複雑な文字列処理をする時はCを使うこともあるな。
0903デフォルトの名無しさん
05/02/10 16:09:190904デフォルトの名無しさん
05/02/10 16:09:25で結論でてるじゃないか。
0905880
05/02/10 16:10:30用途は仲間内で使うデータベースです。
mallocでいこうとおもいます。
0906デフォルトの名無しさん
05/02/10 16:11:47まてや・・・おまえな・・・
もういい。
0907デフォルトの名無しさん
05/02/10 16:11:51自分でデータ管理するのは愚の骨頂
0908デフォルトの名無しさん
05/02/10 16:18:16禿同。
0909880
05/02/10 16:19:04私がもらった時に既にテキストエディタで頭の悪い独自の記述をされていて
それ専用の対応が必要なんです。
データが多いので今回なんとかしようと思いまして。
スレ違いになるのでこれで去りますね。
0910デフォルトの名無しさん
05/02/10 16:21:30藻前が作るソフトの方が対応出来ない。
0911デフォルトの名無しさん
05/02/10 16:21:48そのときは、移行プログラム作るべし、
幾ら変なフォーマットでも規則性はあるだろう?
後が楽だよ。
0912デフォルトの名無しさん
05/02/10 16:21:50ここに質問に来る分際で、頭の悪い記述かどうかを判断できると思っているのか?
0913909
05/02/10 16:29:45じゃあこれから4wayサーバとOracle買ってきますよ。
これで満足ですか?
じゃあさよなら。
0914C初心者
05/02/10 16:33:19ANSI Cで書かれたコマンドラインフリーウェアーをDLLに移植したいと考えているのですが、
これは可能でしょうか?また手順などがありましたらご教授願います。
0915デフォルトの名無しさん
05/02/10 16:33:31うわ、逆ギレ
こういう奴が新卒で入ってくると迷惑だったりするんだよな。
0916デフォルトの名無しさん
05/02/10 16:34:420917デフォルトの名無しさん
05/02/10 16:34:53ソースはあるのかないのか。
0919デフォルトの名無しさん
05/02/10 16:37:13バカ、名前が今までと違うだろ。
釣られるな。
0920デフォルトの名無しさん
05/02/10 16:46:08VCのDLLプロジェクト作ってソースプロジェクトに登録して
ヘッダをDLL用に書き換えてビルドするだけ。
詳細はまずはヘルプ嫁。
0922デフォルトの名無しさん
05/02/10 17:01:00まず、「DLLとは何か?」から勉強し直せ。
0923デフォルトの名無しさん
05/02/10 17:03:090924デフォルトの名無しさん
05/02/10 17:50:30DB勧めたりして干渉する必要も無いと思うから、ほっとけば良いだけだと思うがな
(親切心だろうが、DB作成で本人が困ってもそれはここで議論する必要ない話だし…C言語スレなんだから)
0925デフォルトの名無しさん
05/02/10 19:19:33C言語で引数と出てきますが
意味が解りません、教本をみても意味が載っていません
ご示唆、お願い致します。
0926デフォルトの名無しさん
05/02/10 19:31:340927925
05/02/10 19:34:21もし宜しければも、う少し簡単には御説明しては、戴けないでしょうか?
無理を言って、すみません。
0928デフォルトの名無しさん
05/02/10 20:04:05プログラミング辞書でググって。
0929デフォルトの名無しさん
05/02/10 20:05:160930デフォルトの名無しさん
05/02/10 20:06:240931デフォルトの名無しさん
05/02/10 20:10:49すぐに平静を失って無駄な発言を書く馬鹿ももレスつけないでいいですよ。
0932デフォルトの名無しさん
05/02/10 20:23:310933デフォルトの名無しさん
05/02/10 20:40:440934デフォルトの名無しさん
05/02/10 20:45:540935デフォルトの名無しさん
05/02/10 21:43:03VisualC++.NET(非2002) &MFC
でバイナリデータ扱うPGやってるんだけど、
unsigned char a;
a=0x80; ←これは出来る
b=0x81; ←何故かbには0しか入らない
色々調べていると、どうやら漢字の1バイト目(0x81〜0x9f)だけは何を代入しても0になってしまうみたいで、
コンパイル警告も何も出ないしさっぱり分からん。
何か根本がおかしい気がするんだけど・・・何とかならんのこれ?
0936デフォルトの名無しさん
05/02/10 21:43:59C言語とは関係ありません
0937デフォルトの名無しさん
05/02/10 21:44:180938デフォルトの名無しさん
05/02/10 21:47:28どういう事?
どうやったら代入出来るのかキボンヌ
0939デフォルトの名無しさん
05/02/10 21:48:010940デフォルトの名無しさん
05/02/10 21:48:290941デフォルトの名無しさん
05/02/10 21:51:29同じunsigned char。
BYTEにしてもダメだった。
0942デフォルトの名無しさん
05/02/10 22:23:44いいえ。同じぐらいです。
0943デフォルトの名無しさん
05/02/10 22:29:260944デフォルトの名無しさん
05/02/10 22:31:03ふつうlexつかうだろ ぼけ
0945デフォルトの名無しさん
05/02/10 22:33:08知ってて言ってるんだろうとは思うんだけど。
0946941
05/02/10 22:38:05ブレークポイントでウオッチしたら「中身は0」って表示されるが、
TRACEマクロで中身見たらちゃんと81〜9Fが入っとる
なんだコレは・・
一体どっちを信じれば・・・○| ̄|_
0947デフォルトの名無しさん
05/02/10 22:39:030948デフォルトの名無しさん
05/02/10 22:43:08/Od で切ってます・・・orz
0949デフォルトの名無しさん
05/02/10 23:01:080x81〜0x90はShift JISの2バイト文字の1文字目に当たるから。
ウォッチだと続く2バイト目が無いから0と表示されているんだったはず。
0950デフォルトの名無しさん
05/02/10 23:03:460951デフォルトの名無しさん
05/02/10 23:35:58感謝!!!!
悩んで眠れなくなるところでした・・・○| ̄|_
>950
試してみます。�dクス。
0952デフォルトの名無しさん
05/02/11 00:47:040953デフォルトの名無しさん
05/02/11 01:56:44漏れホスト規制で立てらんない。
0954デフォルトの名無しさん
05/02/11 11:41:46http://pc5.2ch.net/test/read.cgi/tech/1108056236/
0955デフォルトの名無しさん
05/02/11 14:17:410956デフォルトの名無しさん
05/02/11 14:18:420957デフォルトの名無しさん
05/02/11 14:24:420958デフォルトの名無しさん
05/02/11 14:39:160959デフォルトの名無しさん
05/02/11 15:03:520960デフォルトの名無しさん
05/02/11 17:27:58禿同
0961デフォルトの名無しさん
05/02/11 18:48:370962デフォルトの名無しさん
05/02/11 19:06:420963デフォルトの名無しさん
05/02/11 19:16:410964デフォルトの名無しさん
05/02/11 19:24:160965デフォルトの名無しさん
05/02/11 19:32:540966デフォルトの名無しさん
05/02/11 19:34:360967デフォルトの名無しさん
05/02/11 20:51:400968デフォルトの名無しさん
05/02/11 20:53:280969デフォルトの名無しさん
05/02/11 20:54:010970デフォルトの名無しさん
05/02/11 20:56:460971デフォルトの名無しさん
05/02/11 20:57:380972デフォルトの名無しさん
05/02/11 21:01:250973デフォルトの名無しさん
05/02/11 21:03:360974デフォルトの名無しさん
05/02/11 21:04:300975デフォルトの名無しさん
05/02/11 21:06:270976デフォルトの名無しさん
05/02/11 21:09:570977デフォルトの名無しさん
05/02/11 21:12:490978デフォルトの名無しさん
05/02/11 21:13:520979デフォルトの名無しさん
05/02/11 21:14:100980デフォルトの名無しさん
05/02/11 21:14:340981デフォルトの名無しさん
05/02/11 21:15:120982デフォルトの名無しさん
05/02/11 21:15:500983デフォルトの名無しさん
05/02/11 21:16:530984デフォルトの名無しさん
05/02/11 21:18:31, ' ´ `ヽ、
,/ __,,,,=- 、 ヽ,
ノ ,= ̄ i ,__ノ_i、イ ヽ 何このスレ・・・
~i. ´、i_,,V ,'rヽヽiノ i、
______i ヽr'rヽ, `'´ |/ヽ人ル'
::::| ______ヽi/ ヽ`' __ u_レト 、ノノ
::::| | |ノi `' --, '´  ̄`ヽ,
::::| | レ ノレ /´ \
::::| | NULL ,く`ヽ、____,,,,,,, イゝ
::::| | ⊂',⌒ヽヽ/' 〜 〜〜 ~~イヽ
::::| |______ゝr⌒ 、 イ iノ
::::|________i、 /i ,ゝ
___========__ヽ_,/く__,,i,---´iヽ、
________________________________//
0985デフォルトの名無しさん
05/02/11 21:21:32, ' ´ `ヽ、
,/ __,,,,=- 、 ヽ,
ノ ,= ̄ i ,__ノ_i、イ ヽ 何このスレ・・・
~i. ´、i_,,V ,'rヽヽiノ i、
______i ヽr'rヽ, `'´ |/ヽ人ル'
::::| ______ヽi/ ヽ`' __ u_レト 、ノノ
::::| | |ノi `' --, '´  ̄`ヽ,
::::| | レ ノレ /´ \
::::| | nullpo ,く`ヽ、____,,,,,,, イゝ
::::| | ⊂',⌒ヽヽ/' 〜 〜〜 ~~イヽ
::::| |______ゝr⌒ 、 イ iノ
::::|________i、 /i ,ゝ
___========__ヽ_,/く__,,i,---´iヽ、
________________________________//
0986デフォルトの名無しさん
05/02/11 21:27:22, ' ´ `ヽ、
,/ __,,,,=- 、 ヽ,
ノ ,= ̄ i ,__ノ_i、イ ヽ 何このスレ・・・
~i. ´、i_,,V ,'rヽヽiノ i、
______i ヽr'rヽ, `'´ |/ヽ人ル'
::::| ______ヽi/ ヽ`' __ u_レト 、ノノ
::::| | |ノi `' --, '´  ̄`ヽ,
::::| | レ ノレ /´ \
::::| | NULL ,く`ヽ、____,,,,,,, イゝ
::::| | ⊂',⌒ヽヽ/' 〜 〜〜 ~~イヽ
::::| |______ゝr⌒ 、 イ iノ
::::|________i、 /i ,ゝ
___========__ヽ_,/く__,,i,---´iヽ、
________________________________//
0987デフォルトの名無しさん
05/02/11 21:28:24, ' ´ `ヽ、
,/ __,,,,=- 、 ヽ,
ノ ,= ̄ i ,__ノ_i、イ ヽ 何このスレ・・・
~i. ´、i_,,V ,'rヽヽiノ i、
______i ヽr'rヽ, `'´ |/ヽ人ル'
::::| ______ヽi/ ヽ`' __ u_レト 、ノノ
::::| | |ノi `' --, '´  ̄`ヽ,
::::| | レ ノレ /´ \
::::| | がっ!! ,く`ヽ、____,,,,,,, イゝ
::::| | ⊂',⌒ヽヽ/' 〜 〜〜 ~~イヽ
::::| |______ゝr⌒ 、 イ iノ
::::|________i、 /i ,ゝ
___========__ヽ_,/く__,,i,---´iヽ、
________________________________//
0988デフォルトの名無しさん
05/02/11 21:29:310989デフォルトの名無しさん
05/02/11 21:31:09, ' ´ `ヽ、
,/ __,,,,=- 、 ヽ,
ノ ,= ̄ i ,__ノ_i、イ ヽ 何このスレ・・・
~i. ´、i_,,V ,'rヽヽiノ i、
______i ヽr'rヽ, `'´ |/ヽ人ル'
::::| ______ヽi/ ヽ`' __ u_レト 、ノノ
::::| | |ノi `' --, '´  ̄`ヽ,
::::| | レ ノレ /´ \
::::| | http://pc5.2ch.net/test/read.cgi/tech/1108056236/
::::| | ⊂',⌒ヽヽ/' 〜 〜〜 ~~イヽ
::::| |______ゝr⌒ 、 イ iノ
::::|________i、 /i ,ゝ
___========__ヽ_,/く__,,i,---´iヽ、
________________________________//
0990デフォルトの名無しさん
05/02/11 21:31:400991デフォルトの名無しさん
05/02/11 21:34:16↓
0992デフォルトの名無しさん
05/02/11 21:35:030993デフォルトの名無しさん
05/02/11 21:35:400994デフォルトの名無しさん
05/02/11 21:35:590995デフォルトの名無しさん
05/02/11 21:36:230996デフォルトの名無しさん
05/02/11 21:36:580997デフォルトの名無しさん
05/02/11 21:37:06バーか
0998デフォルトの名無しさん
05/02/11 21:37:310999デフォルトの名無しさん
05/02/11 21:37:361000デフォルトの名無しさん
05/02/11 21:37:5010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。