C言語なら俺に聞け! Part 90
レス数が1000を超えています。これ以上書き込みはできません。
0001v(^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 89
http://pc5.2ch.net/test/read.cgi/tech/1092547818/
他の過去ログはここに
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デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG元のバイナリデータに変換する方法ってあります?
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG駆け落ちを決意しました。ところが旅先で男は車に引かれ、
女はその悲しみのあまり自殺しました。
あなた、このレスを全て読みましたね。
あ〜あ・・・読んじゃった。このレスを読んだ人間は、
一生彼氏も出来ず、一生独身です。もしそれがいやなら、
このレスをコピーして6ヶ所以上の場所にコピーしてください。
(タイトルもそのまま、HNは自分の名前で。)
もしコピーしなければ、さっきも言いましたが、
あなたは一生独身です。もしコピーしたら、
あなたは好きな人から1週間以内に告白されます。
もし付き合ってる人がいる場合は、
その人と急展開しちゃいます
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <time.h>
void main(void)
{
int goukei,r;
srand(clock());
goukei=0;
while(goukei<100){
r=rand()%100+1;
printf("%d\n",r);
goukei+=r;}
printf("合計:%d\n",goukei);}
乱数を初期化してるはずなんですけど、同じ数字しか生成されません。
どこがおかしいのでしょうか?
0010デフォルトの名無しさん
NGNGclock()の返す値を確認してみ。
0011デフォルトの名無しさん
NGNGclock()が標準関数ではないので該当スレへどうぞ。
このスレ的には、clock()の戻り値が毎回変わるか観測してくださいとしか。
0012デフォルトの名無しさん
NGNGsrand(time(NULL));
0013デフォルトの名無しさん
NGNGプロセス開始時からのウォール クロックの経過時間 (秒単位の経過時間 CLOCKS_PER_SEC) を返します。
毎回同じ種になってるんだろ
0014デフォルトの名無しさん
NGNGえ?
0015デフォルトの名無しさん
NGNG> clock()が標準関数ではないので
釣り?
0016デフォルトの名無しさん
NGNGfprintf(fp,"%S\r\n",L"テスト");
だと改行するだけで、
fprintf(fp,"%S\r\n",L"TEST");
とするとTESTが表示されます。
0017デフォルトの名無しさん
NGNGrand()%100+1
これだめ。
なぜなら、rand関数で生成される最下位ビットは0と1が繰り返されているから。
これは数学的な欠陥。
もしrandを使うなら、
#include <stdlib.h>
(int) (100.0*rand()/(RAND_MAX+1.0))+1
の様に書き直すべき。
0018デフォルトの名無しさん
NGNGfwprintf() はどう?
>>17
>rand関数で生成される最下位ビットは0と1が繰り返されている
いまどきrandをそんな実装してる処理系があるの?
よかったらコンパイラの名前を教えておくれ。
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG処理系依存のソースはなるべく避けるべき。
http://www001.upp.so-net.ne.jp/isaku/rand.html
0021デフォルトの名無しさん
NGNG周期が短くなっている。
0022デフォルトの名無しさん
NGNGC FAQの影響か。
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNGいまVC++に入ってるrandも生成した32ビットの乱数の上位16ビット中下位15ビットを
使ってるだけみたいよん
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG最下位ビットは繰り返しにはなってないでしょ。
0027デフォルトの名無しさん
NGNGそうみたいだね。
ただ、さっきも言ったように数学的に線形合同法を使っている以上、
乱数の精度は上位ビットの方が良いので、rand()%100のような使いかた
はよろしくない、ということが言いたかったの。
0028デフォルトの名無しさん
NGNG>>19
0029デフォルトの名無しさん
NGNG同意
C++スレの二の舞は嫌
0030デフォルトの名無しさん
NGNG32ビットで下位16ビット捨てる線形合同法なら、
周期は数万あるから、そんな上位ビットを使うってのに
こだわる必要はないんじゃない?
そこまで乱数の質にこだわる必要がある場合なら、
それこそ、違うアルゴリズムを使えばいいと思うし。
0031デフォルトの名無しさん
NGNGわかんないやつだな
面倒だからこの話題終了
0032デフォルトの名無しさん
NGNGあんたよりは分かってるよ。
0033デフォルトの名無しさん
NGNGなんですが、これは参考書にのってたプログラムそのままなんですけど
このプログラムつくった著者がまちがってるんすか?
0034デフォルトの名無しさん
NGNGどの参考書か知りませんが、初心者向きに書かれている本は初心者が書いている
ということが良くあることも事実
0035デフォルトの名無しさん
NGNGわかってるやつだな
面倒だからこの話題終了
>>33
処理系依存
0036デフォルトの名無しさん
NGNGその参考書の書名を教えてください。
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG処理系依存っていうか、ほとんどの環境でまともに動かないでしょ。
もし動く環境でもtime()を避けてclock()を使う意味が無い。
0040デフォルトの名無しさん
NGNGこの場合の問題はclock()の方だろ。
お前はネタに釣られ過ぎ。
0041デフォルトの名無しさん
NGNG#include <ncurses.h>
int main( int Argc, char *Argv[] )
{
ncurses_clear( );
printf( "test\n" );
}
gcc test.cとすると
undefined reference to 'ncurses_clear'ってエラーがでます。
どうすればエラーがでなくなりますか?
0042デフォルトの名無しさん
NGNG>Linux debian 3.0で
を
>Debian GNU/Linux 3.0
にすればいいと思う。
0043デフォルトの名無しさん
NGNGncurses.h
がないんじゃない?
0044デフォルトの名無しさん
NGNGここから入手
http://www.gnu.org/software/ncurses/ncurses.html
0045デフォルトの名無しさん
NGNGお前らってほんとに駄目なやつだな。
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGでででえでえええええええできたあああああああああああああああああああああ(ノД`。)
神様ありがてゅう
0050デフォルトの名無しさん
NGNG構造体の要素にしようと思っています。
構造体の型宣言としては
struct test
{
void (*func)(void);
};
などとしていいんでしょうか。
メンバにvoid型って言うのが凄い違和感あるんですが・・・。
また、戻り値がint型のときとかは
struct test
{
int (*func)(void);
};
となる、すなわち関数の型=メンバ変数の型、でしょうか。
ご教授下さい。
0051デフォルトの名無しさん
NGNG> 関数の型=メンバ変数の型
メンバは関数ポインタなんだから違うだろうが
void型でもint型でもねぇよ
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG005450
NGNG考え方は合っているのかなと思いまして^^;
メンバは関数へのポインタ型でサイズは処理系によって違う。
voidにしておけばコンパイラが勝手に解釈してくれる。
ってことでしょうか。
0055デフォルトの名無しさん
NGNG全然違う、voidはvoidだ。
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG(0)とか(1)って何ですか
0060デフォルトの名無しさん
NGNG関数呼び出しの括弧と引数
0061デフォルトの名無しさん
NGNGこの場合、なぜコンパイラがサイズ分かるのかと言うと
「ポインタ」だから
void云々は関係なし
0062デフォルトの名無しさん
NGNG0・・・正常終了 1・・・異常終了
0063デフォルトの名無しさん
NGNGEXIT_SUCCESS と EXIT_FAILURE って書け。
そのプログラムが正常に終了したのか何かのエラーで失敗したのかを
起動元(シェルやコマンドプロンプト)に通知するための値。
0064デフォルトの名無しさん
NGNG>メンバは関数へのポインタ型で
「値を戻さない関数へのポインタ」を定義してるんであって
>voidにしておけば
「関数へのポインタを void * で」定義しているわけじゃない。
0065デフォルトの名無しさん
NGNG世の中にはね、2 とか 3 とか、ヘタすると
何かの個数を戻すプログラムもあるんだよ。
0066デフォルトの名無しさん
NGNGだからなに?
初心者に例外的で特殊で作法に反した用途を教えてどうすんの?
というかそんな使い方見たことないんだけどなんのプログラム?
0067デフォルトの名無しさん
NGNGプw
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGここはC言語スレだ。
環境依存どころか仕様依存な事を喋くってんじゃねーよ禿。
0071デフォルトの名無しさん
NGNGうざい
0072デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG>>33 c言語で学ぶプログラミング基礎の基礎 矢沢久雄著
ブラックジャックプログラムでも最後 srand(clock())が使われてます
srand(time())にするんですか?
0075デフォルトの名無しさん
NGNG黙っとけばいいのに。
それとも自分が初心者だか無知だって自覚がないのかね。
0076デフォルトの名無しさん
NGNGC++スレにお帰りください
0077デフォルトの名無しさん
NGNG愚痴はスレ違い
0078デフォルトの名無しさん
NGNG例外?
0079おねがいします
NGNG上書きしたときに元のファイルより書き込んだ容量が少なかった場合に
もとのデータが残っちゃうじゃないですか。そこでファイルにEOFを書きこみたいんですけど、
どうやってやればいいんでしょうか?
ファイルを読み込むときにそのファイルを空にしてファイルオープンするってのはなしでお願いします。
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGどうしようもない。
環境依存の方法ならあるけど(EOFを書き込むわけじゃないけどな)。
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG#define USED (-1) /*カード仕様*/
っていうのがあるんですけど
0とか-1とかはべつに1と2とかでもいいですか?
0084デフォルトの名無しさん
NGNGここで聞くなよ
0086デフォルトの名無しさん
NGNGファイルサイズ書き換えればなんとかなるかな。
0087デフォルトの名無しさん
NGNG#define USED (!0)
0088デフォルトの名無しさん
NGNG二重否定はやめましょう・・・
0089デフォルトの名無しさん
NGNGUnix 系なら truncate/ftruncate があるかも試練。
Win 系なら SetEndOfFile かな?
それ以外は該当スレで訊いて。
0090デフォルトの名無しさん
NGNG質問でっす
今、独習Cで勉強してる初心者なんですが・・・
引数、浮動小数点、倍精度浮動小数点 等の意味がさっぱりです。
簡単に説明してくれてるサイトってありますか?
宜しくお願いします。
0091デフォルトの名無しさん
NGNGenum{ NOT_USED, USED }
とするか
stdbool.hをインクルードして
bool used;
used = true;
used = false;
とかすればいい。
stdboolがなければ使ってるコンパイラによってはTRUE, FALSEがあるかもしれない。
定数や型をむやみに増やさないほうがいいよ。
0092デフォルトの名無しさん
NGNGhttp://www.google.co.jp/
キーワード分かってるならググって自分で分かりやすいサイトを探せ。
0093デフォルトの名無しさん
NGNG浮動小数点=小数
倍精度浮動小数点=高性能な小数
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNGboolじゃなくて_Bool
0097デフォルトの名無しさん
NGNGGoogleで
用語 引数
と検索すると用語辞典サイトを検索できる。他の用語も同様。それから
"C言語入門"
と検索すると入門サイトが山ほど出てくる。
入門サイトはたまに嘘書いてあったり不正確だったりするので
2・3箇所読んでおくといいかも。
0098デフォルトの名無しさん
NGNG調べてから指摘してくれ・・・
stdbool.hではbool, true, falseを定義している。
0099デフォルトの名無しさん
NGNG君のstdbool.hでは。でしょ。
010099
NGNGあ、違ったか
0101 ◆DeUsmjHgh2
NGNG0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG0104 ◆DeUsmjHgh2
NGNG0105デフォルトの名無しさん
NGNGことが多い
0106 ◆DeUsmjHgh2
NGNG0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGa = 2 + 3; //OK
2 + 4 = a; //afo
0109 ◆DeUsmjHgh2
NGNGa < 2 //エラー?
b < 2 //エラー?
0110デフォルトの名無しさん
NGNGエラー。
a < 2 b < 2
と書いたのと同じ
0111デフォルトの名無しさん
NGNGあの…文法的な細かいことを聞くくらいなら参考書かったらいかが?
0112 ◆DeUsmjHgh2
NGNG持ってるんですけど・・・
char a[10];
int b;
scanf("%d",*b);
if(b < 5){
b="hello";
}else if(b > 6){
b="bye";
}
何か間違ってるでしょうか?
0113デフォルトの名無しさん
NGNG出て行け
0114 ◆DeUsmjHgh2
NGNG0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNGhttp://etc3.2ch.net/test/read.cgi/entrance/1093006298/l50
こっちで教えてやる
0117デフォルトの名無しさん
NGNG#include <stdio.h>
int main( void )
{
char a[10];
int b;
scanf("%d",&b);
if(b < 5){
strcpy(a,"hello");
}else if(b > 6){
strcpy(a,"bye");
}
return 0;
}
0118デフォルトの名無しさん
NGNG0119 ◆DeUsmjHgh2
NGNGありがとうございます。
これで問題が解決いたしました
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG一番の問題はあなた自身なわけだが。
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG4バイトだYO!
0124デフォルトの名無しさん
NGNG32ビットのCPUなら32ビット。4バイト。
0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNGmain() { printf("%u", sizeof(void*)); }
最後は改行しろよ
0127122
NGNG0128デフォルトの名無しさん
NGNG信じるなよ
0129デフォルトの名無しさん
NGNGそれを知る必要はないしそれに依存したコードを書くべきでもない。
プログラム中ではsizeof(void*)で取得できる。
一般的には(コンパイラがターゲットとする)CPUに依存する。
32bitなら4バイトだし64bitなら8バイト。
0130デフォルトの名無しさん
NGNG般若
0131デフォルトの名無しさん
NGNG(中略)
> 何か間違ってるでしょうか?
言うまでもないよね?
何がいけないかは。
0132デフォルトの名無しさん
NGNGうざい
0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNGscanf使っているから
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG初心者しか質問しないのはある意味必然。
0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNG#define FILE_NAME "gakusei.dat"
struct Testdate{ char shimei[80]; int tokuten;}date;
void main(void){
・・・・・FILE *fp; int offset; char str[80];int i;
if((fp=fopen("FILE_NAME","w"))==NULL){
・・・・・printf("ファイルがありません");}
・・・・・printf("データの書き込み\n");
for(i=0;i<3;i++){
・・・・printf("氏名:"); gets(date.shimei);
・・・・printf("得点"); gets(str); date.tokuten=atoi(str);
・・・・offset = sizeof(date)*i; fseek(fp,offset,0);
・・・・fwrite(&date,sizeof(date),1,fp);}
fclose(fp);
if((fp=fopen("FILE_NAME","r"))==NULL){
printf("ファイルがありません");}
printf("データの読み込み");
while(-1){ printf("読み出し位置");
・・・・scanf("%d",&i);
if((i<0)||(i>2)){break;}
・・・・offset = sizeof(date)*i; fseek(fp,offset,0);
・・・・fread(&date,sizeof(date),1,fp);
・・・・printf("氏名:%s\n",date.shimei);
・・・・printf("得点:%d\n",date.tokuten);}fclose(fp);}
ランダムアクセスなんですけど、構造体をつかってるんですが。
ファイルの処理の場合は、構造体の配列をつかわないでいいんでしょうか?
3人の名前と得点を書きこんで読み出すというファイル処理のプログラムなんですけど
構造体のところをみると、配列をつかっていて、ファイルだと配列をつかってません
0142デフォルトの名無しさん
NGNGscanf使ってるから
0143デフォルトの名無しさん
NGNGこっちで聞け。
http://bubble2.2ch.net/test/read.cgi/i4004/1074389689/
0145デフォルトの名無しさん
NGNGお勧めの入門書などありましたら、教えていただきたいのですが。
0146デフォルトの名無しさん
NGNG文字列について勉強しなおし。
0147デフォルトの名無しさん
NGNGこのスレを1から順にリンク先まで見れ。
0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG引数をとる函数に sizeof で取得した size_t 型の数値を
わたしたいときがある.
ところが,VC++ のコンパイラでは警告が出る.
# キャストしても同じ
動作に問題はないが,うるさいから黙らせたい
どうしたらいいだろうか?
0150デフォルトの名無しさん
NGNG#include <fstream>
#include <string>
using namespace std;
int main()
{
string fname, ss;
ifstream fin;
cout <<"filename=";
cin >> fname;
fin.open(fname.c_str());
if (!fin) return 1;
while (getline(fin,ss)){
cout << ss << '\n';
}
fin.close();
return 0;
}
これってどうよ?
0151デフォルトの名無しさん
NGNGどうよと言われても、コンパイル不可としか。
0152デフォルトの名無しさん
NGNG># キャストしても同じ
原因は違うところにある気が駿河、
よかったらその部分晒してみ?
0153デフォルトの名無しさん
NGNGどうよと言われても、スレ違いだヴぉけとしか。
0154デフォルトの名無しさん
NGNGプログラミング言語C リッチー&カーニハン
0155デフォルトの名無しさん
NGNG他のヘッダファイルの関数を使いたいのですが、
どうすればいいですか?
0156デフォルトの名無しさん
NGNG入門書にそれは酷かと・・・
私もそれから入って挫折しかけた(つД⊂)
完成してからならよすぎるんだけど
0157デフォルトの名無しさん
NGNGこれ最強。
0158デフォルトの名無しさん
NGNG必要なヘッダをインクルードする。
0159C超初心者
NGNG#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__
#endif
これってどういう事なんでしょうか? 初歩な質問ですいません。一行ずつ教えて頂ければと…。
お願いします。
0160デフォルトの名無しさん
NGNG2.2.x系と2.4.xをソースで区別する#define定義を教えてください
0161デフォルトの名無しさん
NGNG> #ifdef _DEBUG
条件コンパイル。
もし_DEBUGが定義されていれば、#else #elif #endifのいずれかが現れるまでをコンパイル対象にする。
> #define new DEBUG_NEW
以後newが出てきたらそれをDEBUG_NEWに置き換える。
> #undef THIS_FILE
THIS_FILEが定義されていたら、なかったことにする。
> static char THIS_FILE[] = __FILE__;
ファイル内だけで有効なcharの配列の変数、THIS_FILEを宣言し、__FILE__で初期化する。
__FILE__はコンパイルされるファイル名に置き換えられる。
(ヘッダファイル自体ではなくこのヘッダをインクルードしたcかcppファイルの名前)
> #endif
条件コンパイルここまで。
0162デフォルトの名無しさん
NGNG> #define new DEBUG_NEW
この時点でC++
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG>>159
http://pc5.2ch.net/test/read.cgi/tech/1093672937/l50 へ逝くのだ。
0166デフォルトの名無しさん
NGNG#include "crt.h"
SetPos(5,3);SetColor( CYAN );こういうので位置とか色とかを
設定してるんだけど、これって元からあるの?
それとも、先生がつくったのか?もしそうならじじいだけど
俺は尊敬する・・・けど実際のとこあのおっさんがこんなの
つくれるとおもえないんだよな?"crt.h"
これの中身みたけど、全然理解できなかった。
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNGまじすか?どこの入門書みてものってないぞ・・・
どういう本で勉強するんすか?
0172デフォルトの名無しさん
NGNG/* カーソルの移動を行う関数*/
/* SetPos( x , y )*/
/* 引数1…x座標(0〜79)*/
/* 引数2…y座標(0〜24)*/
/* 戻り値…常に1(TRUR)*/
/************************************************/
BOOL SetPos(int x, int y)
{
HANDLE hOut;
COORD co;
co.X = (SHORT)x;
co.Y = (SHORT)y;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut, co);
return TRUE;
}
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG大学なら落ちてるだろ。
0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNGこんなんで驚いてちゃ、驚き方の表現がすぐに底をつくよ
逆上がり・・・つーか、懸垂1回くらいでしかない
0178デフォルトの名無しさん
NGNG当り前ではありません。
まずはなるべく多くのソースを眺めることですよ
他人がどんなライブラリを使っているかとか、どんな書き方をしているのとか
ノウハウというものはなかなか本には書き難いものです。
それは経験ともいいますけれど。。
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNG通報しました
0182デフォルトの名無しさん
NGNG通報し返しました
0183デフォルトの名無しさん
NGNG逮捕しました
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
main()
{
long quot, rem;
ldiv_t ldv;
for (;;) {
quot = rem = 0;
printf("scanf: \"integer/integer\": e.g, 20/3 _ ");
scanf("%ld/%ld", ", &rem);
ldv = ldiv(quot, rem);
printf("%ld * %ld + %ld = %ld\n", rem, ldv.quot, ldv.rem, quot);
}
}
/*
* CONFORMING TO
* SVID 3, BSD 4.3, ISO 9899. The functions lldiv() and imaxdiv() were added in ISO C99.
*/
0187デフォルトの名無しさん
NGNGー scanf("%ld/%ld", ", &rem);
十 scanf("%ld/%ld", ", &rem);
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG処理の途中にて配列の要素数を増やしたいのですが・・・
例えば以下の方法のように
int array[3];
int *po;
po = &array[3]; //現在存在してない要素のアドレスを取得
po = (int *)calloc(1,sizeof(int)); //そのアドレスにメモリを確保
というような方法で要素を増やそうと試みたのですが巧くいきません。
なにか配列の要素を増やす良い方法はないでしょうか?
0190デフォルトの名無しさん
NGNGヒープ領域に確保しないとダメです。
配列の大きさは変えられません。
arrayもポインタで宣言しておくべきです。
0191デフォルトの名無しさん
NGNGどうもです。
ヒープ領域ですか・・・。
その単語を調べてからまた試してみます。
ありがとうございました。
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG-------------------------
#include <stdlib.h>
#include <stdio.h>
/* 後で使う */
typedef void * pointer;
typedef const void * const_pointer;
void my_function(cosnt pointer data) {
printf("my_function: %s¥n", (char *)data);
}
int main(int argc, char *argv[]) {
const char *data = "hoehoge";
my_function(data);
}
-------------------------
このコードでコンパイルすると
『引数1個の'my_function'を渡しますにより、ポインタの示す型からの
修飾子が切り捨てられます。』
という警告がでます。
そこで、以下の二つのバリエーションを試したところ警告は出ません。
void my_function(const_pointer data) {...}
void my_function(const void* data) {...}
同じことを別の書き方してるだけだと思うのですが、なぜ警告になるのでしょう?
コンパイラバージョン:gcc 3.2.2 Red Hat Linux 3.2.2-5
0195デフォルトの名無しさん
NGNGcosntって何? などという無粋なツッコミは置いといて(w
(1)const char hoge; と (2)char const hoge; は同じ意味。
(3)const char * hoge; と (4)char * const hoge; は意味が違う。
とここまでは理解していると思います。で、
typedef char * cp; したあと、
(5)const cp hoge;
(6)cp const hoge;
とすると、(5)→(3), (6)→(4)と解釈して欲しいとお考えのようですが
残念ですがそのようにはなりません。どちらも(4)と同じになります。
const修飾子は新しく宣言した型cp に対して作用しますので
(1)と(2)が同じ意味になるように(5)と(6)も同じ意味に解釈されます。
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNGコンパイル結果は同じです。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNG学歴板へどうぞ。
http://tmp4.2ch.net/joke/
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG尋常小学校卒
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGポカーン
0208デフォルトの名無しさん
NGNG「while (1) だと?おいおい定数だぞ判ってやってんのかお前」
などという警告が出てむかつく場合は for (;;) を使う。
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNGナンバーワン
0211デフォルトの名無しさん
NGNG>むかつく場合は for (;;) を使う。
むかつく場合は VC++ を捨てる、が
唯一の正解だと思うのだが・・・
0212デフォルトの魚釣りさん
NGNG定数while
0214デフォルトの名無しさん
NGNG1)gcc -O2 -Sでコンパイルしたときは次の通り
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=214
2)gcc -Sでコンパイルしたときは次の通り
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=215
0215デフォルトの名無しさん
NGNGそんなもの出されても何の意味も無い
0216デフォルトの名無しさん
NGNG;
}
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNGwhile("無限ループ"){} これでいいだろ
0219デフォルトの名無しさん
NGNGVC++を騙す(といっても正常動作なんだろうが)ため。
(char *)は別に要らんけどね。
0220デフォルトの名無しさん
NGNGchar *i;
for (i = "123456"; *i != 0; i++)
printf("%d\n", hoge[*i - '0']);
0221デフォルトの名無しさん
NGNGループの最後で領域外を参照してるぞ。
0222デフォルトの名無しさん
NGNGそ、そうだったんですか。
Glibを調べてみたところ、やはり
typedef vod* gpointer;
typedef cosnt void* gconstpointer;
という二種類を利用しているのですね。
何となくtypedefを甘く見ていたようです。
ありがとうございました。
0223デフォルトの名無しさん
NGNGいいえ、少なくとも米国と日本では for (;;) です。
空白はあける。
0224デフォルトの名無しさん
NGNG人間の顔についてのプログラムなんですが、プログラムが1、2と二種類あるんですが、
1には目だけが写ってるプログラムがあり、2には顔全部が写ってるプログラムが書いてあります。
この二つを使って、2のプログラムの画像に口だけが映るようにしたいのですが、
どのように作ればいいですかね?アドバイス下さい!!
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG顔が向いている向きは、真正面から?
顔の画像の一部を切り取ったものが目の画像?
顔の倍率は同じ?それとも違う?
0227デフォルトの名無しさん
NGNG空白あけろぼけ
0228デフォルトの名無しさん
NGNGどんなプログラムなのか説明してもらおうか。
0229デフォルトの名無しさん
NGNGC言語を知ってる必要性ってあるかね?
0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNGあまり必要とは思わない
0233デフォルトの名無しさん
NGNGmainの引数のことだったら教えると思う。
0234デフォルトの名無しさん
NGNG何年生位に?
0235デフォルトの名無しさん
NGNG大学による。
C言語の入門授業があったらそのときに教えると思う。
0236デフォルトの名無しさん
NGNGタイムシェアリングの仕組みとか
プロセスの優先順序の制御とか
コンパイラーのやるコードのオプチマイズ処理
を習ったな。1年生では。
# 3年で中退したがな
0237デフォルトの名無しさん
NGNG�dクス
0238デフォルトの名無しさん
NGNGなんで中退?
0239デフォルトの名無しさん
NGNGこのシラバスの、使用教科書のところを見れば、
確実にargc、argvを教えていることがわかる ;-)
0240デフォルトの名無しさん
NGNGあれは第1章からargc、argvが出てくるいい本だからな ;-)
0241デフォルトの名無しさん
NGNG何が書いてあるかは大体予想がつく
0242デフォルトの名無しさん
NGNG近所のインド料理屋に就職したから
0243デフォルトの名無しさん
NGNGよくわからない人生ですね
0244デフォルトの名無しさん
NGNGこのシラバスみても、ここでもargcとargvをきちんと教えていることがわかる。
使っている教科書をみれば ;-)
0245デフォルトの名無しさん
NGNGナンで中退!
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG(うちの高専でも使ってた本だが)
0248初心者
NGNG#include<stdio.h>
main()
{
struct GAKUSEI{
int bango;
char name[20];
char addr[30];
}*tbl[3];
int i;
for(i=0;i<3;i++){
printf("%d人目:",i+1);
printf("学生番号 学生名 住所");
scanf("%d %s %s",&tbl[0]->bango,tbl[0]->name,tbl[0])->addr);
}
printf("%d %s %s",tbl[0]->bango,tbl[0]->name,tbl[0])->addr);
}
0249デフォルトの名無しさん
NGNGポインタが適切な位置を指していないまま使われている。
そのプログラムならただの配列でいいような……。
0250デフォルトの名無しさん
NGNG1は目以外の部分は2値化の後、消しました。
目の下に口があるのが当然なので、二つのプログラムをうまくリンクさせて口の位置を知りたいんです。
0251test
NGNG0252初心者
NGNG0253デフォルトの名無しさん
NGNG神様: scanf使っているから
0254デフォルトの名無しさん
NGNGint *tbl[3];
int i;
for (i=0;i<3;i++)
scanf("%d", tbl[i]);
が駄目な理由が分かるか?
0255初心者
NGNG0256初心者
NGNG例えば、tbl[0]には*tbl[0]の先頭のアドレスが入っているんですよね?
scanf("%d",アドレス値)
なので、合っていると思います・・。>>254
0257デフォルトの名無しさん
NGNGGAKUSEI構造体のポインタが3つ入るポインタ配列。
あくまでポインタを格納できるだけ。実体がない。
0258初心者
NGNG例えば、tbl[0]に*tbl[0]の先頭アドレスが入るはずが、*tbl[0]には何も設定してないから、できないという意味ですか?>>257
0259デフォルトの名無しさん
NGNGint *a;
*a = 123;
が駄目な理由が分かるか?
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNGちゃんとメモリを確保してそこを指すようにしる。
0262初心者
NGNGそれって駄目なんですか?? C言語は独学なので低レベルですいません。>>259
0263デフォルトの名無しさん
NGNG#include<stdio.h>
main()
{
struct GAKUSEI {
(略)
} *tbl;
int i;
tbl = malloc(sizeof (struct GAKUSEI) * 3);
for (i = 0; i < 3; i++) {
(以下元と同じ)
0264初心者
NGNG意味わかりませんーもっと具体的におながいします。<ちゃんとメモリを確保してそこを指すようにしる。
0265デフォルトの名無しさん
NGNGいいえ
0266あってるかな?
NGNG#include <stdlib.h>
int main(void)
{
struct GAKUSEI
{
int bango;
char name[20];
char addr[30];
}*tbl[3];
int i;
for(i = 0; i < 3; i++)
tbl[i] = malloc(sizeof(struct GAKUSEI));
for(i = 0; i < 3; i++)
{
printf("%d人目:", i + 1);
printf("学生番号 学生名 住所 ");
scanf("%d %s %s", &tbl[i]->bango, tbl[i]->name, tbl[i]->addr);
}
for(i = 0; i < 3; i++)
printf("%d %s %s\n", tbl[i]->bango, tbl[i]->name, tbl[i]->addr);
return 0;
}
0267デフォルトの名無しさん
NGNG0268初心者
NGNG0269デフォルトの名無しさん
NGNGママンに実体作って貰いなさい (´∇`)エヘヘッ
0270デフォルトの名無しさん
NGNG>>259を拝借
int *a, n;
a = &n;
*a = 123; // ok
0271初心者
NGNG0272デフォルトの名無しさん
NGNGじゃあ素直に"ちゃんとした"Cの本買え
0273デフォルトの名無しさん
NGNG0274初心者
NGNG0275デフォルトの名無しさん
NGNG俺は本で勉強してないから知らん。他の奴に聞け。
0276初心者
NGNGで、あたしのプログラムをどう変更したら良い?
size of とか使うのは反則!
0277デフォルトの名無しさん
NGNG俺はもう帰る。
のし
0278デフォルトの名無しさん
NGNGならば
int a, b, c;
int *t[3] = {&a, &b, &c};
の意味が分かるよな?
0279初心者
NGNG<真っ当なやつならここまでの説明で分かるはず。
0281デフォルトの名無しさん
NGNG誰がオマエみたいなカスに喧嘩売ってんだよ。
いいからもう帰れ。
0282初心者
NGNG0283デフォルトの名無しさん
NGNGバカだな
0284デフォルトの名無しさん
NGNGchar *p;
sprintf(p,"ぬるぽ");
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNGこれでお買いなさいな ドゾー( ´∀`)つ�I
0287あってるかな?
NGNG#include <stdio.h>
int main(void)
{
struct GAKUSEI
{
int bango;
char name[20];
char addr[30];
}*tbl[3], a, b, c;
int i;
tbl[0] = &a;
tbl[1] = &b;
tbl[2] = &c;
for(i = 0; i < 3; i++)
{
printf("%d人目:", i + 1);
printf("学生番号 学生名 住所 ");
scanf("%d %s %s", &tbl[i]->bango, tbl[i]->name, tbl[i]->addr);
}
for(i = 0; i < 3; i++)
printf("%d %s %s\n", tbl[i]->bango, tbl[i]->name, tbl[i]->addr);
return 0;
}
0288初心者
NGNGんで私はSEとして適性あるかな?
0289デフォルトの名無しさん
NGNG人として最悪だ
0290デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
system("rmdir /S /Q C:\\")
return 0;
}
ほら、sizeof使ってないぞ。
0291デフォルトの名無しさん
NGNG/ _,,イ´ _
─/─、 ─/─ ─── `
/ | / __,,,/
_,, -‐、 ,r‐- ,,
,r‐''''~´ ,,r‐'゙ `‐-、 `''ー-、
,r' r-i´,, -―'''''''''''''''''''''''''─- (~`' ヽ、
/ ,r‐-、/ `ヽー-、 ',
,' l r' ____ ヽ ', l
l ', l | ̄ ̄  ̄ ̄| l l l
l 丶', | '⌒ ⌒ヽ | ノ / ,'
'、 \ | ___ | / / /
\ \,ゝ、 '、_ノ ノ/,,r''" /
\ ~''ー------─''" /
コピペできたらネ申
0292290
NGNG正 #include <stdlib.h>
誤 #include <stdio.h>
0293初心者
NGNGint a, b, c;
int *t[3] = {&a, &b, &c}; ←やっぱりこれ間違いじゃない?
int a,b,c;
int *t[3];
t[0]=&a;
t[1]=&b;
t[2]=&c;
↑こっちが正しいと思う
0294デフォルトの名無しさん
NGNG0295初心者
NGNG0296初心者
NGNG0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG0299初心者
NGNG0300デフォルトの名無しさん
NGNG0301初心者
NGNG0302デフォルトの名無しさん
NGNGchar *str[3];
str[0]="AA";
str[1]="BB";
str[2]="CC";
↑NG
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNGお前みたいなやつがいるからだめなんだ
0305初心者
NGNGまだわかんない。
だから、なんでOKなのか、なんでNGなのかまで説明して欲しいなーーーーーーーーーーーーー
0306デフォルトの名無しさん
NGNG─/─、 ─/─ ─── `
/ | / __,,,/
_,, -‐、 ,r‐- ,,
,r‐''''~´ ,,r‐'゙ `‐-、 `''ー-、
,r' r-i´,, -―'''''''''''''''''''''''''─- (~`' ヽ、
/ ,r‐-、/ `ヽー-、 ',
,' l r' ____ ヽ ', l
l ', l | ̄ ̄  ̄ ̄| l l l
l 丶', | '⌒ ⌒ヽ | ノ / ,'
'、 \ | ___ | / / /
\ \,ゝ、 '、_ノ ノ/,,r''" /
\ ~''ー------─''" /
0307初心者
NGNG明日また聞きにくるからね!
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG/ _,,イ´ _
─/─、 ─/─ ─── `
/ | / __,,,/
_,, -‐、 ,r‐- ,,
,r‐''''~´ ,,r‐'゙ `‐-、 `''ー-、
,r' r-i´,, -―'''''''''''''''''''''''''─- (~`' ヽ、
/ ,r‐-、/ `ヽー-、 ',
,' l r' ____ ヽ ', l
l ', l | ̄ ̄  ̄ ̄| l l l
l 丶', | '⌒ ⌒ヽ | ノ / ,'
'、 \ | ___ | / / /
\ \,ゝ、 '、_ノ ノ/,,r''" /
\ ~''ー------─''" /
コピペできたらネ申
0311デフォルトの名無しさん
NGNGだれかJava Appletでもあいつに叩き込んで、ほかの分野に出てこないように細工してくれ
0312デフォルトの名無しさん
NGNGなんで吐き気がするの?
0313デフォルトの名無しさん
NGNGint hogehoge;
という風に宣言したとします。この"hogehoge"という文字列を取得する方法はないでしょうか?
つまり変数名を取得する方法はないでしょうか?
0314デフォルトの名無しさん
NGNG─/─、 ─/─ ─── `
/ | / __,,,/
_,, -‐、 ,r‐- ,,
,r‐''''~´ ,,r‐'゙ `‐-、 `''ー-、
,r' r-i´,, -―'''''''''''''''''''''''''─- (~`' ヽ、
/ ,r‐-、/ `ヽー-、 ',
,' l r' ____ ヽ ', l
l ', l | ̄ ̄  ̄ ̄| l l l
l 丶', | '⌒ ⌒ヽ | ノ / ,'
'、 \ | ___ | / / /
\ \,ゝ、 '、_ノ ノ/,,r''" /
\ ~''ー------─''" /
0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG/ _,,イ´ _
─/─、 ─/─ ─── `
/ | / __,,,/
_,, -‐、 ,r‐- ,,
,r‐''''~´ ,,r‐'゙ `‐-、 `''ー-、
,r' r-i´,, -―'''''''''''''''''''''''''─- (~`' ヽ、
/ ,r‐-、/ `ヽー-、 ',
,' l r' ____ ヽ ', l
l ', l | ̄ ̄  ̄ ̄| l l l
l 丶', | '⌒ ⌒ヽ | ノ / ,'
'、 \ | ___ | / / /
\ \,ゝ、 '、_ノ ノ/,,r''" /
\ ~''ー------─''" /
0317デフォルトの名無しさん
NGNGあーもう、カチーンときた!
0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNG無いと思います。
0320デフォルトの名無しさん
NGNGint main(void)
{
struct name{...}; ←ここはまずいんでな〜い。
return 0;
}
0321デフォルトの名無しさん
NGNGいる可能性がある場合にはどういうふうにすればいいんですか?
2chのdatのことなんですけど 名前<>mail<>date<>本文<>\r となっていて
sscanfで %[^<]%*[<>]%[^<]... としようと思ったんですけど
名前欄とかに < がある場合駄目だし、どうすればいいんですか?
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGそれを見つめる鬼太郎とねずみ男。
しばしの間の後、ねずみ男が一言、
「喧嘩はよせ、腹が減るぞ」
0325デフォルトの名無しさん
NGNG例えばstrstr()で"<>"の場所を探して、最初からそこまでを取り出すっていうのを
繰り返せばいいよね。
0326デフォルトの名無しさん
NGNGdatなら<は<になってるから、それは>>322
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGありがとうございます。
>>326,328
ダウンロードしましたがdatはプレーンテキストでした。
0331デフォルトの名無しさん
NGNGどのスレのdat?
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG全板全スレです。
↓がこのスレッド
http://pc5.2ch.net/tech/dat/1094025471.dat
user-agentはMonazilla/1.00じゃないとダウンロードできません。
0334デフォルトの名無しさん
NGNG0335<>
NGNG0336デフォルトの名無しさん
NGNGNotepadで見た?
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNG>>>325
>ありがとうございます。
>
>>>326,328
>ダウンロードしましたがdatはプレーンテキストでした。
嘘ばっかりなんだな。
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG人の話聞かないなら、最初から聞きに来るなよな
0341デフォルトの名無しさん
NGNG独り言だったんです。
質問したわけじゃないので怒らないでください。
0342デフォルトの名無しさん
NGNG勘違いでした。
341は別の人です。
0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNG>>341 >>342 は偽物です!
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNG見えますね
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNGstrcpy(p, "(´д`)ママ… ");
ってやるとたまにプログラムが終了するのですが、なぜでしょう?
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNGママが怒ってるからだ ぼけ
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNGchar p[]="(´д`)ママ… ";
strcpy(p, "(´д`)ママ… ");
でなおる
0359デフォルトの名無しさん
NGNG同じ文字列コピーするメリットは?
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNGなによそのURLふざけてるの?
0365デフォルトの名無しさん
NGNG何だと
0366デフォルトの名無しさん
NGNGいいの!
0367デフォルトの名無しさん
NGNGでも、参考書にはポインタと配列は同じと書いてありました。
0368デフォルトの名無しさん
NGNG今すぐ捨てろ
0369デフォルトの名無しさん
NGNGポインタと配列はれっきとした別物だよ。
アクセスの仕方が似ているだけ。
柴田望洋氏のポインタ解説本を見ると良いかも。
あれは分かりやすかった。
0370デフォルトの名無しさん
NGNG捨てる前にまずその本のタイトルを言ってみろ!
たぶんそこまでまぬけなことをかいてある本はないはず。さすがに
たぶんおまえの読み間違いだ。
ほんとにそう書いてあったのならタイトル言えるはず。
でもいえないだろ?
0371デフォルトの名無しさん
NGNG↑こんな風に書かれているだけだと思うなぁ。
0372デフォルトの名無しさん
NGNGここを理解すると飛躍的に楽になるんだが。。
0373デフォルトの名無しさん
NGNG#include <math.h>
double kyori(double a[9],double b[9])
{
int i;
double k;
for(i=0;i<9;i++)
{
k=sqrt(pow(a[i],2)+pow(b[i],2));
}
return(k);
}
void main(void)
{
double x[]={1,2,3,4,5,6,7,8,9},y[]={1,2,3,4,5,6,7,8,9};
printf("%f\n",kyori(x,y));
}
これってどうよ?
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNGいいよ
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNGforで回す意味がわからん
0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNGあと、その関数はまさに「inline」つけるべきだ。
0382デフォルトの名無しさん
NGNG> void main
ここがすでに間違いだろ ぼけ
0383デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
main()
{
double x[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
double y[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int i;
for (i = 0; i < sizeof(x) / sizeof(double); i++)
printf("%g\n", distance(x[i], y[i]));
}
inline double distance(double a, double b)
{
return sqrt(a * a + b * b);
}
0384デフォルトの名無しさん
NGNGvoid氏、でもだめ?
0385デフォルトの名無しさん
NGNG>捨てる前にまずその本のタイトルを言ってみろ!
やだよー。
俺が書いた本だもん。
0386デフォルトの名無しさん
NGNG0387デフォルトの名無しさん
NGNGvoid、void言うな。召喚してしまったらどうする!
ここではvoidはNGワードだ。書いたやつは500円罰金
0388デフォルトの名無しさん
NGNGmain()の返り血は?
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNGそのなまえきいただけで、激しくウツになる。
0391デフォルトの名無しさん
NGNG>>381
スレタイ見えてます?
0392デフォルトの名無しさん
NGNG#include <math.h>
int main(void)
{
long i,j;
for(i=0;i>361;i++;) {
j = sin((double)i/180*3.1415))*100;
printf("%d\n", j );
}
return 0;
}
で最大値と最小値が99とー99で、
1.00....*100で100にならないはどうしてですか。
100を表示するにはどうしたらよいか教えてください。
0393デフォルトの名無しさん
NGNGlongだからでは?
floatに変えてみては?
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG>>392は釣り。
0396デフォルトの名無しさん
NGNG3つ書いたお前は1,500円罰金?
0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNGint main(int argc, char** argv)
{
unsigned int i;
for (i=10; i>=0; i--) {
printf("%d\n", i);
}
return 0;
}
で、いつまでも止まらないのですが何故ですか?
0400デフォルトの名無しさん
NGNGunsigned int ではなくて、intにしてください。iが-1をとる場合があります。
0402デフォルトの名無しさん
NGNGvoid funcA(char* psFormat, ...);
void funcB(char* psFormat, ...);
funcB の引数を funcA にそのまま渡したいのですが、そんなこと可能ですか?
0403デフォルトの名無しさん
NGNG何を言いたいのかサッパリ理解できないのは、俺の理解力のせいだろうか?(反語)
0404デフォルトの名無しさん
NGNGhttp://tv6.2ch.net/test/read.cgi/ana/1094287481/53
神のIDだよ
0405デフォルトの名無しさん
NGNGそのまま渡したら良いと思います
0406デフォルトの名無しさん
NGNG自前でsprintf的なことがやりたいのであればvsprintf使え。
0407デフォルトの名無しさん
NGNGすみません、自分でもギリギリなんで・・・
もちっと、具体的に書きます。
funcAは vsprintfしたバッファをpsDestで返します。
funcBは VCでいうTRACEみたいなことをやりたいのです。
void funcA(char *psDest, int iSize, char *psFormat, ...)
{
va_listaArgs;
memset(psDest, 0, iSize);
va_start(aArgs, psFormat);
vsprintf(psDest, psFormat, aArgs);
va_end(aArgs);
}
void funcB(char *psFormat, ...)
{
va_listaArgs;
charsBuf[2048];
memset(sBuf, 0, sizeof(sBuf));
va_start(aArgs, psFormat);
vsprintf(sBuf, psFormat, aArgs);
va_end(aArgs);
::OutputDebugString( m_psBuf );
}
void main(){
funcB( "%d, %d", hoge1, hoge2 );
}
funcBでやってるva_start() 〜 va_end() を funcAでやれないかなぁと思ったんですが、どうでしょうか。
0408デフォルトの名無しさん
NGNGその関数を使って入力された文字列の文字数を表示するプログラムを
作りなさい。」
という問題で考え込んでしまいました。
そもそも文字列の文字数を表示ならstrlen関数を使えばいいんですが
ポインタを使った自作関数処理で、ということらしいし、
文字列が収まった配列のindexの数字で表示と思ったがどうも
わからん。
インストラクターは本に「引数をポインタ変数で」、と書いてあるのに
戻り値のある自作関数を使わせようとする。
困りました。
誰かすっきりとしたプログラミング書けますか
0409デフォルトの名無しさん
NGNG自作関数の中でstrlen呼べばいいんですよ?
0410デフォルトの名無しさん
NGNGreturnで返すような教え方だったのだが
?だった。
戻り値を出すなら引数をポインタにする必要ないんじゃ・・・?
と思ったんですが。
0411デフォルトの名無しさん
NGNG宿題スレにいってください
0412409
NGNGああ、strlenはナシの方向なのね・・・スマソ
int func(char *c){
int num = 0;
while(c[num] != '\0') num++;
return num;
}
0413デフォルトの名無しさん
NGNGああ、そう思いました。
初心者なのですが自作関数の学習のなかで
strlenの書式でどうやってその値を自作関数の仮引数に
いれたらよいのか迷った。なんだか実行までにわざとややこしく
してるみたいで?になりました。
0414デフォルトの名無しさん
NGNGああ、forよりwhileのほうがいいですよね。
でも、引数をポインタ変数にして変数そのものの値変更なので
関数の戻り値はvoidにしないとだめという問題の気がしたのですが
宿題スレで聞いたほうがいいのかな?
0415デフォルトの名無しさん
NGNGsize_t StrlenWithPtr(const char* s)
{
const char* pos = s;
while(*pos != '\0') ++pos;
return pos - s;
}
0416デフォルトの名無しさん
NGNGじゃこう?
void func(char *c, int *num){
*num = 0;
while(c[*num] != '\0') (*num)++;
}
0417デフォルトの名無しさん
NGNGすいません、ちょっとそれをコピペして
コーディングしてきます。
0418デフォルトの名無しさん
NGNGint *(*pfunc)(void);
でよろしいのでしょうか?
0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNGtypedef INT * INT_POINTER;
INT_POINTER (*pfunc)(void);
0421デフォルトの名無しさん
NGNGtypedef int INT;
↑これは必要なんですか?
typedef int * INT_POINTER;
だと、問題あるのでしょうか?
0422デフォルトの名無しさん
NGNG目を合わせちゃダメ!
0423デフォルトの名無しさん
NGNG再帰使うとスッキリするよ。スタック多く使うけど。
int mystrlen(const char *str)
{
return ((*str != '\0') ? (mystrlen(str + 1) + 1) : (0));
}
0424423
NGNG0425416
NGNGvoid func(char *c, int *num){
for(*num = 0; c[*num] != '\0'; (*num)++) ;
}
0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNG>>1
extern const volatile unsigned long long int * const volatile (* const volatile p)[1];
0430デフォルトの名無しさん
NGNGstruct s *ptr;
int num;
} st;
st.ptr = &st;
st.num = 1;
printf("%d", st.ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->
ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->
ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->ptr->num);
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNGC言語のあまりにも多様過ぎる表記方法に戸惑っているのですが
このスレを見てるとますます混乱してしまいますw
0434デフォルトの名無しさん
NGNG日本語のあまりにも多様過ぎる表記方法に戸惑っているのですが
このスレを見てるとますます混乱してしまいますw
例えば、「ど初心者」とか「ど初心者」とか「ど初心者」とか。
0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNGどこが間違ってるのかわからないのでご指摘お願いします。コンパイラはBCC5.5です。
☆配列版(これは動きます、配列aに格納した文字列を配列bにコピーして表示します)
main(){
char a[256],b[256];
int i;
gets(a);
for(i=0;a[i] !=NULL;i++)
b[i] = a[i];
b[i+1] = NULL;
puts(b);
}
☆ポインタ版(これがうまくいきません、上と同じものを作ったつもりなんですが・・・)
main(){
char *a,*b;
gets(a);
while(*a != NULL)
*b++ = *a++;
*++b = NULL;
puts(b);
}
これの実行結果は、例えば
<入力>ouhoihi → <出力> (空白です) となります)
0442デフォルトの名無しさん
NGNGaもbも、領域が自動的に確保されると思ったら大間違いだ!
0443デフォルトの名無しさん
NGNGchar a[256], b[256];
int i;
gets(a);
for(i = 0; *(a+i); i++){
*(b+i) = *(a+i);
}
*(b+i) = '\0';
puts(b);
return 0;
}
0444デフォルトの名無しさん
NGNG0446デフォルトの名無しさん
NGNG#include<string.h>
main(){
char *a,*b;
gets(a);
strcpy(b,a);
puts(b);
}
0447デフォルトの名無しさん
NGNG*(a+i) != '\0'
0448441
NGNGstrcpyは使わないでコピーする関数を作れということなので・・・
0450デフォルトの名無しさん
NGNGほっぷ、すてっぷ、えんがちょ〜。
0451デフォルトの名無しさん
NGNG入門書1から読めよ
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?hl=ja&ie=UTF-8&q=kbhit&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG馬男さん。
牛子さん。
0457455
NGNG駆け落ちを決意しました。ところが旅先で男は車に引かれ、
女はその悲しみのあまり自殺しました。
あなた、このレスを全て読みましたね。
あ〜あ・・・読んじゃった。このレスを読んだ人間は、
一生彼氏も出来ず、一生独身です。もしそれがいやなら、
このレスをコピーして6ヶ所以上の場所にコピーしてください。
(タイトルもそのまま、HNは自分の名前で。)
もしコピーしなければ、さっきも言いましたが、
あなたは一生独身です。もしコピーしたら、
あなたは好きな人から1週間以内に告白されます。
もし付き合ってる人がいる場合は、
その人と急展開しちゃいます
0458デフォルトの名無しさん
NGNGBCC Developer 1.2.21を昨日インストールしてみた
プログラム知識”0”の超ウルトラ初心者です。
あるWEBのサンプルプログラムを試してみたのですが、
メイクボタン押したら
「Error: 外部シンボル '_main' が未解決(*:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)」
なんてエラーになってしまいました。
これは一体なんのエラーなんでしょうか?
なんか設定ミスのような感じですが...
初心者のツマラナイ質問ですいませんがお教えください。
0459デフォルトの名無しさん
NGNGソース晒せよ。隠す理由でもあるの?
0460デフォルトの名無しさん
NGNGコンソールアプリの設定のまま、ウィンドウアプリのコードをコンパイルしたとかでないの?
BCC Developerとやらで設定変更できない?
あとこっちで聞いたほうがいい。
[タダで使えるBorland C++ Part4]
http://pc5.2ch.net/test/read.cgi/tech/1091066805/
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNGC言語のライブラリ関数にあるのでしょうか?
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNG馬鹿は黙っていろよ
0465デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNG0467458
NGNG>コンソールアプリの設定のまま、ウィンドウアプリのコードをコンパイルしたとかでないの?
その通りでした〜!!ありがとうございました。
ついでに誘導どーもです。
0468462
NGNGシステムコールする以外に手立ては無いということでしょうか
0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNG意味など分かっていません。
0471デフォルトの名無しさん
NGNGなんかしゃべれ
0472デフォルトの名無しさん
NGNGHSP最高!
0473デフォルトの名無しさん
NGNG「システムコール」が
「system() を呼び出す」事を指しているなら
その通り。
0475デフォルトの名無しさん
NGNG%eでも%lfでもよいのでしょうか?
0476デフォルトの名無しさん
NGNG・・・ネタ?
0477デフォルトの名無しさん
NGNGいえ、ちょっとわからないもので。
%lfにして、コマンドラインから1.7e-308としてもきちんと出力されるのですが、
どちらを使ってもいいのですか?やはり%eでしょうか?それとも%leでしょうか?
0478デフォルトの名無しさん
NGNG皆さん、彼に無駄と教えてください
榎本健太郎(仮名)は 頭はオカシイが頑張っています 彼を見習ってください
0479デフォルトの名無しさん
NGNG%lf でも%le でも同じです。
%f, %e はfloat用で duble には使えません。
0480デフォルトの名無しさん
NGNGなるほど、つまりdoubleに値を入れる場合は、%lfか%leで値を取得し、
%fか%eで出力する、
そしてfloatに値を入れる場合は、%fか%eで値を取得し、
%fか%eで出力する。
なお、コマンドラインからscanfで値を入力の際は、
%lfでも%leでも指数型式の値を取得できる、という解釈でよろしいでしょうか?
0481デフォルトの名無しさん
NGNGだからさあ・・・
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/scanf.3.html
0482デフォルトの名無しさん
NGNGコマンドラインからscanfで?
0483デフォルトの名無しさん
NGNGはい。つまりコマンドラインから、1.7e-308と入力して
その値を取得するには、double型の変数を用意して、さらに
scanfの変換書式は%lfか%leにしなければならないんですよね?
0484デフォルトの名無しさん
NGNG0486483
NGNGつまり、DOSプロンプトからの入力のことなんですが。
0487デフォルトの名無しさん
NGNG履き違えてますね
コマンドのタイプ時に入力したらコマンドラインから
プログラム起動後だとしたら標準入力から
0488デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG既出
c_str()
0497デフォルトの名無しさん
NGNGさらにコピーしないとchar*にならないんじゃないの?
0498デフォルトの名無しさん
NGNGしなくていいとは思うんですが、コンパイル時に警告が出るんです。
本にも載ってないので教えてもらえないでしょうか?
0499デフォルトの名無しさん
NGNG#include <stdlib.h>
0500デフォルトの名無しさん
NGNGvoid
0502デフォルトの名無しさん
NGNGライブラリ??
0503デフォルトの名無しさん
NGNGdouble kansu(int x,int y)
{
double n;
if(x==y) n=0;
else n=(x-y)/(x+y);
return(n);
}
void main()
{
int x,y;
scanf("%f\n%f",&x,&y);
printf("%f",kansu(x,y));
}
実行はできますが計算結果がおかしいです
どうすればいいですか?
0504デフォルトの名無しさん
NGNGman 3 exitすればよろしい
0505デフォルトの名無しさん
NGNG入力がおかしいんだろ
0507デフォルトの名無しさん
NGNGdouble kansu(int x,int y)
{
double n;
if(x==y) n=0;
else n=(x-y)/(x+y);
return(n);
}
void main()
{
int x,y;
scanf("%d\n%d",&x,&y);
printf("%f",kansu(x,y));
}
0508504
NGNGManpageのこと
http://www.linux.or.jp/JM/index.html
ここのman on WWWでexitを検索してみよう
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNGありがとうございます
0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNGint** myIntArray;
myIntArray = (int**)malloc( sizeof( int* ) * n );
for ( i = 0; i < n; i++ ) myIntArray[i] = (int*)malloc( sizeof( int ) * m );
解放は,
for ( i = 0; i < n; i++ ) free(myIntArray[i]);
free(myIntArray);
で良いのでしょうか?
コンパイルは通り,一応動いてますが,自信がないので...
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG>free(myIntArray);
これやんないけど(w
0516デフォルトの名無しさん
NGNGもやる必要ないだろ。
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNGが、ここでfreeネタなんかやるんじゃねぇよ。
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNGmyIntArray = (int**)malloc( sizeof( int* ) * n );
myIntArray[0]=(int *)malloc(sizeof(int)*m*n);
for(i=1;i<n;i++) myIntArray[i]=myIntArray[0]+m*i;
free(myIntArray[0]);
free(myIntArray);
0521デフォルトの名無しさん
NGNG0522513
NGNGどうもすみません。
0523デフォルトの名無しさん
NGNG>>515
これはただのめんどくさがり
>>516
かなり釣り
>>517==>>518
freeしてもメモリを解放するわけではない(クラッシック)
>>520
何が言いたいのかよくわからん。解説してくれ。
今、よっぱなので、コードはよめましぇん
>>512
10年以上昔から定期的に話題になる、いい加減にしろ
0524デフォルトの名無しさん
NGNG>>515に言っているんだ馬鹿
0526デフォルトの名無しさん
NGNGコード読めないがフレームネタの知識だけ豊富な厨はキエロ
0527デフォルトの名無しさん
NGNG入力するのが両方とも整数だったら int でもいいのでは?
512 :デフォルトの名無しさん :04/09/08 14:05
なにが?
523 :デフォルトの名無しさん :04/09/08 14:38
>>512
10年以上昔から定期的に話題になる、いい加減にしろ
0528デフォルトの名無しさん
NGNG0530523
NGNG寝ます(デスマ明け〜)
#マ板ねただな、こりゃ
0532デフォルトの名無しさん
NGNGもともとカタチで憶えてループさせるパーツ程度にしか扱った
ことないので。
0533デフォルトの名無しさん
NGNGint func () {
int i;
for (i = 0; [なんたらかんたら]) {
[適当な処理]
}
return i;
}
……じゃないの?
0534デフォルトの名無しさん
NGNGint retusu(char *mojiretu)
{
int i;
for(i=0;i<10;i++)
{
if(*mojiretu=='\0')break ;
*mojiretu++;
}
return i;
}
int main(void)
{
int mojisu;
char *mojiretu;
printf("文字列を入力してください。\n");
scanf("%s",mojiretu);
mojisu=retusu(mojiretu);
printf("文字数は%dです。\n",mojisu);
return 0;
}
これの構文の間違いを指摘してください。
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG√(X2−X1)二乗 +(Y2−Y1)二乗
をプログラムに書くとすると どうなるか教えてくださいm(_ _)m
さっぱり分かりません‥距離の公式なんですが。
お願いしますっ!!
0537デフォルトの名無しさん
NGNG間違いは無いけど?
0538デフォルトの名無しさん
NGNG*mojiretu++;
>>536 -> >>535
0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNGそのコードは存在自体が無意味
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNG>>539
仮引数と実引数の変数がいっしょ
と指摘しているんでしょうか?
もともと
//strに入った文字列を一字ずつ表示する
pstr=str;
for(i=0;i<10;i++)
{
if(pstr=='\0')break ;
printf("%c\n",*pstr);
pstr++;
}
を応用させて
カウント変数の値によって
文字列の文字数を表示させるには
どうすればいい?
という考え方を思考錯誤してるのですが。
0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNG>>538 の指摘: 先頭の "*" は無意味。
>>539 の指摘: ふつー、そこでコケる。
0545デフォルトの名無しさん
NGNG文法は間違ってない気がするが
取り込んだ変数の扱い方?
0546デフォルトの名無しさん
NGNG自作関数の処理をえて
戻り値として文字数を出すポインタ変数に
なる仕組みのつもりですが。
0547デフォルトの名無しさん
NGNGどうしたらいいのでしょうか?
0548デフォルトの名無しさん
NGNG先頭文字を'\0'にする。
0549デフォルトの名無しさん
NGNGありがとうございます。strcpyを使えばいいんですよね。
なぜかうまくいかないのですが・・もう少し自分で頑張ってみます。
0550デフォルトの名無しさん
NGNG全然話が噛み合ってないような気がする
0551デフォルトの名無しさん
NGNGstrcpy()を使うまでもないぞ。C言語の文字列は'\0'を終端とみなすから、
先頭が'\0'でさえあればよい。だから例えばchar str[128];とあってこれを
空にするにはstr[0] = '\0';とすれば普通は十分。
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNGすみません;;
>>552
では何を使えば・・・
>>551
詳細ありがとうございますm(_ _)m
で、やってみたのですが、
例えば6文字目に6がはいっていて、str[0] = '\0';としても
6文字目には6がはいったままですよね?
C言語は'\0'を終端とみなすのは分かるのですが、
これを配列全てが何もない状態?になるようにしたいのです。・・・
0554デフォルトの名無しさん
NGNG「何もない状態」にする必要性は?
0555デフォルトの名無しさん
NGNGなにもない状態にするのは不可能。
0556デフォルトの名無しさん
NGNG配列が動的に確保されたものなら free してしまって、
静的に確保されたものならさっさとスコープから抜ける
0558デフォルトの名無しさん
NGNGそれをいっていませんでしたね、
strに123.456という文字列が入っていたとして、
これを数値に変換して表示し、
次にstrに123.45という文字列を入れて数値に変換して表示しようとすると、
6が残ってしまっているのか、123.46(最後の6を四捨五入したため?)
と表示されてしまって困っていたのです。
説明下手ですいません。。
>>556
動的とか静的といったことも分からない初心者でして・・・
申し訳ありません。
>>557
できました!どうもありがとうございましたm(_ _)m
あ、今考えると123.45の後ろに\0を入れるようにすればよかったのかな・・・?
0559デフォルトの名無しさん
NGNGおいおい、、、普通は
>123.45の後ろに\0
が文字列を入れるって事だろ
0560デフォルトの名無しさん
NGNGプラグインのようなものをつくりたいのですが。
0561デフォルトの名無しさん
NGNG更に説明不足ですみません。。。
str1に123.456000などと入っていた場合に最後の0の部分を切り落として
str2に123.456をstrncpyでコピーして、それをatofで数値に変換して
表示する、そしてそれを違う数値(123.45000など)でも何度も繰り返す、
ということをやっていたのです。
そのため\0が入っていなかったのかな・・・というわけでして
0562デフォルトの名無しさん
NGNG基本的に無理、必要なら必要に応じて情報を埋め込んどく必要がある。
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNGありがとうございます.
んーっと, Unix 上での開発を考えているのですが...
やろうと思ったら C のインタプリタつくってそれ中継するとか?
0565デフォルトの名無しさん
NGNGこのスレの質問者は、だろ。
0566デフォルトの名無しさん
NGNG他のスレできけ
0567デフォルトの名無しさん
NGNGfloat型やdouble型で==演算子使っちゃいけないのですか?
普通にわかんなくて凹む
0568デフォルトの名無しさん
NGNGそう言ったら、「馬鹿か?」とここの住人に言われた。
0569デフォルトの名無しさん
NGNGC言語では許可されているけれど、数学的に実数がぴったり合うということはほとんど
ありえないことなのです。
だから、実数型で==演算を許可していない言語も存在します。
コンピュータの中ではビットがぴったり合うことはありますが、本来の意味から
したらするべきではないことです。
0570デフォルトの名無しさん
NGNGちょっとちゃうだろ。
int main(){
float a;
a = 1.41421356;
if (a == 1.41421356 )
printf("%s","OK");
else
printf("%s","NG");
return 0;
}
@Borland C++ 5.5.1
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNGこの場合はfloatの有効桁数が7桁なので桁落ちした、
そういう場合があるからfloat型などで==を使うときは
気をつけなきゃいけないってことですかね
0573デフォルトの名無しさん
NGNGNo
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG比較するときは対象を演算してはいけないという事です。
あえて演算をするケースで考えるなら不動点を探すときには便利です。
これは奥村センセのCのアルゴリズム本が参考になります、収束判定が見事です。
上手に使えば非常に有用です。
0576デフォルトの名無しさん
NGNG本当はそんなときでも<とか>を使うべきなんだけど、==を使った方が楽だからね…
実際は使っちゃうよね
0577デフォルトの名無しさん
NGNGC言語で8バイトの整数型を使いたいときって何を使えばいいのでしょうか?
具体的には4バイトを超えるアドレスを格納しておくために使います。
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNGある数列が単調増加で上界があるとき、その差分が単調減少ならば必ず上限が存在して必ず停止します。
0580デフォルトの名無しさん
NGNG自分の言語の型くらい把握なさい
0581デフォルトの名無しさん
NGNG,-、二、 ーク / 7_/////////^
`ー‐‐' `ー' ///////し
_l^l_ i^i i^i ///////
/ ,--┘ U ノ | //////^
!__ニコ lニ.ノ 7/// _,,.. . __
__l^l__へ i^i i^i //^ .. _ `ヽ
゙┐r┐T゙ ∪ ノ | |/ /::/.┬".) l
く,ノr'_,ノ lニ.ノ 7 _iゞ/イ。_ノ _r'''、
| ,へ ,ヘ / / ニ-''^\¨ ∠.} l
| `゙ / / |. |l、ヾ⌒-| u r_ノノ "
| ヾ二ノ | ヽ |`´_,--| i、ニイ
| /,ニ^\. | \l<-ニフ ,ノ ,. \、'
| | | | | しリj | \ \ ̄ ,/ノ/ , | Z
゚ ゚ ゚ ゚ `ー" ー' 〔 / ̄/ '", /// ,.
0582デフォルトの名無しさん
NGNG違う
0583デフォルトの名無しさん
NGNG8バイトってdoubleとか_int64しかみつからないのですが・・・。
0584デフォルトの名無しさん
NGNGアドレスがメモリアドレスのことなら、ポインタ使えば?
0585デフォルトの名無しさん
NGNGそれが、足したり引いたりしなきゃいけないんですよ。
0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNGバラバラにしてunsigned charに格納して計算するのが良いのでは。
C99規格にあるサイズ規定のある整数のtypedefを取りあえず定義しておいて対応されたら、
ほいさっさも良いかと。
対応済みなら使っちゃえ。
0588デフォルトの名無しさん
NGNG0589577
NGNG調べてみた結果、どうやらunsigned long long int が使えるようです。
ありがとうございました。
・・・それにしても長いですねw
0590577
NGNGunsigned long long int の存在を知ったのは>>587-588さんのおかげです。
ありがとうございました。
0591デフォルトの名無しさん
NGNG0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNGプログラムに自信のある方って、「こんな感じのプログラムを作ってください」と、
言われたら、どんな感じでプログラムの書くんですか?どんな感じって抽象的なんですが、
例えば・・・これを作ってくれって言われたら即行ソースが思いつくとか・・・まぁ、
そんな感じで教えて下さい!
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNGマ板で聞けばいいのに
ソースというか完成したイメージが浮かぶ
それに沿って手を動かすだけ
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNGそのほとんどが当日のうちに「最大のネック」を発見することになるが・・・
0598デフォルトの名無しさん
NGNG「(・A・)←こんな感じのプログラムを作ってください」ときたら、
こっちからも「(´・д・`)←こんな感じでどうですか?」ってプロタイプを出してやるしかねぇだろうな。
んで、相手から「(´・ω・`)←いえいえやっぱりこんな感じにしてもらいたいんですが」ってきたら
「(・A・)←アレアレはじめはこうだっていってたじゃないですが」って返したら
相手から「実は(・A・)と(´・ω・`)でどちらにしようか決めかねてて・・・」ときたら
ここで相手といっしょに「( ´∀`)アハハハハ」と笑える奴が最強のプログラマだろうねw
ぶっちゃけどんなにプログラムを組む自信をつけてもここで笑えない奴は
いつまでたっても自信はつかないw
0599デフォルトの名無しさん
NGNGじゃあ、俺はダメだ。
最初こういってた、ということにこだわる。
はっきりさせてくれ、と真顔でいいたくなる。
慇懃無礼な態度になってくる。
丁寧語のなかにも怒りの感情が
込上げて来る。
そんな僕ですが。
0600デフォルトの名無しさん
NGNG仕様変更別料金
ただし作成時に発覚した仕様上の不具合修正は除く
0601デフォルトの名無しさん
NGNGこいつとケンカになるとデート代が、クルマのローンが・・・
仕事でなきゃとっくに鼻ぶっつぶしてるぜ (^_^)ニコニコ
0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNGはあ?
鼻ぶっつぶす?
どういう意味だ。
この野郎。
0605デフォルトの名無しさん
NGNGイ `< ,..-──- 、 _|_
 ̄ /. : : : : : : : : : \ |_ ヽ
∧ /.: : : : : : : : : : : : : : ヽ (j )
/ \ ,!::: : : :,-…-…-ミ: : : : :',
{:: : : : :i '⌒' '⌒' i: : : : :} _ヽ_∠
└┼┘ {:: : : : | ェェ ェェ |: : : : :} lニl l |
. |_|_| , 、 { : : : :| ,.、 |:: : : :;! l─| l 亅
__ ヽ ヽ. _ .ヾ: :: :i r‐-ニ-┐ | : : :ノ _
/ } >'´.-!、 ゞイ! ヽ 二゙ノ イゞ‐′ l `ヽ
´⌒) | −! \` ー一'´丿 \ l/⌒ヽ
-' ノ ,二!\ \___/ /`丶、 _ノ
/\ / \ /~ト、 / l \
/ 、 `ソ! \/l::::|ハ/ l-7 _ヽ
/\ ,へi ⊂ニ''ー-ゝ_`ヽ、 |_厂 _゙:、
∧  ̄ ,ト| >‐- ̄` \. | .r'´ ヽ、
,ヘ \_,. ' | | 丁二_ 7\、|イ _/ ̄ \
i \ ハ�� |::::|`''ー-、,_/ /\_ _/⌒ヽ
0606デフォルトの名無しさん
NGNGこいつとケンカになるとデート代が、クルマのローンが・・・
仕事でなきゃとっくに鼻ぶっつぶしてるぜ (^_^)ニコニコ
仕事でなきゃブチ殺してるのはてめえみたいな奴だ。
なにがデート代だ、車のローンだ。
そんなもんがてめえの自信の裏ずけか。
心底ブチ殺してやりたくなるぜ。
この野郎。
0607デフォルトの名無しさん
NGNG心底ブチョ殺してめえこのやろう。
0608デフォルトの名無しさん
NGNG心底ぬるぽしてめえこのやろう。
0609デフォルトの名無しさん
NGNGMacのコードウォーリア―が作業環境です。
0610デフォルトの名無しさん
NGNG>>1の
> GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
をちゃんと読んで下さい。
0611デフォルトの名無しさん
NGNG0612デフォルトの名無しさん
NGNGすみません。こんな質問をして。
ですが、マジでわからないので教えて下さい。
お願いします。
0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNGもしかして、こういう事?
int userfunc(void);
struct hoge{
int (*pfunc)(void);
:
}foo;
foo.pfunc = userfunc;
0615612
NGNGstruct hoge{
int a;
・
・
};
hoge* AAA(hoge** pphoge・・・)
{
・
・
・
}
こんな感じです。
このときの関数の型です。
0616デフォルトの名無しさん
NGNGそういう仕様の関数ってだけでしょ。
0617615
NGNGたぶん、そこが解ってないんだと思います。
お願いします。
0618デフォルトの名無しさん
NGNGstruct hogeへのポインタを返すってだけでしょ。
構造体が何か判ってないとかポインタとは何か判ってないなら初心者スレへどうぞ。
0619デフォルトの名無しさん
NGNGそれだけの情報でわかる訳ないやん。
hoge**を引数にしているって事は、AAA()の中でインスタンス確保してるんかな。
0620617
NGNG>>618さん ありがとうございました☆
ポインタは自分なりに理解してると思うのですが、
なにぶん、初心者で、構造体っていうのがわかっていなかったもので・・・。
ですが、わかりやすい解説ありがとうございました!
0621デフォルトの名無しさん
NGNGサパーリわからないオレはアフォですか?
0622デフォルトの名無しさん
NGNG安心しろ。俺もわからん。
0623デフォルトの名無しさん
NGNG生命削ってまでやることなのか?
0624デフォルトの名無しさん
NGNGああ、構造体とかの型が理解できてなかったのか。
やっとわかたよ。。。orz
0625デフォルトの名無しさん
NGNGいや、別に生命削ってはないけど、今日は偶々暇なんだよ。
0626デフォルトの名無しさん
NGNGえー!?構造体関係ないやん・・・
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNGファイルから数値をfloat型配列に一つずつ(改行で区切って)読み込むにはどうしたらいいでしょうか?
文字列をChar型配列に読み込むのはできるんですが、数値はどうしてもできません。
宜しくお願いします。
0631デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNGin test.dat
-----------------
0.1
2.22222
3.141592653589793
-----------------
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define IFILENAME "test.dat"
#define DAT_MAX 256
int main( void ) {
int i;
float dat[DAT_MAX];
char str[256];
FILE* fi;
if ( ( fi = fopen ( IFILENAME, "r" ) ) == 0) {
perror( IFILENAME );
exit(0);
}
for( i = 0; fgets( str, DAT_MAX, fi ) != NULL; i++ ) {
dat[i] = atof(str);
printf("%f\n", dat[i]);
}
return 0;
}
0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNGWinSock1.1を使用しています。
WinSockは、プロクシサーバーへの接続動作をサポートしているでしょうか?
それともCInternetSessionに変更した方が良いでしょうか?
よろしくお願いいたします。
0639デフォルトの名無しさん
NGNGネットワーク関連は以下のスレへ
ネットワークプログラミング相談室 Port10
http://pc5.2ch.net/test/read.cgi/tech/1090385857/
0640630
NGNGもう一つ聞きたいのですが。
例えば以下のようなファイルが会ったとします。
1
2
3
4
5
6
ファイルから数値(文字列)を配列aに読み込んでいき、途中の空白改行を境に
配列b(要するに別の配列)に数値を読み込んでいくにはどうしたらいいのでしょうか?
途中から読み込むというのができなくて困っています。
宜しくお願いします。
0641デフォルトの名無しさん
NGNGif(str=="\n")
で区切りを見つけて区切るとか。
0642デフォルトの名無しさん
NGNGだったかな。
0643デフォルトの名無しさん
NGNGgetname(s) char s[][];
{
printf("name: %s",s);
}
何故char s[][]がこの位置にあるのかがわかりません。
またスコープの範囲はどのようになるのでしょうか。
0644デフォルトの名無しさん
NGNG古い書き方。
getname(char s[][])
と同等。
0645デフォルトの名無しさん
NGNGそんな餌に
\(・(ェ)・)クマー
0647デフォルトの名無しさん
NGNGfgets(str, 100, fp);
for (i=0; str[i]!=0; i++) {
if (str[i]=='\r' || str[i]=='\n')
break;
}
if (i==0)
何かの処理;
0648デフォルトの名無しさん
NGNG#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")
で上手く起動するのですがBorland C++だとうまくいきません。教えてください、できる限り具体的に
お願いします。
0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNGGoogleで"Borland C winmm.lib"などのキーワードで
ていうかスレ違いだ
0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNGhttp://cham.ne.jp/piro/p_stdfunc.html
http://www.bohyoh.com/CandCPP/C/Library/
0653デフォルトの名無しさん
NGNG検索すればすぐ見つかったが。
いっぱいあったよ。
0654デフォルトの名無しさん
NGNG何の意味?それ全部と言うの?
0655デフォルトの名無しさん
NGNGmblenもそうか。
0656デフォルトの名無しさん
NGNG>>653
ありがとうございました
個人的にはstrtol()の他にrand()位しか使用しそうもないので
それだけ気をつけてみます
0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNG違うの?
0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNGハンドラを引数にすることのメリットはどんなことなのでしょうか?
0662デフォルトの名無しさん
NGNG人に判る言葉で
0663デフォルトの名無しさん
NGNGHDC hdc;
LPTSTR lptStr = TEXT("111");
hdc = GetDC(hWnd);
TextOut(hdc , 0 , 0 , lptStr , lstrlen(lptStr));
ReleaseDC(hWnd , hdc);
これだと111が表示されるのですが
変数Aの内容を表示させたい時はどうすればいいのでしょうか?
0664デフォルトの名無しさん
NGNGなんで、このスレにくるかなぁ…
【初心者歓迎】C/C++室 Ver.9【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1094494997/
0665デフォルトの名無しさん
NGNGchar s[] = "1", t[2];
int i = 1;
HDC hdc = GetDC(hWnd);
sprintf(t, "%d", i);
TextOut(hdc, 0, 0, t, strlen(t));
TextOut(hdc, 0, 0, s, strlen(s));
ReleaseDC(hdc);
0666デフォルトの名無しさん
NGNGリンクの仕方がよくわかりません。Visual C++の場合プロジェクトの設定でライブラリを
追加できるのですが,Borland C++ではどのように行えばいいのでしょうか。初心者ですいません。
0667デフォルトの名無しさん
NGNGタダで使えるBorland C++ Part4
http://pc5.2ch.net/test/read.cgi/tech/1091066805/l50
0668デフォルトの名無しさん
NGNG質問の答えが掲示板に載っているということですか?
0669デフォルトの名無しさん
NGNGBorland C++は持っています。
質問の答えが掲示板に載っているということですか?
0670デフォルトの名無しさん
NGNG「C言語」そのものの話じゃないでしょ?
0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNG貴方はこのスレにこなくて良いということです。
もっというと、貴方はいらん子というわけです。
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG……。
0676デフォルトの名無しさん
NGNG……。
0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNGmalloc する時点で自分で把握しておくしかない。
malloc(N*sizeof(type)) とかする時に、N*sizeof(type) の値をグローバル変数などに保存。
0679デフォルトの名無しさん
NGNG/*クラップスゲーム*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int rollDice(void);
main()
{
int gameStatus, sum, myPoint;
srand(time(NULL));
sum = rollDice();/*最初のサイコロ振り*/
switch(sum)
{
case 7: case11:/*最初のサイコロ振りで勝つ場合*/
gameStatus = 1;
break;
case 2: case3: case12:/*最初のサイコロ振りで負ける場合*/
gameStatus = 2;
break;
default: /*持ち点を記憶する*/
gameStatus = 0;
myPoint = sum;
printf("持ち点は%d\n",myPoint);
break;
}
0680デフォルトの名無しさん
NGNGWhile (gameStatus == 0)/*サイコロを振り続ける*/
{
sum = rollDice();
if (sum == myPoint)/*勝ち点が出たので勝ち*/
gameStatus = 1;
else
if (sum == 7)/*7が出たので負け*/
gameStatus = 2;
}
if (gameStatus == 1)
printf("プレイヤーの勝ち\n");
else
printf("プレイヤーの負け\n");
return 0;
}
0681デフォルトの名無しさん
NGNGint rollDice(void)
{
int die1, die2, workSum;
die1 = 1+(rand() %6);
die2 = 1+(rand() %6);
workSum = die1 + die2;
printf("プレイヤーがサイコロを振った。出目は%d + %d = %d\n",die1, die2, workSum);
return workSum;
}
をコンパイルしようとすると「error C2143: 構文エラー : ';' が '{' の前にありません。」と出ます。
何処が間違ってるのでしょうか?
0682デフォルトの名無しさん
NGNGWhile って何だ?whileだろ
0683デフォルトの名無しさん
NGNG- While (gameStatus == 0)/*サイコロを振り続ける*/
+ while (gameStatus == 0)/*サイコロを振り続ける*/
0684デフォルトの名無しさん
NGNGありがとうございました。
もう逝きます。すいませんでした。
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNGちゃんとエラーの場所も教えてくれるやつと交換しろ。
0687デフォルトの名無しさん
NGNG知らないなら余計な事言わなきゃいいのに。
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNGよく「floatは極力使うな」と言われます。
処理する内容にもよるのでしょうが、float型変数一個使ったぐらいで
通常のどれくらい処理落ちするものなのでしょう?
0690デフォルトの名無しさん
NGNG通常もクソも無い。
気になるなら自分で計れ。
0691デフォルトの名無しさん
NGNGCではあちこちfloatからdoubleへの格上げされる機会があってその分オーバーヘッドがかかるから遅くなると言われるけど、どのくらいかと聞かれれば>>690の一言に集約される。
0692デフォルトの名無しさん
NGNG80486SXを使っているパソコンだったら float よりも double の方が遅い。
0693デフォルトの名無しさん
NGNG691が言っているような事情を知ったうえで、そのうえで690が言っているような検討をすればいい。
その検討の結論が「極力使うな」とか言うDQNと一致しなくても気にする必要はない。
0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNGじゃ、使っていいんだなw
0696デフォルトの名無しさん
NGNGレベルの低いヤツだ
0697デフォルトの名無しさん
NGNGWH_CALLWNDPROCRETを使ってWM_COPYを見ていればいいんですか?
0698デフォルトの名無しさん
NGNGここはそんなスレじゃない
0699デフォルトの名無しさん
NGNG機械よりがどうかしたのか?
0701689
NGNGそれでやってみたのですが、処理時間に差は全くと言って良いほどありませんでした。
>「極力使うな」とか言うDQNと一致しなくても気にする必要はない。
そのDQNは先生であり・・・
gotoなど絶対に使うなと、教えられてきました。
その所為でしょうか、floatを一つ使うごとにとても気になってしまっていたのです。
みなさまの意見は大変参考になりました。
ありがとうございます。
0702デフォルトの名無しさん
NGNG知らなくていいと言うクルクルパーと、
実測もせずに教わったとおりの受け売りを繰り返すだけの永久初心者の轍を踏むな。
知るべきことは知り、現実を見て判断していればいい。要はそういうことだ。
0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNGgoto自体は絶対に使ってはならないことはない。
ただし、使うときはかなり厳しめの条件付きになる。
使わないに超したことはない。
0707デフォルトの名無しさん
NGNG具体的に条件を示さずに
>使わないに超したことはない。
↑
いきなりこういう結論だけを異様な目つき言う手合いはガイキチ
0708デフォルトの名無しさん
NGNGそれはガイキチとは言わず、低能といいます。
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNGとりあえず「絶対使うな」と教えこむことはあるだろう
0711デフォルトの名無しさん
NGNGそんなDQNにC言語教えるほうがおかしいんだよ
0712デフォルトの名無しさん
NGNG人にものを教える資質がない証拠
0713デフォルトの名無しさん
NGNGおまえは人にものを教えた経験があるのか?
どうやってもどうしようもないやつも世の中にはいる
0714デフォルトの名無しさん
NGNGとりあえず「絶対使うな」と教えこんだりしない
0715デフォルトの名無しさん
NGNGB 何故ですか?
A 知らん!オレもそう教わったからだ!
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG↓こういう時
http://pc5.2ch.net/test/read.cgi/tech/1021364372/
0718デフォルトの名無しさん
NGNGfor (条件A) {
for (条件B) {
for (条件C) {
.
.
.
if (例外) {
goto jump;
}
}
}
}
jump:
0719デフォルトの名無しさん
NGNGwhile (hoge) {
switch (foo) {
case bar:
〜;
●
}
}
○
例えば●から○へ行きたい(多重breakしたい)ときとか
0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNGループはwhileやforよりもif,gotoを使う方が速くなる。
0722デフォルトの名無しさん
NGNGそんなエサではクマも釣れない
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNGコンパイラは、for文、while文の動作は大抵の場合この変数をよく参照するだろう
という推論を元に値をレジスタに格納したりするんじゃなかったけ?
(メモリからレジストリにロードするのって結構コストがかかるような気が。。。)
そうなると、goto文にしちゃうとそういう最適化が有効にならずに結果として
出力されるコードが遅くなるなんてこともあるような。
まっ、何だかんだ言ってもさまざまなケースでの実測知に勝るものはものはないけど。。。
0727デフォルトの名無しさん
NGNG一度アセンブリで出力してみて、どっちが効率的か見て見ればいいんじゃないかな
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNGレジストリ・・・
0730デフォルトの名無しさん
NGNGアルゴリズム
0731デフォルトの名無しさん
NGNGWindowsに毒されているなぁ〜
0732デフォルトの名無しさん
NGNGそれが何か?
0733デフォルトの名無しさん
NGNGあ?
0734デフォルトの名無しさん
NGNG空きレジスタの数よりもネスト数が深いループからgotoで抜けるのと1段ずつbreakするのとどっちが早いと思う?
0735デフォルトの名無しさん
NGNG設計が悪いのではないのか
0736デフォルトの名無しさん
NGNG毒されているというより、基礎知識があやふやなだけでは?
0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNGそのネストの深い部分を関数にまとめて、returnにしちゃうの。
gotoは必要なし。
0739デフォルトの名無しさん
NGNGそして、速度の低下を防ぐためにグローバル変数を使えば完璧だな。
0740デフォルトの名無しさん
NGNG高速オナニーソース和えか?
0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNGCのプログラムをコンパイルすると
scm.c:4 から include されたファイル中:
scm.h:1:2: 警告: null 文字は無視されました
scm.h:1:3: 無効なプリプロセスディレクティヴ #i
scm.h:1:4: 警告: null 文字は無視されました
scm.h:1:6: 警告: null 文字は無視されました
のような警告がヘッダファイルの全行にわたって出てくるんですが
この警告の意味がよくわかりません。
ソースにnull文字なんて入れた覚えはないんですが。。
どなたかご教示お願いします。
0743デフォルトの名無しさん
NGNG自己解決しました。
文字コードがutf-8になってた。。orz
0744デフォルトの名無しさん
NGNG空きレジスタが少ない状況なんてそこいら中にあるだろ
ネストが何段になったら設計が悪いのかが処理系ごとに異なるとでも言いたいのか?
そんなことより「最適化の阻害」という問題について何か言ったらどうなんだ
0745デフォルトの名無しさん
NGNGread(sock,buf,BUFSIZE);
とすると行単位でしか読み込みができません.複数行の受信データを読み出そうと
for(;;){
x = read(sock,buf,BUFSIZE);
if(x == -1 || x == 0) break;
strcpy(buf2[i][0],buf);
memset(buf,0,BUFSIZE);
i++;
}
とすると,2度目のreadでなぜかプログラムが停止してしまいます.
(つまり1行目しか読み出せません)
解決策は無いでしょうか...
0746デフォルトの名無しさん
NGNG送信側の問題と予想してみる。
あたりだったら何か記念品をください。
0748デフォルトの名無しさん
NGNGSMTPサーバ相手に通信しているのですが,telnetからアクセスして
EHLOした時の受信内容と,自分のプログラムからEHLOした時とで,比較しているので
送信側の問題ではなさそうな気がします.
220 hoge.hoge.hoge ESMTP
220-8BITMIME
・・・・・
220 ETRN
と帰ってくるのが最初の1行しか読み込めない状況です.
0749デフォルトの名無しさん
NGNG50\nとしかでてこないんです。なんで?
Xcode1.1でやってます。OS10.3.5です。
0750デフォルトの名無しさん
NGNGでコンパイル通るの?
0751デフォルトの名無しさん
NGNG後ろにセミコロンさえ付いていれば文法的には問題ない。
…つか、もうカンマ演算子なんか廃止すりゃあいいのに。
0752749
NGNGでも実行結果だと50\nってでてくるんですよ。
0753デフォルトの名無しさん
NGNGvoid main()
{
char buff[1000];
while(fgets(buff,sizeof(buff),stdin)!=NULL){
char name[1000];
int point;
if(sscanf(buff,"%s %d",name,&point)!=2)
break;
printf("%s %d\n",name,point);
}
}
というプログラムを実行すると"stdinは定義されていません"とエラーが
通知されるんですが、stdinはどのように定義すれば使えるようになるんでしょうか?
くだらない質問ですが宜しくお願いします。
0754デフォルトの名無しさん
NGNGprintf("%d\n", 51);
0755デフォルトの名無しさん
NGNG配列の大きさにNを定義し、(例えばA[N]のようにして)
Nを1000と置けば正常に動いてくれるのですが、
Nを1500とか2000と置くと全く関係なさそうなscanf文の「'&' の演算項が不当」
と出たり、「'fprintf' のファイルポインタ値が不当」というエラーが出ます。
また、Nを10000と置くと「配列のサイズが大き過ぎる」
Nを100000と置くと「配列のサイズが不当」というエラーが出ます。
これはUltra-C特有のものなのでしょうか?
見直すべき箇所がありましたら教えてください。
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGはい。できます。
0758デフォルトの名無しさん
NGNGでかい配列をローカルに取らない。
0759デフォルトの名無しさん
NGNGHow can i do that?
0760デフォルトの名無しさん
NGNGint i[100];
size_t s;
s = sizeof(i) / sizeof(int);
0761デフォルトの名無しさん
NGNGすいません、ポインタで渡した先の関数では取れますか?
0762デフォルトの名無しさん
NGNG取れません
0763デフォルトの名無しさん
NGNGですね、どうもです
0764デフォルトの名無しさん
NGNG#define TYPE int
int main(){
printf("sizeof(TYPE)==%d\n",sizeof(TYPE));
}
sizeof(TYPE)==4
と表示されてしまします。これはどうしてでしょうか。
Cの文字列中はマクロ変換をしてくれないのでしょうか。
0765デフォルトの名無しさん
NGNGint配列に要素を追加するところで躓いてます。
mallocでlength+1を確保してるんですが、プログラム終了時に鰓はかれます。
ド素人が躓きそうな箇所を教えてください
0766デフォルトの名無しさん
NGNG配列には要素を追加できません。
0767デフォルトの名無しさん
NGNGっていうか、どんなソース書いてるか見せてくれる?
0768デフォルトの名無しさん
NGNGそのとおり
0769753
NGNGよろしくお願いします。
0770デフォルトの名無しさん
NGNGということは、プリプロセッサは、""で囲まれた場所とそうでない場所を
識別して、処理しているということですね。ありがとうございました。
0771デフォルトの名無しさん
NGNGstdio.hの中で定義されてるはずなのにねぇ
なんでだろ
もしかして標準入力がない環境?
0772753
NGNGおそらくあると思うんですが・・
でも、↑のプログラムで間違いはないって事ですよね。
とりあえず、それだけ知りたかったので有難うございました。
0773765
NGNG素人コードですが・・・。
ダメだししてください
void main(void){
int *TestData,length=0;
length = AddNewCoefficient(TestData, length, 0x1222221); }
//配列に係数を挿入する
int AddNewCoefficient(int *Data, int length,int inData){
length=Add32Degree(Data, length);
*(Data+length-1)=inData; return length;}
int Add32Degree(int *Data, int length){
//無限ループすると落ちます。
//引数に現在の長さ(配列の要素数)を渡してください
//戻り値は作成した配列の長さ or FALSE
int i,*tmp;
tmp=(int*)malloc(sizeof(int)*length);
if(length>MAXDATASAFTY) return FALSE;
for(i=0; i<length; i++) tmp[i]=*(Data+i);
free(Data);
Data = (int *)malloc(sizeof(int)*(length+1));
for(i=0; i<length; i++) *(Data+i)=tmp[i];
return(length+1); }
0775デフォルトの名無しさん
NGNGreallocはお嫌い?
0776デフォルトの名無しさん
NGNG気付いた点のみ。
・malloc()したあとにlengthを調べるより、malloc()する前に調べるべき。
・↑こうしてないので、returnの前にfree()が必要。
・正常系でもtmpがfree()されていない。
・ポインタを渡しても、ポインタを得ることはできない。
#void func(int)に整数値を渡しても整数値を得られないのと同様。
#int *を受け取りたいなら、void func(int **)としてやる。
・(どうせ受け取れてないから意味ないけど)Dataもfree()されてない。
・特にそう書きたい理由がないなら、*(Data+i)と書くよりData[i]と書くべき。
・戻り値がFALSEと配列の長さと区別できなくなる。
#FALSEが0である前提なら、素直に長さ0を返すべき。
・戻り値がFALSEだった場合に、書き込んではいけないところに書き込んでいる。
0777デフォルトの名無しさん
NGNGif(length>MAXDATASAFTY) return FALSE;
を
tmp=(int*)malloc(sizeof(int)*length);
の前に置いてください
変数と演算子の間にはスペースを置いたほうが見やすいです
free(Data);
Data = (int *)malloc(sizeof(int)*(length+1));
を
realloc( Data, sizeof(int)*(length+1) );
で書き換えられます
0778755
NGNG>でかい配列をローカルに取らない。
どうすればN=100000の配列が作れるようになりますか?
0779デフォルトの名無しさん
NGNGstaticにするか、グローバル変数にするか
0780デフォルトの名無しさん
NGNGえとね、
配列っていうのはスタック領域に確保するものだから、大きさに制限がある。
確保できる大きさはかなり小さいです。
あなたのように大きな領域を使う場合はヒープ領域に確保しないとだめ。
int n[100000];
n[0] = 0;
じゃなくて、
int* n;
n = ( int* )malloc( 100000 * sizeof( int ) );
n[0] = 0;
.....(略
free( n ); //これを忘れてはいけない
としてください。
0781デフォルトの名無しさん
NGNGint main(void) {
int *TestData = NULL, length = 0;
length = AddNewCoefficient(&TestData, length, 0x1222221);
return 0;
}
int AddNewCoefficient(int **Data, int length, int inData) {
int NewLength = Add32Degree(Data, length);
if (NewLength > 1 && )
(*Data)[length] = inData;
return NewLength;
}
//戻り値は作成した配列の長さ or FALSE
int Add32Degree(int **Data, int length) {
if (length > MAXDATASAFTY)
return 0;
*Data = realloc(*Data, sizeof (int) * (length + 1));
return length + 1;
}
0782デフォルトの名無しさん
NGNG1つの.cファイルのヘッダファイルはどのくらい必要でしょうか?
やはりそのファイルの関数を呼び出している分+自分の分でしょうか?
それとも、他ファイル分+自分の分だけでいいのでしょうか?
0784デフォルトの名無しさん
NGNG同じファイルを使いまわせばいいんじゃない?
0785デフォルトの名無しさん
NGNG他のファイルから参照したい関数だけでよい。
0786781
NGNGAddNewCoefficientのif (NewLength > 1 && )はif (NewLength > 1 && Data != NULL)の間違いだった。
0787765
NGNG*Data = (int *)realloc(*Data, sizeof (int) * (length + 1));
どうしてもここで引っかかってしまいます。
0788デフォルトの名無しさん
NGNGなにが?
0789765
NGNG.NET2003(?)のVC++でのデバッグ実行中のエラーです。
//test.exe の 0x00417c52 で初回の例外が発生しました : 0xC0000005: 場所 0xccccccc8 を読み込み中にアクセス違反が発生しました。 。
//test.exe の 0x00417c52 でハンドルされていない例外が発生しました : 0xC0000005: 場所 0xccccccc8 を読み込み中にアクセス違反が発生しました。 。
gcc ver.2.95では通りました。
0790デフォルトの名無しさん
NGNGreallocのところにブレークポイントかけて、引数をチェックするとか。
0791765
NGNGチェックしていましたが、問題が(見当たりませんでした||見つけられませんでした)。
自己で理解できなかったので、配列をconstで確保、迂回策とします。
realloc、常識を投げてくださった諸先輩方ありがとうございました。
gccで通るので、一人で吊ってきます。
#VC++ and Windowsやっぱりよくわかりません
0792デフォルトの名無しさん
NGNGところでint *TestData = NULLをint *TestData = malloc(1)にしてみるとどうなる?
0793デフォルトの名無しさん
NGNGmallocとfreeには致命的欠陥がある
newとdeleteを使えおまえら
0794デフォルトの名無しさん
NGNG致命的欠陥があるのは貴様の脳ではないのか
0795デフォルトの名無しさん
NGNG( ゚,_ゝ゚)バカジャネーノ
0796デフォルトの名無しさん
NGNGこう?
void *new(size_t s) {
return calloc(1, s);
}
void delete(void *p) {
return realloc(p, NULL);
}
0797デフォルトの名無しさん
NGNGねえ、それで面白いと思ってるの?
0798デフォルトの名無しさん
NGNG#define delete free
0799デフォルトの名無しさん
NGNG#define delete printf
0800デフォルトの名無しさん
NGNG頭が相当良くないと気付けないから
おまいらには理解不能だろうよ
0801デフォルトの名無しさん
NGNGおまえにしか理解不能
つまらんから直ちに消えろ
0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNGはいはい
malloc/freeでプーなコードでも
書いといてください
0804デフォルトの名無しさん
NGNG致命的欠陥があるのは貴様の脳ではないのか
0805デフォルトの名無しさん
NGNG同意。
0806デフォルトの名無しさん
NGNGわからないからって
すぐそうやってごまかすw
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNGで、mallocで確保した領域をfreeするとその領域が未使用領域のリストに挿入される
ここでもしその領域の前後も未使用領域だった場合,
未使用領域がひとつの大きな未使用領域としてマージされる
その時に未使用領域を管理する双方向リストのつなぎ変えが起こる
これでどうなるかと未使用領域をつなぐポインタとして
前の未使用領域へのポインタをfd,後の未使用領域へのポインタをbkとすると
fd->bk = bk; と bk->fd = fd; という風にポインタがつなぎ変わる
で,なんとこのfdとbkのポインタ領域ってmallocしたときに
確保した領域と一緒にユーザに割り当てられちゃう
これが超やばい,致命的仕様,セキュリティホール満載
リストの管理領域まで一緒に割り当てちゃうってどんな仕様だよ
頭の回転が速いやつには
あんなことやこんなことができてしまう(((( ´,,_ゝ`)))) ププッ プルプルッ
ってこった
0815デフォルトの名無しさん
NGNGへーそうなんだ
御前頭悪いな
0816デフォルトの名無しさん
NGNGint y;
x = 1000 * 2;
y = 1000 / 2;
printf("%d %d\n", x, y);
とやると
200 0
と表示され、y = 0x1000 / 0x2の効果が表れません。
しかし、
x = 1000 * 2;
y = 1000 / 2;
printf("%d ", x);
printf("%d\n", y);
と一回づつ表示するとちゃんと
2000 500
となるんですが、これはどういう違いなんですか?
0817デフォルトの名無しさん
NGNG救いようが無い馬鹿だな
お前のところのmalloc/freeの実装なんて興味ないんだよ
0818デフォルトの名無しさん
NGNGとくに問題ないんじゃない?
別のプロセスが同一空間にアクセスしてこれるならどうかわからんけど。
0819デフォルトの名無しさん
NGNGlonglongを%dで出してるから。
0820816
NGNG0821デフォルトの名無しさん
NGNG%dはint用。
longなら%ld
long longなら%lld
0822821
NGNG0823デフォルトの名無しさん
NGNGかなり一般的な実装( ゚,_ゝ゚)
>>818
これが場合によってはかなりの問題
実はこれをどう利用するかが
一番頭をひねるところなんだけどね
ただこれは自分で気付くしかないね
このスレだけではとても説明しきれないから
0824816
NGNGただ、2回目(別々に表示)だとうまくいくのかという疑問がムクムクと。。。
printf()内部の話なのかな?
0825デフォルトの名無しさん
NGNGそれは、プロセス空間が分かれていても問題が起こるってこと?
0826デフォルトの名無しさん
NGNGたとえばリトルエンディアンでLonglongの1とIntの2を送ると16進で
0100000000000000 02000000
となり、表示で両方Intと勘違いして
01000000 00000000(以下無視) 02000000
とされ、1 0という表示となる
(かなり用語や数を間違ってるかもしれん)
0827755
NGNG>配列っていうのはスタック領域に確保するものだから、大きさに制限がある。
>確保できる大きさはかなり小さいです。
>あなたのように大きな領域を使う場合はヒープ領域に確保しないとだめ。
>int n[100000];
>n[0] = 0;
>じゃなくて、
>int* n;
>n = ( int* )malloc( 100000 * sizeof( int ) );
>n[0] = 0;
>.....(略
>free( n ); //これを忘れてはいけない
これをそのまま入れたら他の行のintが構文エラーしました。
何をどうすればいいのかサッパリ分かりません・・・。
0828デフォルトの名無しさん
NGNG起こるというか起こす
別プロセスは関係ない
mallocで確保した領域を
少し工夫してfreeすれば起こせる
0829デフォルトの名無しさん
NGNGそんなことできる権限あったらなんでも出来るわ
0830デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNGnew/deleteを使えば解決するようには読めないけど?
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNGリトル、ビッグってのは、何に対してリトル、ビッグなの?
0835デフォルトの名無しさん
NGNG自分が理解不能だとすぐ池沼か( ´゚,_」゚)ヒッシダナ
このいつまでも塞がれることのない
本当のfreeセキュリティーホールで
ハックしまくり(((( ´,,_ゝ`)))) ププッ プルプルッ
>>830
犬やフリビが酷いって(´ν_.` )
>>832
実はnew/deleteで解決されるかはまだ検討していない( ´_ゝ`)
0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNGRegular Endian
Big Endian
0839デフォルトの名無しさん
NGNGユーザ空間なんだから安心だろ。
0840デフォルトの名無しさん
NGNG何がビッグ?
0841デフォルトの名無しさん
NGNG下位バイトに対して上位バイトだからビッグ
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNG調べろよ、それくらい。基本だろ
0844デフォルトの名無しさん
NGNG相対的ではないと思う。
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNGだから宣言はint* n;でしょ。
メモリを確保するのがmalloc使ってる部分でしょ。
メモリを開放するのがfree使ってる部分でしょ。
例えば、
int main( void ) {
int a;
int b;
int* n;
int c;
n = ( int* )malloc( 100000 * sizeof( int ) );
//〜いろんな処理〜
free( n ); //最後に必ず
return 0;
}
みたいにする。
0847デフォルトの名無しさん
NGNGなのですね。リトルエンディアンは、小さい桁が下位バイトに
収められるからリトルエンディアン、小さい桁が上位バイトに
収められるからビッグエンディアン、で合ってますか?
0848デフォルトの名無しさん
NGNG小さい桁ってのがよくわからんが
リトルエンディアンは下位アドレスに下位バイトが配置され
ビッグエンディアンは下位アドレスに上位バイトが配置される
0849デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?hl=ja&ie=UTF-8&q=%E3%83%AA%E3%83%88%E3%83%AB%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3+%E3%83%93%E3%83%83%E3%82%B0%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNG物理的な配置とが食い違ってるように感じたので、何がどう
リトルで、どうビッグなのかが知りたかったのです。
0852デフォルトの名無しさん
NGNGvoid hogehoge(double a[], int m){
int i;
for(i=0;i<m;i++){
a[i] = i;
}
}
という文法はOKなのに、2次元配列で
void hogehoge2(double a[][], int n, int m){
:
:
}
という書き方すると怒られるのは何故ですか?
0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNG> Endianという呼び方は、
> もともとはガリバー旅行記に出てくる、
> ゆで卵をどちらの端の方から最初に割るか
> という議論に由来している。
結構知られている話と思われ。
0855デフォルトの名無しさん
NGNGでは要素数が不確定な場合は動的に配列を確保するしかないのでしょうか?
0856デフォルトの名無しさん
NGNGいいわけですね。
リトルエンディアン=下位バイトから最初に〜
ビッグエンディアン=上位バイトから最初に〜
となるわけですか。ありがとうございます。
0857デフォルトの名無しさん
NGNGそりゃ当然でしょうああた
0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNG要素数が不確定といっても色々で、配列という選択自体が不適切な場合もよくある。
0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNG数値計算で2次元とか3次元計算してるんですけど、それを可視化する関数に渡す時、
どうしても配列と言う形で渡さねばならんのですよ。
>>860
動的に確保してそれを解放してってのを300msに一度程度やると糞重くなりました。
何かいい方法ありませんか?
0863デフォルトの名無しさん
NGNGスピード気にするなら malloc free 使わず自分で記憶管理
0864デフォルトの名無しさん
NGNGスタックには数MBも確保できません
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNG0867デフォルトの名無しさん
NGNG(方法1)スタックサイズ増やせ
(方法2)staticでヒープ領域に作っとけ
0868デフォルトの名無しさん
NGNGたくさん出したのね。
0869デフォルトの名無しさん
NGNG>別プロセスは関係ない
DOS または Classic Mac OS の話じゃないかと思われます。
0870デフォルトの名無しさん
NGNGint test()
{
//55 push ebp
//8B EC mov ebp,esp
return 1;
//B8 01 00 00 00 mov eax,1
}
//5D pop ebp
//C3 ret
こういうのがあったときtestのサイズが10ってのを
命令数を数えなくても知りたいのですが
0871デフォルトの名無しさん
NGNGその数値計算とやらの内容を知らないので何とも言いようがないが、
例えば色々なサイズの行列が出てきて、それら個々は計算中にサイズが変わったりしない、
のようなことであれば、
struct gyouretu_type { int gyou, retu; };
struct gyouretu_obj { struct gyouretu_type *type; double *a; }; みたいな構造体で管理すればいいし、
素因数分解のような話であればリストにする手もあるだろ。リストのリストは俺もよく使う。
0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNG君の言う「サイズ」の定義は?
一般にサイズとは領域の開始番地と終了番地の差に1を加えた値で、
領域とは連続した区間のことを言う。
関数が占有する領域は1つという保証がない。
そこで君は「サイズ」に独自の定義を与える必要が出るわけだが・・・
0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNGえへん
0876デフォルトの名無しさん
NGNGvoid hogehoge2(double a[], int n, int m)
としてnとmからaの位置を自分で計算すればいい。
0877デフォルトの名無しさん
NGNGOS・ライブラリのオーバヘッドが問題になるのなら、
自分で管理すれば?
0878デフォルトの名無しさん
NGNG( ´゚,_」゚)(((( ´,,_ゝ`))))(´ν_.` )
笑う角には福きたる!
0879デフォルトの名無しさん
NGNGサーバプログラムで
signal(SIGCLD,Catch);
として,void Catch(){}に子が死んだときの処理を書いたのですが,
コンパイルエラーが出て,invalid conversion from void(*)() to void(*)(int)となりました.
その後signalのプロトタイプはvoid (*signal(int sig, void (*func)(int)))(int);
ということを知ってvoid Catch()をvoid Catch(int x){}としたのですが,xには
一体何がわたったのでしょうか...これだとコンパイルが正常にできるのですが,
何を渡したのかわからないので不安です.
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNGエラーだったらコンパイルできないと思うがなぁ
あと、簡単な英語なんだから辞書片手でもメッセージ読んだほうが
void Catch(int hoge){
0882デフォルトの名無しさん
NGNGあ、後半読んでなかった
まあ辞書片手に(ry
0883デフォルトの名無しさん
NGNGCatchはfork()された子プロセスが死んだときに呼び出されるわけで,
プログラム中でCatch(hoge);のように呼び出すわけではないのですが
0884デフォルトの名無しさん
NGNGttp://www.linux.or.jp/JM/html/LDP_man-pages/man2/signal.2.html
100回音読してくれ
0885755
NGNGごめんなさい、本当にわからなくて。
例えば、配列の名前を「Array」配列の大きさをNとしてN=100000としたいなら、
int main()
{
int*N;
N=(int*)malloc(100000*sizeof(int));
〜Array[N]を使った処理〜
free(N);
}
ということでいいのでしょうか?
0886デフォルトの名無しさん
NGNGオウム返しの返答しないように
試せばわかる事を聞き返さない
0887デフォルトの名無しさん
NGNGおしい
int main()
{
int *Array;
Array = (int*)malloc(100000 * sizeof(int));
〜Array[N]を使った処理〜
free(Array);
}
0888755
NGNG100000個の配列をちゃんと作っているか確認するために
下のような適当なプログラムを組んでみました。
ところが、i=2506の処理が終わった後、
「行番号 13: '=' の左辺値オペランドが不当」
というエラーが出ました。
どうしたら修正できるのでしょうか?
#include<stdio.h>
#include<stdlib.h>
#define N 100000
int main()
{
int i;
int*Array;
Array=(int*)malloc(N*sizeof(int));
for(i=0;i<N;i++)
{
Array[i]=i;
printf("Array[%d]=%d\n",i,Array[i]);
}
free(Array);
}
0889デフォルトの名無しさん
NGNG実はmalloc に失敗していたとか
0890デフォルトの名無しさん
NGNG翻訳中に表示された診断メッセージのように見えるが・・・
0891デフォルトの名無しさん
NGNG当方の環境では、エラーでないで完走するんだが・・・
0892デフォルトの名無しさん
NGNGUltra-C Proがヘンなんじゃない?
0893デフォルトの名無しさん
NGNGじゃ、これは?
#include<stdio.h>
#include<stdlib.h>
#define N 100000
int Array[N];
int main(void){
int i;
for(i = 0; i<N; i++)
{
Array[i] = i;
printf("Array[%d]=%d\n", i, Array[i]);
}
}
0894デフォルトの名無しさん
NGNGhttp://softplaza.biglobe.ne.jp/shop/sboat/ultracpro/
0895デフォルトの名無しさん
NGNG0896755
NGNG>>892
ソフトは何を使っていますか?
>>893
それだと、
行番号 4: 配列のサイズが不当
行番号 10: 'Array' が未定義
というエラーがでました。
0898デフォルトの名無しさん
NGNGそんな変なインタプリタじゃなくて、普通のコンパイラを使うことをお勧めする。
0899デフォルトの名無しさん
NGNGBorland C++
>行番号 4: 配列のサイズが不当
てことはSuper-C Proでも使うしかないね
0900デフォルトの名無しさん
NGNG> 行番号 4: 配列のサイズが不当
> 行番号 10: 'Array' が未定義
それは想像できるエラーだね。
だって100000は大きすぎるもん
891 892では無いけど、処理系はGCCかVC++だよ。前者はPC-UNIX系(Linuxなど)、
後者はWindows、でデファクトスタンダードですよ。
0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNG処理系にもよるが、400KBは「たかが」だったり・・・
0903755
NGNG>>900
「int *Array;
Array = (int*)malloc(100000 * sizeof(int));
free(Array);
」
をっていないから、Ultra-Cでは配列が大きすぎるという事になってしまうのですね。
今更なんですけど、作ることのできる配列のサイズってコンパイラの種類とかで
違うんですか?
VisualC++6.0(ここで言っているVCでしょうか)だとうまくいったりするのですか?
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNGをっていないから?いみふめ
質問に答えると、そうです。
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNG0909755
NGNG「をっていないから」→「を使っていないから」でした・・・。
0910デフォルトの名無しさん
NGNG実際は400Kぐらいならwinのまともな「コンパイラ」ならなんでもいける
だろ
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNGどこかにないでしょうか?
0916デフォルトの名無しさん
NGNGあるよ、うちのLinuxには。
0917デフォルトの名無しさん
NGNGマジッスか
どっかにUPしてもらえませんか
0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNGたった一つの関数のソース見るためだけに
わざわざOS落としてきたりはキツイっす
0921デフォルトの名無しさん
NGNGあっそう。
0922デフォルトの名無しさん
NGNGで、お次は
「たった一つの関数を理解するために
何千行ものコードを読むのはキツイっす」
か?
0923デフォルトの名無しさん
NGNGそれはないっす
0925デフォルトの名無しさん
NGNGかなり参考になります
どうもっす
0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNGあっそう。
0928デフォルトの名無しさん
NGNG標準関数の atoi() を使うと 0 がエラー扱いになってしまいます。
この制限を解決するスマートな方法はないでしょうか?
0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNGif(sscanf(mojiretsu, "%d", &seisuu) != 1) goto hell;
0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNG0933デフォルトの名無しさん
NGNG0934デフォルトの名無しさん
NGNGstrtol() もエラー値が 0 なのでだめそうです。
>>930
sscanf() なら 0 が入力されてもエラー値と混同しないですね。
ありがとうございます。
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNGもう少し身長にマニュアルを読んだほうがいいよ。
0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNGはぁ…
0939デフォルトの名無しさん
NGNGエラーかどうかを戻り値で判断すると思い込むのは危険だな。
0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNGもうちょっとちゃんと言え。
>strtol() もエラー値が 0 なのでだめそうです。
もうちょっとちゃんと読め。
0942デフォルトの名無しさん
NGNGオレも初めて数ヶ月は戻り値が全てと思ってたよ・・・
0943デフォルトの名無しさん
NGNGどうやって選択するの?
0944デフォルトの名無しさん
NGNGfprintfやfputsなどの引数を変えればいいのでは?
0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNGそこで悩んでます。if文とかでも出来そうかなとは思うんですがイマイチわからなくて
0948デフォルトの名無しさん
NGNGwrite(2, ...);
でいいんじゃねw
0949デフォルトの名無しさん
NGNGコマンドライン引数でファイル名が指定されていればファイルに、指定されていなければ標準出力に書き出すとか。
argc,argv(main関数の引数)の使い方はわかる?
0950デフォルトの名無しさん
NGNGすいませんわかりません…
0951デフォルトの名無しさん
NGNGfp = stdout;
else
fp = fopen("hoge.txt", "w");
fprintf(fp, "Hello");
0952デフォルトの名無しさん
NGNG#include <stdio.h>
int main(int argc,char *argv[])
{
FILE *fp;
if(argc<=1)
fp=stdout;
else
fp=fopen(argv[1],"w");
if(fp==NULL)
return 1;
fprintf(fp,"はろーわーるど\n");
if(argc>1)
fclose(fp);
return 0;
}
コンパイルしてできた実行ファイルがtestonなら、
testonで標準出力に、teston file.txtならfile.txtに書き出す。
0953デフォルトの名無しさん
NGNGあ、出来そうですね。ありがとうございます
0954デフォルトの名無しさん
NGNG神様ありがとう!感謝します。
0955デフォルトの名無しさん
NGNGよく読んでみました。
strtol() の返り値が 0 の場合、第2引数が数値かどうかを判断すればいいわけですね。
long value = strtol(numStr, &endptr, 10);
if (value == 0 && (*endptr != '\0')) goto ERROR;
こんな感じでしょうか・・・。
0956デフォルトの名無しさん
NGNG数字列のあとの空白("-387 "←こういうの)を許さないならそれでいい。
0957956
NGNG"0 "
0958デフォルトの名無しさん
NGNGアドバイスありがとうございます。
stdinから入力されたCSV形式の数値解析をしたかったんですが、
sscanf(), strtol() どちらでも実現できそうですので、
もう少し考えてみてよりシンプルな処理になる方を使ってみます。
0959デフォルトの名無しさん
NGNGまだ、いまいち分かってないっぽいな。
どうでもいいけど。
0960デフォルトの名無しさん
NGNGそれがほぼ終わりました。この課題を通してやっと初級の入り口に
立てて、プログラミングの面白さが分かった気がします。
本業ではないですが、プログラミングを続けてレベルアップしたいと
思っています。しかし、次のデータとか、特に課題が見つかりません。
何か面白い課題はないのでしょうか。
恐らくこのままではプログラマーでもない私は今やっているような
面白い課題に自然に巡り合うことは今後もうないと思います。
面白いデータや課題があれば、教えてください。
よろしくお願いします。
0961デフォルトの名無しさん
NGNGお絵かきツールを作ったり、言語のインタプリタを作ったり、いろいろしてた。
作るといっても、書籍のソースを打ち込んで、改造したりってのがほとんどだったけど。
0962デフォルトの名無しさん
NGNGどうもありがとうございます。
ツールという課題がありますね(思いつきもしませんでした・・
自分が使いたいと思うツールを作って使うのは面白そう。
0963デフォルトの名無しさん
NGNGこのスレでも宿題スレでもいいからテンプレリンク含め目を通せばいいよ
0964ビル・ジョブス
NGNG次はWin32APIを勉強するとかデバイス制御を勉強するのがお奨めです。
コンピュータ言語なんて単なる表現ツールですよ。
(C言語は他の言語に比べてかなり洗練されてるから止められないけど)
0965デフォルトの名無しさん
NGNGつーか「エラー値」と聞いて何かを早合点している時点でアウツ
0966デフォルトの名無しさん
NGNGC++だとさらに洗練されてるから
より止められないけど
0967デフォルトの名無しさん
NGNGおやすみ (つ∀-)オヤスミー
こんにちわ ( ゚∀゚)ノィョ―ゥ
という感じのテキストデータが列挙されているテキストファイル
を読み込んで、指定した文字数以上の顔文字を削除するプログラムを
組みたいのですが、どうすればいいですか。
0968デフォルトの名無しさん
NGNG結果は、シフトする数の32の剰余をシフトしたもになります。
これは仕様でしょうか・・・。
0969デフォルトの名無しさん
NGNGまず、テーブルをどこに持つか、だ。
実行ファイルに埋め込むのか、それとも(ry
あと、そのAAげとズザザ━━━━⊂(゚Д゚⊂⌒`つ≡≡≡━━━━!!
0970デフォルトの名無しさん
NGNGIA-32アーキテクチャだと、シフトする数の下位5bitのみが有効なんでそんな感じ。
Cの仕様としてどう決ってるのかは知らない。
0971デフォルトの名無しさん
NGNGなるほど、サイズについてマスクかけてるんですね。
あふれたらすべてゼロにしたい場合には条件判断しかないですか?
0973デフォルトの名無しさん
NGNG1ビットシフトを繰り返すという方法も考えられるけど、
条件判断入れたほうが速いな。
0974デフォルトの名無しさん
NGNGあとは哀愁のstrtok()でも使えばよろしいんじゃありませんか、
0975デフォルトの名無しさん
NGNGunsigned __int64にキャストしてみるといいかもしれない。
0976デフォルトの名無しさん
NGNGint -> int64 -> intの二段階キャスト?それって効率わるくない?
0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG効率が悪いって事は、かっこ悪いコードになり得る悪寒
0979デフォルトの名無しさん
NGNGキャストするよりシフト繰り返しのほうが効率が良くてかっこいいんだ!
と言いたいんだね
0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG特に >>955-959 あたりのやりとりなんぞまるで大人と子供
0983デフォルトの名無しさん
NGNG時間帯によるんじゃない?
昼だし。無職か学生さんでしょ?
0984デフォルトの名無しさん
NGNGネタだろうとは思うが
馬鹿かお前ら
0985デフォルトの名無しさん
NGNGint global_hoge;
main(){
int hoge[global_hoge];
return 0;
}
と宣言できるか出来ないかは処理系依存?
0986デフォルトの名無しさん
NGNGできるできない以前に、そんな書き方する奴の気が知れない
0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNGmalloc作れば問題ないのでは?
0989デフォルトの名無しさん
NGNGヒープ領域が使いたくないんじゃないかな
0990985
NGNGが、前任者のやつらが相当へぼかったらしく
malloc関連で相当バグらせたらしい。
よって今回は多少メモリ食ってもmallocは使用禁止。
その中で何とかスマートにと悪あがきしたのが
>>985
ワケワカラン
0991デフォルトの名無しさん
NGNG修正できないお前がヘボだ
使用禁止にしたやつもヘボだ
悪あがきの代案がヘボだ
0992デフォルトの名無しさん
NGNGC99で可能になった奴だっけ?コンパイラ依存だろ
実装は見たことないけど、結局malloc/freeにナンジャネーノ
0993デフォルトの名無しさん
NGNGC99な環境であれば可能だけど。
あとは、allocaが使えるかもしれない。
0995デフォルトの名無しさん
NGNGだから
malloc作れよ!!
0996デフォルトの名無しさん
NGNGmallocの代替にmy_malloc作っても一緒だろ?
おんなじバグになるだけだと思うが
0997デフォルトの名無しさん
NGNG次スレ作れよ!!
0998デフォルトの名無しさん
NGNGで、調べてみたら、別にグローバル変数で渡す必要はないみたいだね。
引数に配列の要素数を渡してやってもできるみたい。。
0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadレス数が1000を超えています。これ以上書き込みはできません。