C言語なら俺に聞け! Part 61
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNG質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
コンパイラを探しているなら >>2-13 を。
C machineはCに非ず
上記を逸した場合の結果は激しく未定義だYO!
C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
C言語なら俺に聞け! Part 60
http://pc2.2ch.net/test/read.cgi/tech/1056806789/
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/
【ライセンスや機能などに問題あり】
Microsot 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
0004デフォルトの名無しさん
NGNG乙NULL
00054
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG禁止は無理だけど、削除依頼してくれれば消すよ。
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGねーもん
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGここまでは、目撃されている情報から間違いがない
そして、今度は東京行きのぞみXX号にのって…
0017デフォルトの名無しさん
NGNGhttp://www.math.keio.ac.jp/~matumoto/mt.html
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG#include <stdio.h>
typedef size_t At;
typedef const void * N;
typedef size_t T;
typedef FILE * DoCoMo;
At fread(N,T,T,DoCoMo);
0021前スレ912
NGNG前スレの913,914さん、ありがとうございました。
特に914さんの説明、かなり納得できました。
どうもでした。
0022デフォルトの名無しさん
NGNG#include <stdlib.h>
int main(){
int a=1000,b=1000,i=0,mina=0,minb=0,r=rand();
printf("%d %d %d\n",i,a,b);
for(i=1;i<100;i++){
if(16000<r&&r<24000){
a+=4; b-=4;
}
if(24000<r&&r<32000){
a-=2; b+=7;
}
if(mina<a) mina=a;
if(minb<b) minb=b;
printf("%d %d %d\n",i,a,b);
}
printf("mina=%d minb=%d\n",mina,minb);
}
どんな(1-32768のどれか)乱数を出すかで、乱数がどの範囲に入るかで
a,bの値が下がったり上がったりするプログラムを作ったつもりなんですが、
aの値もbも1000を出力したままずっと変わりません。何でなんですか?
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNGどなたか知ってたら教えてください
0025デフォルトの名無しさん
NGNG>>1
0026デフォルトの名無しさん
NGNGどなたか知ってたら教えてください
002722
NGNG#include <stdlib.h>
int main(){
int a=1000,b=1000,i=0,j,mina=1000,minb=1000,a0=0,b0=0;
printf("%d %d %d\n",i,a,b);
for(j=0;j<20;j++){
for(i=1;i<100;i++){
if(16000<rand()&&rand()<24000){
a+=4; b-=4;
}
if(24000<rand()&&rand()<32000){
a-=2; b+=7;
}
if(mina>a) mina=a;
if(minb>b) minb=b;
printf("%d %d %d\n",i,a,b);
a0+=mina; b0+=minb;
}
printf("mina=%d minb=%d\n",a0/1000,b0/1000);
}
}
上のプログラムにちょっと付け足したものです。
mina,minbを試行で何度も出して、試行回数で割って
平均値を求めようとしたんですけど、mina,minbは変な値が出てきました
普通は1000程度の数がでます。どこがおかしいんでしょうか?
0028デフォルトの名無しさん
NGNGおまい、わざとだろ
0029デフォルトの名無しさん
NGNG>if(16000<rand()&&rand()<24000){
最初のrand()と二つ目のrand()は別の値になる。
0030前スレ1000
NGNG0031前(々)スレ999
NGNG0032デフォルトの名無しさん
NGNGint main(void)
{
char str[] = "abcdefg";
int k;
for(k = 0; k < 7; k++){
if(str[k] == "b"){
printf("%s\n", str);
break;
}
}
return 0;
}
abcdefgが出力されるはずなんですが・・・。
移植性の無いポインタ変換という警告が出てます。
よろしくお願いします。
0033デフォルトの名無しさん
NGNG例えば、こんな感じ。
main(){
FILE *file;
func(file);
}
void func(FILE* f){
f=fopen("xxx", "r");
}
この場合、勝手にクローズされちゃう?
0034デフォルトの名無しさん
NGNGstr[k] と "b" を比較しているから。
>>33
当然可能。勝手にクローズするはずがない。行方不明になるが。
0035デフォルトの名無しさん
NGNGvoid func(FILE** fp) {
*fp = fopen(...);
}
FILE* func() {
return fopen(...);
}
003633
NGNGreturn しないでできる?引数渡しで。
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG35を良くみろ。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGvarchar型に格納されている文字列の比較ってどうやるん?
そのまま == で比較したらキャストエラーが出るのだが
varchar A[10][5];
varchar B[10][5];
---詳細省略--------------------------------------------
varcharのA配列にSQLで取った値をカーソルFETCHで値格納
varcharのB配列にSQLで取った値をカーソルFETCHで値格納
-------------------------------------------------------
if(A[1].arr == B[1].arr){
}
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGAとBは二次元配列だから、添え字がおかしいんじゃないの?
あと、varchar同士の比較は、長さを比較して、一致してたら
memcmpを使えばいいのかな?
Pro*Cって知らんから、間違ってるかもしれんけど。
0045デフォルトの名無しさん
NGNGということで、スレ違いなんだってばさ。
0046デフォルトの名無しさん
NGNG画面をクリアする方法ってどこ探しても載ってないんすよね・・・
0047デフォルトの名無しさん
NGNG載ってる。
0048デフォルトの名無しさん
NGNGCと関係ないからな
0049デフォルトの名無しさん
NGNGsystem("clear"); /* UNIX/Linux */
0050デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNGすげえ。C 言語とかいっといてオレだよとかいってるよ。この人。
0054デフォルトの名無しさん
NGNGそれ言うならスレタイが既に(ry
0055デフォルトの名無しさん
NGNGif(A[1].arr == B[1].arr)
でなくて
if(strcmp(A[1].arr, B[1].arr)==0)
では。
005655
NGNGif (A[1].len == B[1].len
&& strcmp((char*)A[1].attr, (char*)B[1].attr)==0)
かな。スレ違いなのでこれくらいに。
0057_
NGNG0058デフォルトの名無しさん
NGNGvarcharの文字列は0がついてるとは限らないから、strcmpで比較はまずいよ。
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG◎無修正画像をご覧下さい◎無料パスワードをゲットすれば、もっと凄い画像とムービーがご覧頂けます◎
★見て見ておまんこ★
★http://yahooo.s2.x-beat.com/linkvp/linkvp.html★
0063デフォルトの名無しさん
NGNG「静的変数」と言われても良く分かりません。
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG#include <stdlib.h>
int main(){
int a[99],i1,i2,i3,i4;
for(i1=0;i1<99;i1++){
a[i1]=rand()%51;
}
for(i2=1;i2<12;i2++){
for(i3=0;i3<99;i3+=49){
while((a[i3]==a[i3+1]||a[i3]==a[i3+2]||a[i3]==a[i3+3]||a[i3]==a[i3+4]||a[i3+1]==a[i3+2])
||(a[i3+1]==a[i3+3]||a[i3+1]==a[i3+4]||a[i3+2]==a[i3+3]||a[i3+2]==a[i3+4]||a[i3+3]==a[i3+4])){
a[i3+1]=a[i3+1+(4*i2)]; a[i3+2]=a[i3+2+(4*i2)]; a[i3+3]=a[i3+3+(4*i2)]; a[i3+4]=a[i3+4+(4*i2)];
}
i4=(i3/49)+(i3%49);
printf("a[%d]=%d\n",i4,a[i4]);
}
}
}
トランプを5枚配ったときのトランプの出方を出力使用としたのに、
このソースでは実行すると何にもでてきません
一応、同じカードを引かないように工夫はしたつもりです。
0066デフォルトの名無しさん
NGNG006765
NGNG0068デフォルトの名無しさん
NGNGソース読むのメンドクセ
0069デフォルトの名無しさん
NGNGよーわからんが動いたぞ。
007065
NGNGでも、なんで結果は、a[0],a[1],a[2]が延々とでてしまうんでしょうか
0071デフォルトの名無しさん
NGNG正直ソースが煩雑で見る気にならない。
山から1枚カードを引く関数 pull_card()
を作ってmainから必要な数だけ呼べ。
そうすればすっきりして、おかしいところもわかるだろ。
0072デフォルトの名無しさん
NGNGおまえ、www.ioccc.orgに出馬しろ、ぜひ。天然は強い。
0073デフォルトの名無しさん
NGNGひょっとして、0-nまでの数を、n個の配列に、重複無く・ランダムに
放り込む方法を知らないとか?
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGちょっと考えれば思いつくと思うが。
0076デフォルトの名無しさん
NGNGstatic const int big_tbl[] = {
/*
ウンザリするほど巨大なテーブル
*/
};
static void func(void){
/*
テーブル使ってほにゃらら
*/
}
があった時、ソースが激しく見づらいので、
static void func(void){
/*
テーブル使ってほにゃらら
*/
}
static const int big_tbl[] = {
/*
ウンザリするほど巨大なテーブル
*/
};
という配置のしたいのですが、どうすればいいんでしょうか?
前方参照みたいなことは可能ですか?
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGstaticをexternに。
007978
NGNG008078
NGNGstaticを消して先頭にextern const int big_tbl[];
008178
NGNGexternを消して先頭にstatic const int big_tbl[];
0082デフォルトの名無しさん
NGNGextern const int big_tbl[];
static void func(void){
/* テーブル使ってほにゃらら */
}
const int big_tbl[] = {
/* ウンザリするほど巨大なテーブル */
};
こんなカンジですか?
ありがとうございます。今環境がありませんが後で試して見ます
008378/80
NGNGそう。
元のままの方がいいと思うけどね
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNGもしくは実行時にファイルから読み込み。
0086デフォルトの名無しさん
NGNGシャッフルアルゴリズム
1. とりあえず順列にでいいから配列に全部の数を詰める。
2. i 番目の要素と別の要素とを入れ替える作業を i = 0 〜 (n-1) まで順番に行う。
3. それを何度か繰り返す。
0087デフォルトの名無しさん
NGNG既製のソースをそのままで for の条件式の所にだけチェック用の関数を入れたいのですが
#define for(a) for(a)
のようにはできても
#define for(a;b;c) for(a;check(b);c)
のようにはできません(「;」は区切りに使えないみたいです)
置き換え後は別に for じゃなくてもいいので
#define for(a;b;c) {a;while(b){c;}}
とかも考えたのですが、左側部分の問題は残ったままです。
カンマで
#define for(a,b,c) {a;while(b){c;}}
とすると、そもそも現在のソース全てに手を入れなければならずに、
元に戻すのも大変な上、
for(a=0, b=0; a < b; ++a, --a)
みたいに書いてある所はどうしようもなくなってしまいます。
何か方法はないでしょうか?
0088デフォルトの名無しさん
NGNG#define FUNCTIME(f,r) \
{ \
unsigned long time = GetTickCount(); \
(r) = (f); \
time = GetTickCount() - time; \
printf("%s time = %lu[ms]\n",#f,time); \
}
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG無理。
0092デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int have[5];
int opn[52]={0};
const char mark[4][3]={"▲","■","●","★"};
const char num[13][3]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
int i,r;
srand(time(NULL));
for(i=0;i<5;i++)
{
r=rand()%52;
if(opn[r]) continue;
else {opn[r]=1;have[i]=r;}
}
for(i=0;i<5;i++) printf("%s%s\n",mark[have[i]/13],num[have[i]%13]);
return 0;
}
0094デフォルトの名無しさん
NGNGawkとかperlで加工しちゃったら?
0095デフォルトの名無しさん
NGNG同意。で、それやるなら「プリプロ後ファイルを」行連結しつつ処理かな。
それでも "for (x;y" なんて意地悪な文字列があるとコケがちなんで、
文字列識別位はしないといかんかも。
>>87
どうしても既成のソースいじれないの?
正規表現置換で for (a; CONDCHKFOR (b); c) とかにしちゃって
チェック外す時に #define CONDCHKFOR なり、
inline static int CONDCHKFOR (int a) { return a; }
で良い気がするんだけど。
0096デフォルトの名無しさん
NGNGやぼったい
0097デフォルトの名無しさん
NGNG#define for(a;b;c) for(a;check(b);c)
↓
for(a;
と展開されるはず
だいたい大して楽になってないじゃないか
0098うぇ〜〜〜〜
NGNG0099デフォルトの名無しさん
NGNGint main()
{
printf("1+2=%d\n",1+2);
return 0;
}
↑これをコンパイルして実行したら
何か一瞬だけ表示されて閉じちゃうんですけど…何ででしょ?
ちなみにVisual C++.net2003使ってます、よろしくお願いしまつm(__)m
0100デフォルトの名無しさん
NGNG関数内で行うようにしたいのですが、うまくいきません。
具体的に、
main(){
char file[]="filename";
char a[LENGTH], b[..], c[...];
char str[LENGTHLINE];
FILE *fp;
/* a の読み込み */
if ((fp=fopen(filename, "r"))!=NULL){
fgets(str, LENGTHLINE, fp);
sscanf(str, "%s\n", &a);
fclose(fp)
}
/* b の読み込み */
/* c の読み込み */
処理
}
0101デフォルトの名無しさん
NGNGとなっているところを、
main(){
char file[]="file";
char a[LENGTH], b[..], c[..];
read_abc(file, a, b, c);
処理
}
void read_abc(char *file, char *a, char *b, char *c){
char str[LENGTHLINE];
FILE *fp;
/* a の読み込み */
if ((fp=fopen(file, "r"))!=NULL){
fgets(str, LENGTHLINE, fp);
sscanf(str, "%s\n", &a);
fclose(fp);
}
/* b, c の読み込み */
}
というようにしているのですが、
コンパイルは通っても segmentation Fault になってしまいます。
main で配列サイズを決めていても、read_abc で配列サイズを確保しなくては
ならないのでしょうか?
また、一般的には関数間での文字列の受け渡しはどのようにするのでしょうか。
ご教授お願いいたします。
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGプログラムが終了すればコマンドプロンプトも閉じられる。
そういう仕様。(at Windows コマンドプロンプト)
つか、スレ違い。
>>101
>sscanf(str, "%s\n", &a);
a はポインタぢゃないのか?
ところでコレ、sscanf の仕様を理解して使っているならいいが、それにしても
無駄だな…
0104デフォルトの名無しさん
NGNGprintfみたいな、引数の数無制限みたいな感じにしたいんですが
↓現在こんな感じ
#ifdef DEBUG_
#define DEBUGOUAT( _f_ , _v_ ) \
{\
fprintf(stdout,_f_,_v_);\
}\
#else
#define DEBUGOUAT( _f_ , _v_ )
#endif
こうやっても、_v_の所は、一個しか引数かけないです。
どう記述したら、無制限にできるのですか?
0105デフォルトの名無しさん
NGNGコンパイラが C99 に対応してれば
#ifdef DEBUG_
#define DEBUGOUAT(...) fprintf(stdout, __VA_ARGS__)
#else
#define DEBUGOUAT(...)
#endif /* DEBUG_ */
が使えるんだが、そうでなけりゃ関数作るしか。
int debugprintf(const char *form, ...)
{
va_list p;
va_start(p, form);
return vfprintf(stdout, form, p);
}
#ifdef DEBUG_
#define DEBUGOUAT debugprintf
#else
#define DEBUGOUAT /* none */
#endif /* DEBUG_ */
0106デフォルトの名無しさん
NGNG#ifdef DEBUG_
#define DEBUGOUT(params) printf params
#else
#define DEBUGOUT(params)
#endif
DEBUGOUT(("Hoge %s.\n", "hoge"));
で、fprintf は諦める。
stderr とかに出したい場合はそれなりの関数を用意する。
0107デフォルトの名無しさん
NGNG((void*)0)(i = 0);
とできて、さらに i = 0 が実行されないというのは、
C++ のみの仕様だっけ?
C89 でもできるなら
#ifdef DEBUG_
#define DEBUGOUT printf
#else
#define DEBUGOUT ((void*)0)
#endif
でいいんだけど。
0108デフォルトの名無しさん
NGNGで、最適化を期待
0109デフォルトの名無しさん
NGNG誰か教えて下さい。
何秒間というのはランダムです(5秒〜30秒ぐらいの間)
0110デフォルトの名無しさん
NGNG何を?
0111デフォルトの名無しさん
NGNGmallocが返す値ってポインタですよね。
IBMにあったサンプルプログラムで下記のようなコードがあるんですけど、
TIFFRead~()の3つ目の引数で、ポインタにint型の整数を加えているのがわかりません。
確保した領域がどこにあるのかを示す値に加えちゃたら
どこか変なところを指しちゃったりしないんですか?
char *buffer;
int imageOffset=0;
buffer = (char *) malloc(bufferSize)
for (stripCount = 0; stripCount < stripMax; stripCount++){
if((result = TIFFReadEncodedStrip (image, stripCount,buffer + imageOffset,stripSize)) }
0112デフォルトの名無しさん
NGNG>>1を読めないような奴に、何を教えても無駄。
0113デフォルトの名無しさん
NGNGbuffer += imageOffset じゃないから大丈夫。
0114デフォルトの名無しさん
NGNG構造体 name のメンバ変数 strName の値をqsort関数を使い
ソートを行いたい。
どうやれば良いのか教えてください。
typedef struct _Name{
char strName[30] ;
} Name ;
Name name[7] ;
strcpy( name[0].strName, "C" ) ;
strcpy( name[1].strName, "X" ) ;
strcpy( name[2].strName, "B" ) ;
strcpy( name[3].strName, "BB" ) ;
strcpy( name[4].strName, "A" ) ;
strcpy( name[5].strName, "AB" ) ;
strcpy( name[6].strName, "ZX" ) ;
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNGそうです。
文字列ですが出来ますか??
0117デフォルトの名無しさん
NGNG本当に?
strName でソートすんじゃないの?
0118デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
typedef struct _Name{
char strName[30] ;
} Name ;
int NameCmp(const void *a, const void *b){
return strcmp(((Name*)a)->strName,((Name*)b)->strName);
}
main(){
Name name[7] ;
int i;
strcpy( name[0].strName, "C" ) ;
strcpy( name[1].strName, "X" ) ;
strcpy( name[2].strName, "B" ) ;
strcpy( name[3].strName, "BB" ) ;
strcpy( name[4].strName, "A" ) ;
strcpy( name[5].strName, "AB" ) ;
strcpy( name[6].strName, "ZX" ) ;
qsort(name, 7, sizeof(Name),NameCmp);
for(i =0;i<7;++i)
printf("%s\n",name[i].strName);
}
0119デフォルトの名無しさん
NGNGそうです。
strNameでソートします。
0120デフォルトの名無しさん
NGNGスレ違いだけどヒント。
int main()
{
…
(σ゜Д゜)σゲッツ!!
return 0;
}
若しくは、コマンドプロンプト開いて、
プロンプト>実行ファイル名
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNGなるほど。言われてみれば確かにそのとうりですね。
ありがとうございます。
でも、それじゃあ buffer + imageOffset ってどういう処理をしてることになるんでしょうか。
度々すいませんがお願いします。
0124デフォルトの名無しさん
NGNGbuffer先頭からimageOffsetだけポインタをインクリメントした先のポインタを返す。
0125デフォルトの名無しさん
NGNGありがとうございます。
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG実行したときのaの値を表しなさい。
(1) a/=b
(2) a+5*b--
(3) a=a!=b
(4) a=a%b
(5) a=a>b
(6) a=a||b
(7) a++
(8) a=!a
(9) a+=b*2
(10) a=(++a)*(b++)
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG>>1読めバーカ
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNGstdinやstdoutは
unko.exe < data.txt
unko.exe > data.txt
で、使えること知ったけどよ。
stderr ってなんだよ
0133デフォルトの名無しさん
NGNGとやっても、data.txtに書き出さずに、プロンプトにエラーメッセージを表示できる。
0134デフォルトの名無しさん
NGNG突然、変なこと聞くけど
unko.exe > data.txt
data.txtへリダイレクトしている内容を、Cのプログラムで直接受け取ることは不可能ですか?
int main(int argc, char **args){
unko.exe の出力をこの中でいじる!
}
0135マルチでごめん!
NGNGsystem("unko.exe > data.txt ");
data.txtを開いて読むというのは無しね。
0136デフォルトの名無しさん
NGNGリダイレクトはファイルへしかできない。
標準出力に出されたものを、標準入力から取り込むならパイプがあるが。
0137デフォルトの名無しさん
NGNG( ゚∀゚ )なるほど
ありがたい
0138134
NGNG/* wget で取り込んだhtmlファイルをdata.txtという名前で保存する*/
system("wget http://hanyan.co.jp -O data.txt ");
data.txtを開いて読む。
ということをやっていたプログラムをファイルの使えない
組み込みLINUXに移植することになりましたので、よい方法を探しています。
wget の出力を、C言語の中で、charの配列か何かで受け取る方法は無いかなあと。
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNG0142134
NGNGそれだ〜〜〜〜〜っ!
ありがとう。ありがとう。
0143デフォルトの名無しさん
NGNG繰り返しを使い、三角形を画面に表示させましょう。ただし、表示する三角形の
高さをキーボードから指示するものとします。
高さが n の三角形を表示するには、
1行目ではスペースをn-1回表示し、アステリスクを1回表示
2行目ではスペースをn-2回表示し、アステリスクを3回表示
k行目ではスペースをn-k回表示し、アステリスクを2k-1回表示
という処理をn行目まで繰り返します。
0144デフォルトの名無しさん
NGNG□□□□□□□*↓
□□□□□□***↓
□□□□□*****↓
□□□□*******↓
□□□*********↓
□□***********↓
□*************↓
***************↓
あとは、簡単ですからプログラムを作ってみよう。
応用編
□□□□□□□*↓
□□□□□□*□*↓
□□□□□*□□□*↓
□□□□*□□□□□*↓
□□□*□□□□□□□*↓
□□*□□□□□□□□□*↓
□*□□□□□□□□□□□*↓
***************↓
にチャレンジしてみよう。
0145143−144
NGNG0146デフォルトの名無しさん
NGNG自分でやれ!
0147デフォルトの名無しさん
NGNGしゅくだいは、じぶんでしましょうね。(いちおうひらがなでかいておきます)
0148デフォルトの名無しさん
NGNG>>1
> ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
0149デフォルトの名無しさん
NGNGsscanf()のパラメータが間違いだらけ。
受け渡し方としては、まぁいいんでないかい?
尤も、LENGTHとLENGTHLINEの値によっては問題あり。
0150デフォルトの名無しさん
NGNG・sscanf()のパラメータが間違いだらけ。
・そもそもsscanf()の必然性が不明。
・LENGTHとLENGTHLINEを分ける理由も不明。
・fileもレゾンデートルが不明。
・a,b,cを読むたびにファイルを開きなおすのか? その辺も不明。
「具体的」と書く以上、もっとちゃんと元のソースを載せろよ。
元々おかしいのか、コピーの段階でおかしくなったのか判らないじゃないか。
0151
NGNG0152デフォルトの名無しさん
NGNG>>1
0153デフォルトの名無しさん
NGNGここまでハッキリとアルゴリズムが示されていて、何がわからないと言うのだろうか?
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG外部シンボル "__imp__timeBeginPeriod@4" は未解決です
というエラーが出ます。
ちゃんと
#include <mmsystem.h>
をインクルードしてから、
timeBeginPeriod(1);
を使っているのですが
0156デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/netframework/downloads/
有償?
0157デフォルトの名無しさん
NGNGそれはリンクエラー
ヘッダーファイルをインクルードしたかどうかは関係ない。
0158155
NGNGしかし、なぜMSDNで検索してもtimeEndPeriodは見つかりませんなんだ?
0159デフォルトの名無しさん
NGNG次のようなエラーが発生しました。
codemlmain.c が main を含み、codemlwrap.c が関数 codemlwrap を含むファイルです。
read_control_file, get_num_of_trees などは codemlmain 内で定義し、
codemlmain ファイル内からのみ呼び出している関数です。
codemlwrap.c, codemlmain.c 内の関数のプロトタイプは codemlmain.h で
宣言し、codemlmain.c からのみ include しています。
codemlwrap.o: In function `read_control_file':
codemlwrap.o(.text+0x554): multiple definition of `read_control_file'
/tmp/ccIGiNsI.o(.text+0x0): first defined here
/usr/bin/ld: Warning: size of symbol `read_control_file' changed from 897 to 893 in codemlwrap.o
codemlwrap.o: In function `get_num_of_trees':
codemlwrap.o(.text+0x8d4): multiple definition of `get_num_of_trees'
/tmp/ccIGiNsI.o(.text+0x384): first defined here
codemlwrap.o: In function `get_tree':
codemlwrap.o(.text+0x978): multiple definition of `get_tree'
/tmp/ccIGiNsI.o(.text+0x428): first defined here
codemlwrap.o: In function `get_seq':
codemlwrap.o(.text+0xa1c): multiple definition of `get_seq'
/tmp/ccIGiNsI.o(.text+0x4cc): first defined here
codemlwrap.o: In function `print':
codemlwrap.o(.text+0xba4): multiple definition of `print'
/tmp/ccIGiNsI.o(.text+0x654): first defined here
collect2: ld returned 1 exit status
以上、よろしくお願いいたします。
0160デフォルトの名無しさん
NGNGオブジェクトファイルを二重にリンクしようとしてないか?
makefileなどを見なおしてみるように。
尚、これ以上はスレ違い。
0162デフォルトの名無しさん
NGNG1 ファイル内のみでしか使わない(staticな)関数の宣言は
そのファイルの頭で宣言する(ヘッダファイルを使用しない)
2 ファイル外で使う(externな)関数と変数の宣言は、ヘッダファイルにまとめ
その関数及び変数を使用する全てのファイルの頭で #include する
3 2で宣言した関数と変数は、全てのファイルの中で
必ず、1回だけの定義をする必要がある
>>160
別にスレ違いではないような…
0163デフォルトの名無しさん
NGNG関数プロトタイプを勉強しませう。
0164デフォルトの名無しさん
NGNGリンク手続きの問題なら、コンパイル環境の使い方になるからスレ違い。
まぁ、あんたの指摘するような問題もあるからその点に関してはスレ違いではないな。
0165159
NGNGgcc -c codemlwrap.c
gcc -o codemlmain codemlmain.c codemlwrap.o
としているだけなのですが、問題ありますか?
>>162
>>3 2で宣言した関数と変数は、全てのファイルの中で
>> 必ず、1回だけの定義をする必要がある
これは全てのファイルを通して、各関数が1回だけ定義されている必要がある、
ということですよね。
codemlmain.c, codemlwrap.c の両方で #include しましたが同じ結果になります。
んんー、特に問題ない気がするのですが・・・。
0166159
NGNGできました。お騒がせしました。
でも、これって static 付けなきゃいけないもんなんですか〜?
0167デフォルトの名無しさん
NGNG疑問があるなら調べろよ。
staticとは何か理解しているのか?
0168デフォルトの名無しさん
NGNGソース晒してみ?
static宣言しなくても普通はコンパイルできるんだがな。
#ヘッダファイルじゃなくてソースをincludeしているに一票。
0169デフォルトの名無しさん
NGNGgcc -c codemlwrap.c
gcc -c codemlmain.c
gcc -o codemlmain codemlmain.o codemlwrap.o
これと>165のは同じ意味ですか?
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNGなんとかの一つ覚え?
>>169
ほぼ同じ。
但し、>>165ではcodemlmain.oが生成されない。
つーのはgccの話であって、コンパイラによっては一概に言えない。
0172169
NGNG0173デフォルトの名無しさん
NGNG平方根を求めるプログラムを作っているのですが、実行時にエラーになってしまいます。
コンパイル時の警告メッセージも意味がわかりません。
#include<stdio.h>
#include<string.h>
#include<math.h>
/*平方根を求めるプログラム*/
intmain()
{
char*i;
intl;
doublej,k;
for(l=0;l!=EOF;l++)
{
printf("数値を入力してください。\n");
gets(i);
i[strlen(i)-2]=NULL;
j=atof(i);
k=sqrt(j);
printf("平方根は%fです。\n",k);
}
return0;
}
0174デフォルトの名無しさん
NGNGsageているし、ネタだと思っていいのか?
iはどこを指しているの?
0175デフォルトの名無しさん
NGNGあえて言おう!
> 平方根を求めるプログラムを作っているのですが、
君が作っているのは平方根を求めるプログラムを使うプログラムだ!
0176デフォルトの名無しさん
NGNGi[strlen(i)-2]=NULL;
j=atof(i);
scanf("%d", &j);
0177デフォルトの名無しさん
NGNGchar* i; → char i[128];
i[strlen(i)-2]=NULL; → 不要
0178デフォルトの名無しさん
NGNG君にはまだ早いような気がします。
0179デフォルトの名無しさん
NGNGちょっと質問させてください。
12bitの整数型を使ってmalloc()で領域を確保したいのですが
どうすれば12bitの値を扱えるのでしょうか?
0180デフォルトの名無しさん
NGNGビットフィールド
0181デフォルトの名無しさん
NGNGp = malloc(sizeof(int12));
0182デフォルトの名無しさん
NGNG32ビットで我慢しろ。
0183デフォルトの名無しさん
NGNGhttp://java.sun.com/j2se/1.4/ja/docs/ja/api/
みたいな関数リファレンスってネットにありますか?
0184デフォルトの名無しさん
NGNGJISに仕様書があるけど、とてもみづらいので、
http://www.bohyoh.com/CandCPP/C/Library/index.html
これで。全てサポートしていないかもしれないけど。
0185デフォルトの名無しさん
NGNG0187179
NGNGビットフィールドって7bit以上でも使えましたっけ?
>>181
Linux上でgccを使ってるのですが、
コンパイル時にint12で弾かれてしまいます。
どうしたらいいでしょうか。
>>182
12bitは決定で変えられないんです。
0188デフォルトの名無しさん
NGNG12bitの整数を扱わなければいけないのはなぜ?
何をしようとして必要なんだ?
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNG演算は32bitで行って、必要なときに12bitにつめればいいんでないの?
0192デフォルトの名無しさん
NGNG何だかよー分からんが、
例えばフロッピーディスクの FAT のように、
12 ビット長の値の羅列を扱う必要があるって状況なわけね?
12 ビットの型を用意することはできないので、
(ビットフィールドを使っても、
その構造体のサイズはバイト単位になってしまう)、
8 ビットの配列を使って、
それを 12 ビットの配列であるかのように扱うしかない。
例えば、char a[3]; とすると、CHAR_BIT が 8 だとすると
((int)a[0] << 4) | (a[1] >> 4) と
((int)a[1] & 0x0F) << 8 | a[2] を
第 0, 1 要素として扱うわけだ。
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG頭が固い奴は(ry
0195デフォルトの名無しさん
NGNGあれってひとつのメンバーに割り当てられるのは6ビットまでなの?
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG12bitで画像処理ってIKONOS画像か?
算術演算のみでビット演算しないんだったら32bit整数で間に合うと思うけど。
0198179
NGNGC++は全く齧ったことがないのですが、ちょっと調べてみます。
>>191
12bitの値を32bitの型で受けるんですか。
やってみます。
>>192
>12 ビット長の値の羅列を扱う必要があるって状況なわけね?
はい。その通りです。
ちょっと難しそうですが、例に挙げていただいた通りやってみます。
>>193
12bitしか使わなければいいっていうのは
どういうことでしょうか?
>>197
算術演算のみです。32bitで間に合いますか。
ちょっと考えてみます。
0199デフォルトの名無しさん
NGNGそれなら191も駄目ってことになるけど。
0200デフォルトの名無しさん
NGNG0201200
NGNG0202179
NGNGここにある処理と同じことがしたいです。
http://www-6.ibm.com/jp/developerworks/linux/020517/j_l-libtiff.html
基本的には、ただ配列から値を取り出せれば問題ないと思うのですが。
0203デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNGなんでやねん。
ビットフィールドと、ビット演算は違うぞ。
そもそも、ビットフィールドって互換性がぐちゃぐちゃだから、外界とのやり取りにはつかえないし。
(まあ、ビット演算の方もエンディアンの問題が歩けど。)
0208デフォルトの名無しさん
NGNGidxを取り出したい12ビット整数の配列のインデックス
として、以下の関数でデータを取り出す。
int GetInt12(unsined char* int12arr, int idx)
{
int int12;
if (idx%2) {
int12 = array[3*idx/2]<<4 + array[3*idx/2+1]>>4
} else {
int12 = array[3*idx/2+1]<<8)&0x00000f00 + array[3*idx/2+2]
}
return int12;
}
速度が気になるならマクロかinline関数にする。
0209デフォルトの名無しさん
NGNGソース見せられても困るんだけど。
そうじゃなくてさ、int12の配列に対して具体的に何がしたいのか。
indexで要素を取り出すとか、
指定範囲を取り出すとか、
指定範囲に書き込むとか、
コピーするとか、移動するとか。
そういう風に必要な処理を作って、それらを使って最終的な目的を果たせばいいでしょ。
0211179
NGNGサンプルコードまで書いて頂いて、ありがとうございます。
参考にさせて頂いてしっかり身に付けたいと思います。
>>210
はい。解決です。
長々とお騒がせしましてすみませんでした。
レスして頂いた方、ありがとうございました。
とても勉強になりました。
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNGビット演算してる最中にエンディアンではまるなんてことがあると思ってる奴は、プログラマに向かん。
エンディアンではまるのは、外部とのやり取りか、変なキャストをした時だけだろ。
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNGはぁ ?
それ以外で、エンディアンではまる例をあげてみなよ。
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNGなんだ、日本語できないクンだったのか...。
エンディアンではまる (可能性がある) のは、外部とのやり取りか、変なキャストをした時だけだろ。
0220kei
NGNG自分が作ったのは下のです
#include<stdio.h>
main()
{
int eng,math,sci,max;
printf("英語の点数--->");scanf("%d",&eng);
printf("数学の点数--->");scanf("%d",&math);
printf("理科の点数--->");scanf("%d",&sci);
if(eng>math){
if(eng>sci){
max=eng;
}
else{
max=sci;
}
}
else{
if(math>sci){
max=math;
}
else{
max=sci;
}
}
printf("最高点は%d点です\n",max);
}
でもどうやら「関数」構造でなければならないらしいのですが、その時の講義に法事の為出席できなくて関数がわかりません。
本も読んだのですがプロトタイプが必要とかそれくらいしか理解できなかったです。
基礎論なので難しい関数は使わないはずです。void return ansとか本に書いてあります。
他のスレにも書いたんですが、レスないのでお願いします。
0221デフォルトの名無しさん
NGNGうっせえ、日本語以前にC言語できないクソにタメ口たたかれる憶えはない
いつまでもてめえのスキルを当然だと思っていろヘボ
0222デフォルトの名無しさん
NGNGその程度なら特に関数はなくても困らないけど、
まぁ関数作るとしたら
3つの値を引数にとって、その中の最大値を返す関数
を作るかな。
int max(int eng, int math, int sci)
{
/* 中身は自分で考えてちょ */
return ans;
}
こういうの作って、
printf("最高点は%d点です\n",max(eng, math, sci));
こういうことする。
数学の関数と同じで、関数は引数をとって、結果として値を返す。
その値は数学と同じ様な格好で使う。
printf も scanf も main も関数だし、
それが使えてるなら特に難しいことはないと思う。
あと、main の最後では return 0; を忘れずに。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNGvoidがない処理系だろ、そんくらい嫁
0225デフォルトの名無しさん
NGNG> タメ口
彼には、あれがタメ口に聞こえるんだ...。
好意的な解釈する奴だな。(藁
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNG0229kei
NGNGせっかく教えていただいたのに答えがわかりません。関数なしのプログラムが僕の精一杯なのかも…
223さん、マルチってどういった意味でしょうか?
224さん、それはどういうことですか?
なんだか聞いてばかりでごめんなさい。お願いします。
0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG> 他のスレにも書いたんですが、レスないのでお願いします。
>>224
main() だから戻り値の型は int だろう。
>>225
8〜23行目をコピペして max → ans にして、
int ans; をつければ終わりだよ。
0233デフォルトの名無しさん
NGNG>main() だから戻り値の型は int だろう。
そうだよ。それを百も承知で国家する場合を知らんらしいな。
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNGC では main の return 0; を省略することは規格で許されていない。
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNGわかりやすい、自演ありがとう。
で、君は何に反論して欲しいんだ ? (藁
0240227
NGNG0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG0244199
NGNG>>206
互換性がぐちゃぐちゃ?12bit割り当てたつもりが実際はそれ以上割り当てられることもあるとか?
0245デフォルトの名無しさん
NGNGはぁ ? 腐るほどあるけどな。
まあ、出会ったことないなら、それに越したことはないよ。
>>244
それに加えて、MSB/LSB のどっちからビットを割り当てるとかがぜんぜん決まってないよ。
>>214 が書いてる通り、キャストや外部とのやり取りしないなら問題ないけどな。
0246199
NGNGこの場合はどちらから割り当てるかってのは関係ないと思うけど、「それに加えて」ということは244で言ったことがありえるの!?
0247199
NGNGビットパターンがどうであろうとbitfield.memberの値は12345でしょ?ということ。
0248デフォルトの名無しさん
NGNGint a = 0xFF000000;
*(char*)&a はなーんだ?
0249デフォルトの名無しさん
NGNGあんた、何の為にキャストすんの?
ある型を無理矢理、他の型に変換する為に必要だからじゃないの?
それとも、何か他に笑えるキャストがあるとでも?
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGint a=1;にしろよ。0xFF...が入らないという問題も起こりうるだろ。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNGで数パターンしかない情報が3つと、フラグが1つの情報が絶対に必要。
そうしたら、普通は1-5-5-5bitで16bit内に情報を詰めると思うんだけど?
勿論キャストなんてしないしですが、エンディアンとやらは問題になりませんか?
値セットや値を取り出すとき。<<>>
0254デフォルトの名無しさん
NGNGこれって、ソフト的なエンディアン判定に使えるんだよな。
0255デフォルトの名無しさん
NGNG最後の<<>>はなんですの?
0256デフォルトの名無しさん
NGNG[0] [1]
とデータが入っていると、
リトルエンディアンの場合
[1] << 8 + [0]
が 16 ビット値になる。
ビッグエンディアンの場合
[0] << 8 + [1]
が 16 ビット値になる。
0257デフォルトの名無しさん
NGNGならない
が、通常、そのデータを外部に保存する必要がある為
その時にエンディアンが問題となる
>>255
シフトでしょ
0258デフォルトの名無しさん
NGNGそれだと、セット時に値を壊さないか?
0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNGどの値が壊れるの?
0261デフォルトの名無しさん
NGNGまったくもって訳わからんよ?
何故、値を保持する目的のデータを外部に
ま・た・保持しなおすの?
よっぽど外部以外の事にしたくなんだね。
0262デフォルトの名無しさん
NGNGどう言う値が入ると便利だと思ってるの?
0263デフォルトの名無しさん
NGNG上位nビットをクリアするときとか。
nが変数のとき
x <<>> = n; で上位 n bitクリアできる。
ようするに
x <<= n;
x >>=n;
エンディアンのことは何にも考えてないので突っ込まないでね。
0264デフォルトの名無しさん
NGNG>>253が言ってる事は
typedef short i16 ; /* short は16bit */
typedef struct { char flag ; char data[3] ; } info ;
これを、キャストを使わずにシフトとビット演算のみで
infoの値をi16にセットしたりi16からinfoの値を取り出す事で
エンディアンとは全く関係ない
0265デフォルトの名無しさん
NGNG要するにその構造体をパックしたいの?
0266デフォルトの名無しさん
NGNG&= 使え。
0267デフォルトの名無しさん
NGNG関係あるのはエンディアンでは無く算術シフトやね
0269デフォルトの名無しさん
NGNGで、リトルエンディアンとビッグエンディアンで
同じコードで問題無いの?
どっちにシフトするの?
って話じゃないの?
0270デフォルトの名無しさん
NGNGあ、俺は261じゃないよ。ずっと見ているだけだった。
もしそうならエンディアンは関係ないなぁ。
関係あるのはファイルに書き出すときと読み出すときだな。
0271デフォルトの名無しさん
NGNGint i = 257 >> 1 ;
この結果がエンディアンで変わるとでも?
0272デフォルトの名無しさん
NGNGメモリでもエンディアンは問題になるが?
0273デフォルトの名無しさん
NGNGファイルからの読み出し時と書き出し時にバイトオーダーを統一する処理をするだろ?
0274デフォルトの名無しさん
NGNGはぁ?
Bit処理って書いてあるだろ?
0275デフォルトの名無しさん
NGNGこうだ!
x &= ~0 >> n;
俺って頭いい〜。
0277デフォルトの名無しさん
NGNG0278273
NGNG0279デフォルトの名無しさん
NGNGx &= ~0u >> n;
符号ありで符号が残されるかどうかは未定義だけど、
符号なしなら符号ビットは残されない...よね?
0280デフォルトの名無しさん
NGNGうん
0281デフォルトの名無しさん
NGNGxを符号なしにキャストすれば
~0uも符号無しの演算になると思う…
0282デフォルトの名無しさん
NGNGbit = 1;//ビットのつもり
bit << 6;//6ビット目
valure | bit;//セット
見たくセットして問題ないの?
例えば、マスク処理とかで
valure & 0xf0;//上位ビットが欲しい
なんて場合でも?
0283281
NGNG0284デフォルトの名無しさん
NGNGそういうのは問題ない。
0285デフォルトの名無しさん
NGNG>bit << 6; /* 6ビット目と言う表現は別にして */
問題ない
ただし、ファイルから読み込む時、ファイルに吐き出す時は要注意
0286デフォルトの名無しさん
NGNGキャストがなければ大丈夫。
intをキャストでcharに分割したときとか、その逆とかで問題が起きる。
0287デフォルトの名無しさん
NGNG0288285
NGNGは、この場合、全く関係無かったから、無視してちょ
0289デフォルトの名無しさん
NGNG対象のエンディアンが変われば、マスクのエンディアンだってかわるっしょ。
0290デフォルトの名無しさん
NGNGだから
valure & 0xf0; /* 上位はエンディアンに関係なく上位だ */
エンディアンを考慮しなければならない時は
(異なるエンディアンの)ファイルをバイト単位で読み込んで
そのまま、何もせずに、マスク処理をほどこす時
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG突っ込む相手を間違えてるぞ。
0294デフォルトの名無しさん
NGNG0295教えてください
NGNG#include <stdio.h>
#include <string.h>
#include <conio.h>
char *ary[1000];
void test();
void main()
{
test();
printf("\n\n");
}
void test() {
char c;
int i=0;
do{
printf("\nEnter string: ");
char s[256];
ary[i] = gets( s );
printf("You typed: %s", ary[i] );
i++;
printf("\n\t****Press any key to continue or quit to press (q)**** ");
c = getch();
}while( c != 'q' );
printf("\nHere:\n");
for( int j=0; j < i; j++ )
printf("\n%s", ary[j] );
}
0296295
NGNG本来なら、
dog
cat
bird
となるはずですが、どなたか原因が分る方教えてください。
Enter string: dog
You typed: dog
****Press any key to continue or quit to press (q)****
Enter string: cat
You typed: cat
****Press any key to continue or quit to press (q)****
Enter string: bird
You typed: bird
****Press any key to continue or quit to press (q)****
Here:
bird
bird
bird
Press any key to continue
0297295
NGNGdog
cat
bird
となるはずなのに、
bird
bird
bird
となってしまいます。なぜでしょうか?どなたか原因が分りますか?
0299デフォルトの名無しさん
NGNGポインタを理解してください。
0300デフォルトの名無しさん
NGNGs[256]はループするたびに書き換わる。
aryにはその領域へのポインタしか入れないんだから、常に最後に入力したものが表示されて当然。
03012
NGNGありがとうございます。早速
char s[256];
をループの前、にもっていきましたが、結果はおなじでした。
そのあと、グローバル・バリアブルにしましたが、やはり、
結果は同じでした。
0302297
NGNG0303デフォルトの名無しさん
NGNGなぜそんな事する?
0304297
NGNGポインタに慣れていないので、今の自分にはそれが精一杯です。
しかし、charのポインタのアレーを使うことが条件なのです。
0306297
NGNG要するに配列のインデックスをインクリメントしても、全てのインデックス
を指してしまうのでしょうか? インデックスごとに違うものをさすことは
不可能なのでしょうか?
0307300
NGNGsを二次元配列にするなどして、ループするごとに違う領域に書き込むようにすればよい。
今のままでは大勢で一人を指さしているようなもの。
0308デフォルトの名無しさん
NGNGを
ary[i] = strdup(gets( s ));
にでもしろ。
>しかし、charのポインタのアレーを使うことが条件なのです。
宿題なら余所いけ。
0309297
NGNGchar *c[] = {"dog", "cat", "bird" };
for( int i=0; i < 3; i++ )
printf("%s", c[i] );
このようにテストした時は、ちゃんと大丈夫だったのに。
どうすれば、キーボードのインプットをそれぞれのインデックスに
アサインできるのでしょうか?
0310297
NGNGありがとうございます。strdup というファンクションは私の5冊の本の
いずれにもでてないので、知りませんでした。感謝します。
>>307
ありがとうございます。2D配列を使いたいのですが、ポインタの練習
なので、それはだめとのことです。Javaのように簡単ではないですね。
ことでそ。
0311300
NGNGそれと、よく見たらs[]ってブロックを抜けているじゃない・・・
たまたまデータが消えずに残っていたんだな。
0312デフォルトの名無しさん
NGNG0313300
NGNG自動変数が消滅するのは。
0314デフォルトの名無しさん
NGNGブロックでしょ、
たまたま、毎回同じ所に確保されてるっだけかと。
0316300
NGNGブロック(ここではdoの)を抜けた後にブロック内で定義した自動変数sを、ブロックを抜けたあとにポインタを介してアクセスしてもいいのかどうかと・・・・
勘違いしていることがあるかもしれないので自信ない。
0317デフォルトの名無しさん
NGNG0318300
NGNG>>314さんはブロックを抜ければその領域は不安定なものになると言っているけど。そうなるのは関数を抜けたあとかもしれないので。
0319デフォルトの名無しさん
NGNG延髄反射で質問を返してきまふ。
0320デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNGsを2次元にしてary[i]=s[i];とするかmallocしかないと思うのだがどうか?
dog,cat,birdしか入力されないとわかってるならほかにもあるが。
0324デフォルトの名無しさん
NGNGANSI Cにstrdupはないから
0326デフォルトの名無しさん
NGNG>>299-324は釣られてしまった、と。
阿呆な回答なんかしてるんじゃね、と。
>>295
宿題丸投げなら宿題スレへ行け、と。
C++の質問したいならC++スレで叩かれろ、と。
Cで書きたいならはじめからファイル名が間違っているぞ、と。
0327デフォルトの名無しさん
NGNGdirname()関数の動作が異なってしまいます。
cc -o test1 -L/oracle/app/oracle/product/9.2.0/lib32/ -lclntsh test1.c
通常は、dirname()の引数で指定してパス名文字列が書き換わることはないですが、
上のコマンドラインでclntshをリンクした場合、dirname()の引数に指定したパス名
文字列からファイル名が削除されてしまいます。
(dirname()のリターン値が示す文字列と同じになる)
何かご存知ないですか?
0328デフォルトの名無しさん
NGNG>何かご存知ないですか?
知ってる。しかしスレ違いなので書かない。
0329327
NGNGHP板に逝くべきでしょうか?
0330デフォルトの名無しさん
NGNG米オークションサイトのeBayのツールを日本語化しています。
Resource Hackerで日本語に置き換えているのですが文字化けが発生してしまいます。
日本語化のサイトを見て回ったのですがこのソフトのタイプの対応例が無く、
どのリソースの始めの部分にも
STRINGTABLE
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
が書いてあったので検索しました所、
かろうじて英語で表示しろという命令らしい?事がわかりました。
fontの指定するリソースが無いので上記の文章で
英語として表示させている?と思うのですが、
これをどのように置き換えれば日本語が表示されますでしょうか?
どなたかお教えいただければ幸いです。
0331デフォルトの名無しさん
NGNG>>1
スレ違い
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG自分のことか?w
0336デフォルトの名無しさん
NGNG次に何をしようか悩んでます。
APIの使い方を覚える?
それとも、SDKでも覚えてWinアプリ作成?
0337デフォルトの名無しさん
NGNGスレ違い
>>1読め
0338デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/tech/#4
0339デフォルトの名無しさん
NGNGそれはネタか?
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGSDKに1票
0344デフォルトの名無しさん
NGNGC はやめて、Pascal 使え。
0345デフォルトの名無しさん
NGNGわざと吊られたんだろ?そうだよな?そうだと言ってくれー!
0346デフォルトの名無しさん
NGNGこれです。
#ifdef UNICODE
typedef WCHAR TCHAR , *PTCHAR ;
#else
typedef char TCHAR , *PTCHAR ;
#endif
charやWCHARでなくてTCHARを使っていれば、文字コードが
ワイドキャラクタ環境でもマルチバイト環境でもソースの変更
の必要性がなくなる。
はなっからワイドキャラクタ(=UNICODE)を想定してなければ
charで十分。
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNGマニュアルに書いてあるだろ?
0349デフォルトの名無しさん
NGNGC++ なら工夫すれば作れるんだけどなぁ。
ローカルクラスの static メンバ関数にすれば。
0350デフォルトの名無しさん
NGNGコンパイルのみでリンクしないと書いてあるのですが、
リンクしないという意味がよくわからなくて。。。
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNGオプション -o はなんですか?これがヒント。
0353デフォルトの名無しさん
NGNGオブジェクトファイルをつくって終わり?
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNGとりあえず本でも買って読めよ、
金が無いなら図書館に行けばあるだろう。
大抵の本に書いてある。
こんな事くらいで聞いてるくらいじゃ、この先ずっと聞きっぱなしか?
0356デフォルトの名無しさん
NGNGここは初心者質問スレじゃねーんだよ、かえれ!
0357デフォルトの名無しさん
NGNGa.c -> a.o
b.c -> b.o
a.o+b.o+etc -> a.out
上2行がコンパイルで最下行がリンクです。
0358デフォルトの名無しさん
NGNGなぜこんなオプションがあるかというと。
たとえばオブジェクトライブラリを作るときに便利だからです。
0360343
NGNGいえ、わざとではありません。
釣られてもないです
0361346
NGNGwindef.hかな?
0362デフォルトの名無しさん
NGNGtchar.h
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNGはぁ ? もうちょっと具体的に書いてくれると、もっと笑えると思う。
0365デフォルトの名無しさん
NGNGvoid f()
{
struct Inner {
static void foo() {
std::cout << "foo()" << std::endl;
}
};
Inner::foo();
}
0366デフォルトの名無しさん
NGNGスレタイみれ。
0367デフォルトの名無しさん
NGNGそんなことは分かってるし。
0368デフォルトの名無しさん
NGNGそんなことは分かってるし。
0369デフォルトの名無しさん
NGNG"C" はなんで "C言語" と言うのでしょうか!?
Fortran COBOL Pascal BASIC
"言語" ってつけるとなんか変に聞こえるんだけど。
0370デフォルトの名無しさん
NGNG以上
0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGえっち
0374デフォルトの名無しさん
NGNG漏れもCダケで通じるときはCだぞ。
逆に他の言語も後ろに言語って付けることがないとは言えないな〜。
0375369
NGNGすぃ〜
ですか。よかった。なんか周りが "しーげんご" という人ばっかりで。
( "しー" じゃないですよね… )
0376デフォルトの名無しさん
NGNGもう少し C 言語の歴史を勉強シレ!
0377デフォルトの名無しさん
NGNGC だけだと通じないことが多いだろうし。
0379よし@C++
NGNGまたは平均点が60点以上であれば“合格”と表示するプログラムを、関数構造を使って作成せよ。
という課題がでたんですが、正直全然わかりません。基礎論の授業の前期テストなんでホントは簡単なはずなんですが…
勉強がたりなかったようです(:_;) どなたか教えていただけませんか?
0380デフォルトの名無しさん
NGNGfunc().a;
こういう風にできるらしい
びくーりしたーよ
0381デフォルトの名無しさん
NGNG(・∀・)C/C++の宿題やらせてください。ver10
http://pc2.2ch.net/test/read.cgi/tech/1057070174/
0382デフォルトの名無しさん
NGNG名前から見ると C++ の質問か?
C++ はスレ違いだぞ。
まぁ、確かにそれは C で十分なわけだが。
そういや、何か上のほうでもちょっと違うけど似たような質問があったなぁ。
点数を入力する関数、
どれか1つでもある点数以上であれば真を、さもなくば偽を返す関数、
平均点を返す関数、
の3つを作ればそれでええんでないかな(main 除く)。
>>380
C++ なら普通に使う。
まぁ、最初は違和感があるやもしれん。
俺もそうだった。
0383デフォルトの名無しさん
NGNGこれは何を表してるのでしょうか?
0384よし@C++
NGNGスレ違い申し訳ありません。失礼しました。
CとC++の違いも分からないような素人なので。以後気をつけます。
0385デフォルトの名無しさん
NGNG点が見えずらいかもしれんが、
こんな感じ
struct AAA func();
で、構造体AAAがfuncから帰ってきたから、AAAのメンバにアクセスすると
C++だけどね
0386デフォルトの名無しさん
NGNG戻り値が構造体なら
そういう風に使うこともあるってことさ。
0387デフォルトの名無しさん
NGNGこうやって戻り値を間接参照するってのもあまりやらないな。
0388デフォルトの名無しさん
NGNGまるで関数に代入しているよう。
0389デフォルトの名無しさん
NGNGfunc()->foo(); ってこともするけどな。
0390デフォルトの名無しさん
NGNGスレち(ry
0391デフォルトの名無しさん
NGNG違いを見分けられる男なんですね。
0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNGやっぱSDK!
0394デフォルトの名無しさん
NGNG#if !definedって
何が違うんでしょうか?
親切な方教えていただければ幸いです。
0395デフォルトの名無しさん
NGNGfunc()->a
の方が多いかな?
でも、
func().a
も小さい構造体や共用体を返すときには使うよ。
0396デフォルトの名無しさん
NGNG普通Windowsアプリを作るときはどちらを使いますか?
言語はどれを使ったらいいんですか?
0397デフォルトの名無しさん
NGNG歴史の違いもあるけど、
#if defined(MACRO1) && defined(MACRO2)
って使い方ができるようになった。
#ifdef/#ifndef
だけだとこういうことはできない。
0398デフォルトの名無しさん
NGNGスレ違い。
0399デフォルトの名無しさん
NGNG同じじゃないの?
0400399
NGNGそうだったのか・・・ Σ(゚Д゚;
漏れの勉強不足でした・・・
0401デフォルトの名無しさん
NGNG&&なら
#ifdef MACRO1
#ifdef MACRO2
〜〜〜
#endif
#endif
これでできると思うけど。
0402_
NGNG0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNGそれを表示したいんですが、どうやって乱数を
発生させたらいいですか?
0406デフォルトの名無しさん
NGNGこんな所で聞くより、googleで検索すれば瞬時に分かるんだが。
0407デフォルトの名無しさん
NGNGrand()
0408デフォルトの名無しさん
NGNG#elif の場合は、
#elifdef, #elifndef ってのがないから、
defined ってのがどうしても必要になる。
0409デフォルトの名無しさん
NGNGprintf("%d",a);
0410デフォルトの名無しさん
NGNG( ´_ゝ`)プッ
0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNGsrand()もコールしる!
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNGここが2chだと言う事を忘れるな。
天才→天災
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG問題が山積ということです。
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNGとりあえず、
#ifdef MACRO1
#define MACRO1OR2
#endif
#ifdef MACRO2
#define MACRO1OR2
#endif
#ifdef MACRO1OR2
〜〜〜
#endif
ぐらいか。
>>408
ネストすればいいだけだろ。
#ifdef xxx
〜〜〜
#else
#ifdef yyy
〜〜〜
#else
〜〜〜
#endif
#endif
>>413-414
下らん餌に食いつくなよ。
0419デフォルトの名無しさん
NGNGいるのですが、どの参考書がいいでしょうか?
この参考書を使っているがいいというのがあれば教えてください。
0420デフォルトの名無しさん
NGNGWinMainを記述してないと言う事。ウインドウズアプリではWinMainが必要。
逆にコンソールアプリではMainが必要。
http://pc2.2ch.net/test/read.cgi/tech/1056280510/l50
で聞くといいよ。
0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNG足りないところを補う本。
0423デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNGそんなコンパイラは捨てろ。
普通は、リンクエラーだ。
0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNG現在コンパイラはccを使ってます。
一般的にccとgccってどっちが早いんでしょう?
どっちのほうが使ってる人多いんでしょうか?
ネットで検索かけてもよくわかりませんでしたので
どなたか教えてください
0428デフォルトの名無しさん
NGNGSolaris だったら Sun C Compiler だろうし、
他のハード/OS なら gcc の別名かもしれない。
0429デフォルトの名無しさん
NGNGccはgccを呼んでいるから、直接gccを呼んだほうが早いんちゃう?
0430479
NGNGならいっしょかな。
0432427
NGNGこれからはgccを使っていこうと思います。
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNG質問が不正確だぞ
プログラミングでは「早い」と「速い」を使い分けろ
それから翻訳速度と実行速度のどっちを問うているのかも
いいか、『ものすごく』重要だ
おまえがそもそもプログラミングを学ぶこと自体の意義にかかわることだ
人が多いかどうかはゲスな問題だ
おまえは世の中の何の役に立ちたいんだ?
もしかして、究極に残酷な問題が根底にあるかも知れんぞ
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNGツコーミは禁止なんですか?
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNGだったんですか?
int型のポインタ渡そうとしたら起こられましたけど
0444デフォルトの名無しさん
NGNGスレ違い。
名前からしてポインタ
0445デフォルトの名無しさん
NGNGとみた
0446デフォルトの名無しさん
NGNGwindowsスレのほうですか?
お邪魔しました
0447デフォルトの名無しさん
NGNGmalloc で 1420 バイトまでしか確保できないんです。
それ以上確保しようとすると Segmentation fault します。
(C++ の) new char[] でも同様で例外さえ投げずにコア吐きます。
そこまでにヒープを明示的に使っている個所はなく、
メモリが足りないとは思えません。また malloc やメモリアロケータを
置き換えたりもしていません。
何故こんな事になってしまっているのでしょうか?
0448444
NGNG0449デフォルトの名無しさん
NGNGmallocを呼ぶとセグメンテーション違反?
信じられないな・・・
0450447
NGNG80486でメモリは1Mです。
0451447
NGNGmalloc(1420) の直後に
malloc(1) としても駄目です。
はじめから
malloc(1421) でも駄目です。
挙動としてはメモリ不足にも見えなくはないんですが
それなら 0 が返ってきますよね?
0452デフォルトの名無しさん
NGNGmalloc(1421)とだけ書いたコードでもそうなるの?
0454デフォルトの名無しさん
NGNG実際にエラーを起こす、出来るだけ簡単なコードを晒してみそ
0456デフォルトの名無しさん
NGNGint main()
{
malloc(1421);
return 0;
}
これだけでセグメンテーション違反・・・・やっぱり信じられない。
0457デフォルトの名無しさん
NGNGどっかでメモリをおかしな状況にしてるとか?
0458デフォルトの名無しさん
NGNGちゃうやろ
そこまでにとかいているから、他の処理部分もあるんやろ?
でなきゃやってられねーぜアニキ
0460デフォルトの名無しさん
NGNGレッツ再起動
0461447
NGNG晒そうと思って簡単なコードを書こうと思い、 >>456 さんの書いたコードと同じ物で試したら大丈夫でした。
というかバリバリ平気で 10メガくらい普通に確保できてるみたいです。
でよく考えたら stdlib.h インクルードして中田のですが、
恐ろしいことに windows.h に宣言が入っているみたい…
大丈夫だった時はライブラリを指定しなかったのですが、
これはリンクしてるライブラリを疑うべき状況でしょうか?
0462デフォルトの名無しさん
NGNGNULLが返る前に。
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNGなら確保した領域の扱い方に問題がある可能性が高い。
きっとどこかでうっかりミスしていると思うよ。
0465デフォルトの名無しさん
NGNG君の全く別の部分のコードを疑うべき!!
多分変なところのメモリを書き換えちゃってる。
0466デフォルトの名無しさん
NGNGgccなら↓にチャレンジ♪
#include <stdlib.h>
int main()
{
int i=1421;
char buf[i];
return 0;
}
0467デフォルトの名無しさん
NGNG0468447
NGNGまだヒープから確保したものを使ってないんです。
そろそろスレ変えるべきかもと思いました。
こちらの説明にもだいぶ Windows SDK 色がでてきたので…。
>>456 さんの指摘する通りのメモリ破壊の可能性を探ってみて
その可能性もないと判断できたら Windows API系のスレに再度質問しようと思います。
みなさんありがとうございました。
0469デフォルトの名無しさん
NGNGWinのAPIじゃなくてgccのスレの方が良いと思うが…
0470デフォルトの名無しさん
NGNGこの場合、APIは関係ない
0471447
NGNGそうみたい…。
問題があると思っていたDIB取り扱い部分を切り離して
メッセージループ付近で
単純に1メガ確保→直後に解放
のコードを書いただけで駄目だったっぽいです…。
gcc のライブラリってヒープ足りなくなったらって自動的に OS から追加確保してくれないんですっけ?
0472デフォルトの名無しさん
NGNG自動的にヒープを追加してくれる OS の存在を、私は知らない。
0473472
NGNG0474デフォルトの名無しさん
NGNGCってまだ現役なんだなあ...とこのスレ見て感動
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNGこれはいったいどんな役割があるんですか?
0477デフォルトの名無しさん
NGNG具体例を挙げてみてくれ。
0478476
NGNG{
while(n-- >0){
switch(**x){
case '0':
sscanf(*x+1, "%o", k);
break;
case 'x':
sscanf(*x+1, "%x", k);
default:
sscanf(*x, "%d", k);
break;
}
x++;
k++;
}
}
xはmainで読み込んだ文字列。
nは読み込んだ文字列の数です。
文字列の先頭の文字によって読み込む進数を変えるプログラムです。
0479476
NGNGしかもsage忘れた(;´Д`)
0480デフォルトの名無しさん
NGNG関数の最後ではないではないか。
ループをひとつ回る毎にxとkを進めてるだけで、
つまりは次の文字列(x)とその文字列の数(n)を処理するようにしてるってことだ。
0481デフォルトの名無しさん
NGNGループカウンタを用意してやった方が分かりやすいと思うがなぁ。
void sample(char **x, int *k, int n)
{
int i;
for(i = 0; i < n; ++i) {
switch(x[i][0]) {
case '0':
sscanf(&x[i][1], "%o", &k[i]);
break;
case 'x':
sscanf(&x[i][1], "%x", &k[i]);
break;
default:
sscanf(x[i], "%d", &k[i]);
break;
}
}
}
0482デフォルトの名無しさん
NGNG{
int i;
for(i = 0; i < n; ++i) {
switch(x[i][0]) {
case 'x':
k[i] = strtol(&x[i][1], NULL, 16);
break;
default:
k[i] = strtol(x[i], NULL, 0);
break;
}
}
}
0483476
NGNGいろいろなアドバイス、どうもありがとうございましった!!
0484デフォルトの名無しさん
NGNGこれってwhile(n--){でいいよね。
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNGなんで?nの初期値が負だった場合に違いが出るから?
0488487
NGNG「読み込んだ文字列の数」なのに負の数を渡す方が悪いと思うけど・・・
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNG例えば君が仕事として関数を作り、それをDLLとして提供したとしよう。
たまたま実行中に引き数が負になる状況が発生したら、
そんな暢気なことは言えなくなるのだよ。
0491デフォルトの名無しさん
NGNG{
printf("あれれ・・・止まんないよー\n");
}
0492デフォルトの名無しさん
NGNGif(n>0)
while(n--){
0493デフォルトの名無しさん
NGNGそんな暢気なことは言えなくなるのだよ。
0494デフォルトの名無しさん
NGNG>>493 みたいなこという奴はおこちゃま。
0495デフォルトの名無しさん
NGNG%oと%xに対応するのはunsigned int *
0496デフォルトの名無しさん
NGNG自分が増やしたコード量を認識してないらしいな
なんせ「常識」つーくらいの常習者
STOPダイアログやSegmentation Faultとの重複コード書いて何やってんの?
0497デフォルトの名無しさん
NGNG> STOPダイアログやSegmentation Faultとの重複コード書いて何やってんの?
日本語に訳してくれ。
0498493
NGNG安全を云々言うならunsigned intにするが。
0499デフォルトの名無しさん
NGNGだいいち責任範囲というものがまるでわかってない
他社製品のバグが出たときの対応まで保証してられるか
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNGこれがOKで、
int i[][]={
{0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8},
{10,11,12,13,14,15,16,17,18}
};
これはダメ、、どうして?
0505デフォルトの名無しさん
NGNG配列の要素の大きさが分からないから。
int i[][N]ならOK(Nは定数)
0506デフォルトの名無しさん
NGNG仕様です。
0507デフォルトの名無しさん
NGNGmalloc()で割り当てられた(NULLでない)ポインタpを
remalloc()に渡し、メモリの再割り当てに失敗した(NULLが返ってきた)時は
元の領域は、解放されるんでしょうか?
それとも、領域は残っているのでしょうか?
また、fopen()で開いたストリームの(NULLでない)ポインタfpを
freopen()に渡し、ストリームを開くのに失敗した(NULLが返ってきた)時は
元のストリームは、閉じているのでしょうか?
それとも、開いたままなのでしょうか?
自分で同様の関数を書けば関係ないと言われそうですが
規格上で、どうなってるのかを知りたいので宜しくお願いします
0508507 訂正
NGNG○ realloc()に渡し、メモリの再割り当てに失敗した(NULLが返ってきた)時は
0509デフォルトの名無しさん
NGNG規格博士じゃないが。
s/remalloc/realloc/だよな? 元の領域は解放されずに残るよ。
だからrealloc前のポインタは保存しておかないとfreeできなくてリークしちゃう。
freopenは、成功しようが失敗しようが元のファイルはfcloseされる。
0510デフォルトの名無しさん
NGNGサンクスコ
これで、安心して眠れます
0511デフォルトの名無しさん
NGNGいやあ、昔々のC言語だと、reallocに失敗するとメモリが
解放されちまったのよ。そんなバカなと思うだろうが、
実際バカなので、今じゃ直ってるけどな。
ANSI-C以前の暗黒時代の話なので、今時そんな実装を気に
する必要はないが。
0512デフォルトの名無しさん
NGNGある固定長のデータを構造体にコピーするときアライン以外に気をつけることはありますでしょうか?
char []="0123456789" を
struct hoge{
char a[4];
char b[3];
char c[3];
};
にコピーして要素ごとに処理しやすくしたいんです。
当然、各要素の最後に"\0"がないので取り出した要素の使い方にも注意が必要ではあるのですが。
0513デフォルトの名無しさん
NGNGchar hogehoge[]="0123456789";
としてください。失礼。あ、"\0"が・・・うーむ・・・。
0514デフォルトの名無しさん
NGNGやっぱウニオンかな
union hoge{
char hogehoge[10];
struct{
char a[4];
char b[3];
char c[3];
};
} hage={"1234567890"};
int main(){
fwrite(hage.a,1,4,stdout);
return 0;
}
0515山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0516デフォルトの名無しさん
NGNGみなさんが gets ではなく fgets を使えと おっしゃるのは、getsにバッファ長の引数が無く、
バッファオーバーランの危険があるという理解でよいでしょうか?
0517デフォルトの名無しさん
NGNG>>1のC FAQ 日本語訳を見ての発言でしょうか?
0518デフォルトの名無しさん
NGNGprintf("%.4s\n", hage.a);
或いは
printf("%.*s\n", sizeof(hage.a), hage.a);
って、書いてから気付いたけどstructに名前がついてないな。
struct {...} s;
として、
hage.s.a
か。
>>516
そうです。
0519デフォルトの名無しさん
NGNGhage.a にアクセスしたじてんで、hage.a は[1][2][3][4][\0]になるのでしょうか?
0520デフォルトの名無しさん
NGNGんなわきゃーない。
0521デフォルトの名無しさん
NGNGああ、だからsizeof(hage.a)でブッコ抜くんすね。
"\0"がないから、char *tmp=hage.a; とかってすると、hage.bやらhage.c やらも引っ付いてくるのが
気持ち悪かったのでつ。
0522デフォルトの名無しさん
NGNGfor(i=0;i<10;i++) ;
無限ループになります。なんで?
コンパイラのバグですか?
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNGそれはコンパイラのバグ
そういやIntelのコンパイラで
short i,j;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
printf("%d%d\n, i,j );
}
}
とやると、外側のループが1回しか実行されないバグがあったな
0525デフォルトの名無しさん
NGNGshortなんか使うなという教え
0526デフォルトの名無しさん
NGNG参考までにコンパイラと OS を教えちくり。
0527デフォルトの名無しさん
NGNGMini-C,Win98SEです
0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNGとりあえず Mini-C だと空ループは無限ループになる...と。 、、φ(.. ) メモメモ
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNGfclose関数の戻り値をチェックをしていなかったりしています。なぜか自分も自然とそのように
プログラミングしてしまっていますが、このようにエラーのチェックをする時としない時があるのですが、
何を基準にしてする時としない時に分けられるのでしょうか?C言語に特化しておらず、抽象的な話かも
しれませんが、意見を聞きたいのでよろしくお願いします。
0532デフォルトの名無しさん
NGNGfclose()失敗したって何もフォロー出来ないからね…
0533デフォルトの名無しさん
NGNG戻り値を特に使用しない場合は受け取らない。
0534デフォルトの名無しさん
NGNGfopen(file, "r");
のときは
fclose()
の戻り値は無視していい。
しかし、
fopen(file, "w");
のときの
fclose()
の戻り値はチェックしてフォローする必要がある。
>>532
エラーメッセージくらい出さないのか?
0535デフォルトの名無しさん
NGNGどういう時に失敗するの?
つーか、その前に、読み書きで失敗しない?
0536デフォルトの名無しさん
NGNG/* ディレクトリエントリの読み出し */
FILE *fp = fopen("foo", "w");
char buf[200];
/* ここも当然、読むだけ */
fgets(buf, sizeof(buf), fp);
/* ここでは読みこみも書き出しも発生しないので通常、エラーになり得ない */
fclose(fp);
/* ディレクトリエントリの作成、当然ファイルの実体はない */
FILE *fp = fopen("foo", "w");
/* バッファリングされるのでここでは書き出されない */
fprintf(fp, "bar\n");
/* ここでフラッシュされるので、書き出しが行なわれる */
fclose(fp);
というわけで、ディスクフルのときにライト時のfclose()でエラーが発生する。
0537デフォルトの名無しさん
NGNGfflush(3)
close(2)
0538531
NGNGエラーチェックは当然だと思うのですが、あたりまえのように
使っていたりするstrcpy関数等も必ずチェックしなければいけないと
思います。確かに戻り値を拾ってきてもエラー文出すぐらいしか
できませんが…。経験で知れということなのでしょうか。
0539デフォルトの名無しさん
NGNGstrcpy()はエラーを返さない。
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNGそれって、オープンした時にエラーが出るでしょう?
>>537
そりゃ、不正なポインタを渡せばエラーが出るのは当然で
そんなプログラム書く香具師の方が悪いと思うけど?
0542デフォルトの名無しさん
NGNG他のプログラムから削除されたりとか、
ディスクをいきなり取り出したりとか、
ディスクがいかれたとか、
まぁ、いろいろありそうやね。
特にゲーム機のメモリーカードとかだと
そういうことに気をもむ必要はありそうやね。
0543531
NGNG0544デフォルトの名無しさん
NGNGメモリーカードか…
それは、考えた事なかったな…
0545デフォルトの名無しさん
NGNGシステムコールとか使うんじゃないの?
0546542
NGNG0547デフォルトの名無しさん
NGNGstrcmpはエラーが発生しない(errnoにだってなにもセットしないよね?)
しかしあれは戻り値を見ないと何も意味がない・・・
0548デフォルトの名無しさん
NGNGまぁ、何を使うかは別としてやね。
0549535
NGNG稼動中のディスクを抜き差しする香具師の事も考える必要はないと思うけど
(ディスクが壊れるのは(特殊なプログラムを除いて)論外)
確かに(ゲーム機に限らず)メモリーカードのように
動いてるのが見えないものの抜き差しは考えた方が良いかも知れないですね…
0550デフォルトの名無しさん
NGNG香具師が集まるスレはここですか?
0551デフォルトの名無しさん
NGNG違います
0552デフォルトの名無しさん
NGNG>基本的に他のプログラムに削除されるなんて事は考える必要ないと思うし
あ〜あ。
ついでに言えば、ディスクフルになることも考慮しないのかな?
0553デフォルトの名無しさん
NGNGそれは絶対に他の何処かでエラーが出るでしょう
0554デフォルトの名無しさん
NGNG書き込み時にチェックしないの?(^_^;)
0555553
NGNG0556553
NGNGFILE *fp = fopen( "xx", "w" ) ; /* 開く */
fwrite ( buf, 1, 8192, fp ) ; /* バッファに溜まる */
fclose ( fp ) ; /* ディスクが一杯 */
0557デフォルトの名無しさん
NGNGいつもバッファリング無しにしているから
0558デフォルトの名無しさん
NGNG俺は必ずfflush()してるから失念してた
0559557
NGNG0560デフォルトの名無しさん
NGNGフロッピーなんて、たった1.4MBしか使えないんだからすぐ一杯になるよ。
0561デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNGNULLが返ってくると思うんだけど、
そのまま、fgets()やfprintf()にNULLを渡して大丈夫なの?
0564デフォルトの名無しさん
NGNGディスクフルはあまり考えんでもいい気もする。
0565デフォルトの名無しさん
NGNGゲーム機じゃなくて、フラッシュメモリとかを考えようよ
0566デフォルトの名無しさん
NGNG書き込む前に空き容量を調べるんじゃないの?
あれこそ他から書き込まれるおそれはないし。
0567デフォルトの名無しさん
NGNGCに空き容量調べる関数なんて無いし
0568566
NGNG0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNGんじゃ、質問。
fopen()で得たポインタの実体がmalloc()で確保されてる場合
fclose()に失敗したら、その実体はfree()されるの?それとも、リークするの?
0572デフォルトの名無しさん
NGNG環境変数MEMLEAK_JOTOを検出した場合はリークする。
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG何その変数
0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNGmallocで確保すると決められてはいない以上、どうなるかはライブラリのつくりに依存するんじゃない?
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNGまぁ、malloc()とは限らないけど、
基本的には、何かしらの方法で容量を確保する(されてる)訳で、
それを再利用出来るのだろうか、と言う事
それとも、どうせ僅かな容量なのだから、
そんな細かい事は気にするなって事なのだろうか…?
0579デフォルトの名無しさん
NGNG今はどうなってるんだろうね。
0580デフォルトの名無しさん
NGNGint
って話じゃなくて、何処から、何処までが処理系で
何処から、ユーザが使用して良いかって事?
0581デフォルトの名無しさん
NGNG様々な要因でfcloseに失敗してもメモリーの解放はできると思うから、しなかったらライブラリのバグじゃねーか?
0582デフォルトの名無しさん
NGNGerrno の取る値がマクロか何かでよく定義されてあるけど、
それに互換性はあるのかってこと、と言ってもいいかもしれん。
0583デフォルトの名無しさん
NGNGでも、1度 fclose() に失敗しても、
もう1回やれば成功しない保証は無いと考えれば、
解放する方が、バグって考え方もあるよね
0584デフォルトの名無しさん
NGNG複数回クローズを試みるのか!
それは考えなかった!
0585デフォルトの名無しさん
NGNG互換性が無いから、値を #define してるのだと思われ
ちなみに、Cで標準に定義されてるのは
EDOM EILSEQ ERANGE
の三つだけ…
つーか、これ、1つも使った事ないし…
0586デフォルトの名無しさん
NGNG>>583
http://www.bohyoh.com/CandCPP/C/Library/fclose.html
無条件に解放しそう・・・
0587デフォルトの名無しさん
NGNGあれの 下から 2 行目くらいの free((void*)(up + 1)); って何?
俺にはどう見ても sbrk から返されて s.ptr が不定な状態のチャンクを
解放しに行ってるようにしかみえないんだけど、何がしたいの?
0588デフォルトの名無しさん
NGNGfreopen()の説明なんか見ると、
失敗は無視するって書いてあるから、
fclose()も同様に、失敗は無視して解放するのかな…
と言う事は、1度fclose()に失敗したストリームに
2度目のfclose()は無いのだろうか…
0589デフォルトの名無しさん
NGNGソースを見てみないと分からないけど、俺には
>free((void*)(up + 1));
が、何故キャストしてるのかの方が不思議だ
もしかして、upってポインタじゃないとか?
0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNG最長経路を求める方法はありませんか?
0592デフォルトの名無しさん
NGNGなるほど。
標準なのは3つだけなんですか。
よく分かりました。
0593デフォルトの名無しさん
NGNG↑
みなさん、薬物、犯す、暴力三昧の元暴走族が
子供を二人産み過去を自慢するようなHPを
立ち上げて「遠い過去の事です♪」などと平和に語っております。
どう思いますか。特攻お願いします。
抜粋
>過去の己を描いただけのHPであることをご理解して欲しい
>俺は最近の族じゃないから!過去だから過去、昔!OK?
>それで俺は最近は族ではなく任侠団体にいたんだよ
>ちゃんと読んでから書き込みして下さいね
http://lvpeace.hp.infoseek.co.jp/yaki.jpg
http://lvpeace.hp.infoseek.co.jp/zoku5.gif
0594デフォルトの名無しさん
NGNG全角文字じゃできません。考え方を教えてください。l初心者です。
scanf()やfor文とかしか知らなくてもできると言われたのですが
#include <stdio.h>
void main(void)
{
char a[100];
int i;
i=0;
scanf("%s",a);
while(a[i]!='\0')
{
i++;
}
for(i=i-1;i>=0;i--)
{
printf("%c",a[i]);
}
}
0595デフォルトの名無しさん
NGNG「全角文字」が2バイトの文字であるとする。
#define BYTE_OF_MBCHAR 2
#define STRINGNIZE_IMPLEMENTATION(x) #x
#define STRINGNIZE(x) STRINGNIZE_IMPLEMENTATION(x)
#include <stdio.h>
void main(void)
{
char a[100];
int i;
i=0;
scanf("%s",a);
while(a[i]!='\0')
{
i++;
}
for(i=i-BYTE_OF_MBCHAR;i>=0;i=i-BYTE_OF_MBCHAR)
{
printf("%" STRINGNIZE(BYTE_OF_MBCHAR) "s", &a[i]);
}
}
0596デフォルトの名無しさん
NGNG>半角文字なら下のプログラムでできたんですが
何が?
>全角文字じゃできません。
何が?
>考え方を教えてください。
何をしたいのか教えてください。
>初心者です。
言い訳のつもり?
0597デフォルトの名無しさん
NGNG12SD と入れたら DS21
あ位う123絵オ と入れたら オ絵321う位あ
という感じに出力されるプログラムです
0598デフォルトの名無しさん
NGNGint function(giko mona)
int giko
char *mona
{
}
↑のようなのを↓のような風に変換したいのですが、大量にあって手作業では時間がかかりすぎるのです。
int function(int giko , char *mona)
{
}
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGOSウインドウズXP使ってるんですが
とりあえずBorland C++ Compiler 5.5落としてきて
#include <stdio.h>
maim()
{
printf("TEST");
}
てファイルをメモ帳で書いてtest.cって名前で保存してみたら
一応test Cファイルって出来ました。
コマンドプロンプト
C:\Document ***>bcc32 text.c
て入力してみたんですが
'bcc32' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
とかでます。
0601デフォルトの名無しさん
NGNGUNIXスレで見たような....
本家のFAQに書いてあるので、それも含めてFAQを全部見ておいたほうがいい。
http://www.borland.co.jp/cppbuilder/freecompiler/faq/bccfaq4.html
0602デフォルトの名無しさん
NGNGhttp://member.nifty.ne.jp/Norino/c_lang/c_lang_setup_bcc.html
0603デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
int main(void)
{
const char s[11]="1山2本3山4";
char s2[11];
int i,l,c;
for(i=0,l=strlen(s),c=0;i<l;i++)
if(c){s2[i]=s[l-1-i+1];c=0;}//前がワイド文字
else if(s[i]<=-1){s2[i]=s[l-1-i-1];c=1;}//ワイド文字
else{s2[i]=s[l-1-i];}//普通文字
s2[i]='\0';
printf("%s\n",s2);
return 0;
}
0604デフォルトの名無しさん
NGNGありがとうございます。
結構分かり易いとりあえず書いてあることやってみました。
完璧と思ったのに、何故か
C:\>pathで
c:\borland\bcc55が出てきません・・・
環境変数のPATHのとこにはちゃんと書いたのに
てか、PATHの他の変数間違えて消しちゃったし・゚・(ノД`)・゚・
どうしおう
0605デフォルトの名無しさん
NGNGWinXPだったら一度ログオフしないといじった環境変数が有効にならなかったような。
0606デフォルトの名無しさん
NGNGありがとうございます!
再起かけてみたらちゃんとなりました多謝!!
・・・でも血迷って消しちゃった他の変数は・゚・(ノД`)・゚・
ど、どうなっちゃんですかね。。。
0607デフォルトの名無しさん
NGNG構造体 STRUCT が STRUCT の配列
STRUCT **children;
を持つ構造体としたとき、
STRUCT test;
を考えます。
このとき、test の配列 children の要素数 length を動的に取得し、
test->children の要素数 length だけ malloc したいのですが、
test->*childeren = (STRUCT *)malloc(length * sizeof(*STRUCT));
だと、左辺側でエラーになります。
どうすればよいでしょうか。
よろしくお願いします。
0608デフォルトの名無しさん
NGNG0609デフォルトの名無しさん
NGNG'bcc32' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
とか言われちゃいます。。。
0610デフォルトの名無しさん
NGNGBCCスレ池
0611デフォルトの名無しさん
NGNGint main()
{
int *ptr;
int num[2];
ptr = num;
*ptr = 20;
*ptr++=100;
*ptr++=200;
printf("%d\n",num[0]);
printf("%d\n",num[1]);
return 0;
}
このプログラムを実行すると
100
200
と出力されるのですが、*ptr=20の値はどこに行ったのでしょうか?
またnum[2]→num[1]に変更すると
100
204
というように値が変わって出力されてしまいます。
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNG意味が分からない
欲しいのは、ポインタの配列?
それとも、実際の配列?
0614デフォルトの名無しさん
NGNG>>610BCCで検索しても何もでないんですよ。。。
0615デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1054390397/
0616デフォルトの名無しさん
NGNGありがとうございます
思いっきり似たような話題でてますね
さっきの質問コピペようかと思ったけど、ちょとじっくり読んでみます。
0617デフォルトの名無しさん
NGNG自分で上書きしておいてどこに行ったもなにもないでしょ
0618デフォルトの名無しさん
NGNG『後置インクリメント』でググってみよう。
0619607
NGNG欲しいのは(malloc したいのは)構造体のポインタの配列です。
0620デフォルトの名無しさん
NGNGtest->childeren=(STRUCT**)malloc(length*sizeof(STRUCT*));
0621デフォルトの名無しさん
NGNGあ位う123絵オ と入れたら オ絵321う位あ
という感じに出力されるプログラムお願いします。
printf()、scanf()やfor文、if()、while()、for()、配列だけで
できると言われたのでそれらだけで作ってください。
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNG習ってないなら自ら学べ
0625_
NGNG0626デフォルトの名無しさん
NGNG激しくガンガリます(`・ω・´)
0627デフォルトの名無しさん
NGNGこれが多額の税金で更生しPCの(?)職業訓練された元暴走族の方のHPです。
自分のかけた迷惑を省みず大事にしてるお子さんが二人います。
http://lvpeace.hp.infoseek.co.jp/index.htm
みなさん、薬物、犯す、暴力三昧の元暴走族が
子供を二人産み過去(+薬物の使用経験)を自慢するようなHPを
立ち上げて「遠い過去の事です♪」などと自慢気に語っております。
どう思いますか。掲示板へ直行お願いします。
抜粋
>過去の己を描いただけのHPであることをご理解して欲しい
>俺は最近の族じゃないから!過去だから過去、昔!OK?
>それで俺は最近は族ではなく任侠団体にいたんだよ
>逮捕12回(結構頑張ったでしょ)
http://lvpeace.hp.infoseek.co.jp/yaki.jpg
http://lvpeace.hp.infoseek.co.jp/zoku5.gif
正直、私たちの重税がこのような方に注ぎ込まれてる訳です。
施設・刑務官・警察の特別手当、いくらあっても足りません。
どうしたら理解して頂けるんでしょうか?
0628デフォルトの名無しさん
NGNGまず文字コード体系を判定する必要がある。
日本語などの多バイト文字はコード体系が変われば処理も変わる。
0629_
NGNG0630デフォルトの名無しさん
NGNGchar str[16];
strcpy(str,c);
printf("%s\n",str);
printf("%c\n",str[0]);
printf("%c\n",str[18]);
getchar();
これが、コンパイル通るんだけどどういうこと?
[16]ってことは、[15]までだよね?VC6です。
0631デフォルトの名無しさん
NGNGCは配列の添え字チェックをしない。
str[18]は*(str+18)という意味なので文法上全く問題ない。
0632631
NGNGとにかく文法上問題ないのでエラーになったりしない。
0633デフォルトの名無しさん
NGNGconst char *c="abcdefg1234567890zx";
char str[16];
char aho[10];
strcpy(str,c);
printf("%s\n",str);
printf("%c\n",str[0]);
printf("%c\n",str[18]);
printf("%s\n",aho);/* これはどうなる? */
0634デフォルトの名無しさん
NGNG自動変数の確保の順番は未定義だったはず。
0635デフォルトの名無しさん
NGNG質問とまったく関係ない。
そしてそういう余計な話は初心者を混乱させるだけ。
0636デフォルトの名無しさん
NGNGオーバーフロウしたものがahoに入るかもしれないと言いたいんだと思われ。
でも>>634
0637デフォルトの名無しさん
NGNGコンパイルに関しては>631,632の通りだが
それ以前に
strcpy(str,c);
がいけないことだっていうのはOKなのかな?
18にアクセスしようとしてるからわかってそうだけど。
0638デフォルトの名無しさん
NGNGprintf の第2引数は、constになってるから、警告が出るんじゃない?(コンパイラーにもよるけど)
ahoは初期化(値が設定)されていないのに参照される可能性がある。みたいな。
0639デフォルトの名無しさん
NGNGprintfの第二引数以降は...だからなんでも受け付けます。
二行目と三行目のつながりが分からない。
0640デフォルトの名無しさん
NGNGこれはどうなると聞かれても。
>630が自分のまだ答えてないよ。
0641デフォルトの名無しさん
NGNGせやった・・・失敬・・・
0642デフォルトの名無しさん
NGNGunsigned int *buffer;
unsigned long int result;
buffer = (unsigned int *)malloc(2048);
for (row = 0; row < height; row++) {
TIFFReadScanline(tiff, buffer, row, 0);
for(x=0;x<width;x++){
result = * ((unsigned int *)(buffer + x));
printf("%d %d %u \n",row,x,result);
}
}
このようなループがあるんですが
row=0,x=533までしか実行できず、セグメンテーションエラーと言われます。
どのように修正すれば最後まで実行できるでしょうか。
ちなみに
TIFFReadScanline(tiff, buffer, row, 0);
は開いたtiff画像を一行読み取り、各ピクセルの輝度を16bitの整数としてbufferに格納します。
rowは行番号、0は画像番号です。
拙い文章でわかりづらいとは思いますがよろしくお願いします。
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNGレスありがとうございます。
すみませんが、さらに質問させてください。
考えている対象は一行あたり1024ピクセルの画像で、
1024個の要素を持つint型の配列を読み込む事になるわけなので、
malloc(2048)としたのですが
これは 2byte×1024 = 2048byte ってことで
width = 1024 の時 sizeof(unsigned int)*width
と中身は同じかと思うのですが、いかがでしょうか?
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG0649646
NGNGintは4byteありました。お騒がせしてすみません。
どうも僕の中では、
char は 8bit で 1byte
int は 16bit で 2byte
と思い込んでいたみたいです。
どうもありがとうございました。
0650デフォルトの名無しさん
NGNGいけないこと?
とりあえず試してみたんだけど、通ったから
問題ないのかと思ってた。
18にアクセスしたのは、こういう場合は後ろの方は切れてしまうのかな?
と、思ったのでちょっと試してみたら参照できた。なんで?って感じ。
>>633のやってることの意味がまったく分かりません。
お、オーバー浮浪?
0651デフォルトの名無しさん
NGNG>通ったから問題ないのかと思ってた。
Cでは「未定義の動作」に気をつけにゃならん。
エラーが出ることすら保証されていない。
要するに、自分がしていることが本当に正しいかどうかを
自分で判断できにゃならんのだ。真に科学的な態度が要求される。
Cではと言ったが、これができる者だけが長い目で見てやってける香具師だ。
0652デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1052186697/335
質問です。
bcc32 v5.5.1 な環境において、
char *setlocale(int category, const char *locale) の戻り値を
第二引数にして、setlocale() を再度呼び出すと、
第二引数が破壊され、戻り値が NULL になってしまいます。
一応調べたところ、下記のような記述
> The application shall not modify the string returned
> which may be overwritten by a subsequent call to setlocale().
> アプリケーションは返されたストリングを修正しないものとします、
> それはsetlocale()への後の呼び出しによって上書きされるかもしれません。
> http://www.opengroup.org/onlinepubs/007904975/functions/setlocale.html
がMSのサイトやらMAN pageやらから見受けられたので、この動作は未定義?
とも思うのですがいまいちすっきりしません。
これって、bcc32 固有の不具合なのでしょうか?
それともCの仕様でしょうか?
ちなみに、gcc では locale の設定が行われ、問題なく動作できますた。
よろすくおながいします。
0653デフォルトの名無しさん
NGNG未定義の動作だよって報告すら出ないのか?
0654デフォルトの名無しさん
NGNG{
std::string buf_;
}
と、
printf("%s",l1.buf_.c_str());
を日本語で説明おねがいします。意味がわかりませんでした。。
0655デフォルトの名無しさん
NGNGスレ違い。そりゃCじゃない。
0656デフォルトの名無しさん
NGNGマルチ氏ね
0657デフォルトの名無しさん
NGNG>strcpy(str,c);
文法的には問題ないのでコンパイルは通るけどコピーするサイズが問題。
strよりcのサイズが大きいために
strをオーバーしてコピーしてしまって
意図しないメモリ領域を壊してしまっている可能性がある。
(バッファオーバーフローとかオーバーランとか言う)
なのでstrがc以上のサイズを持っているかチェックしてからコピーするか
strncpyを使うかしる。
0658デフォルトの名無しさん
NGNGマジお願いします。
0659644
NGNGバッファに文字を残した場合に、それをリフレッシュするって感じでしょうか?
0660デフォルトの名無しさん
NGNGいいえ
いいえ
0662デフォルトの名無しさん
NGNG二分木載っているけど、これでよければ
tp://www1.cts.ne.jp/~clab/hsample/Mem/Mem2.html#void
0663デフォルトの名無しさん
NGNGfseek(fp,0L,SEEK_END);
と同じで、scanf()とかとは、直接的には全く関係ない
ただ、rewind()すると、EOFをクリアしたり等々
標準入力で便利に使える処理系が多いのも事実
0664デフォルトの名無しさん
NGNGファイルの先頭から読みなおしたいときによく使うが。
0666663
NGNG0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNG> fseek(fp,0L,SEEK_END);
(void)fseek(stream, 0L, SEEK_SET) だろ
0669デフォルトの名無しさん
NGNG>EOFをクリアしたり等々
って書いてあるじゃん
0670644
NGNGwhileの判定でEOFを使ってるならまだしも、コントロールコードを用いてる場合は、
意味がありますか?
0671デフォルトの名無しさん
NGNGキーバッファクリアになる処理系が存在する。
0672671
NGNG0673デフォルトの名無しさん
NGNGそれを標準の動作であるかのようなことを言っていた人がいたね。
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG文字定数か整数定数かの違い
0676デフォルトの名無しさん
NGNGその等式はどのコンパイラでも正しいですか?
C言語の規格として定まっているんですか?
0677デフォルトの名無しさん
NGNG手持ちの ANSI C/C++ 辞典には
「すべてのビットは 0 である」と書いてあるので、
大丈夫だと思います。
0678デフォルトの名無しさん
NGNGよって'\0'==0という保証もない。○か×か
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNG0 と等しい内部表現を持つ、
という意味で全てのビットが 0 である、
と言ってるんだと思うので×。
でも、その視点は無かっただけにちょっと感動した。
0681デフォルトの名無しさん
NGNGヌルポインタじゃなくて。
0682デフォルトの名無しさん
NGNG処理系定義となっているが、'\0\0' なら全てのビットが 0 なので
'\0\0' == 0 は成り立つ ○か×か
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNG処理系定義が、何が起こっても構わないってのはダウト
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNGあーなるほど、そういうプログラムがあるからOSが不安定になったりするのかな?
気を付けるようにします。
0687デフォルトの名無しさん
NGNG>>686
時々セキュリティ情報などでバッファオーバーフロウが云々という記事をみかけるでしょ?あれ。
0688687
NGNG0689デフォルトの名無しさん
NGNGM$の社員にも糞がいっぱいいるってことか。
0690デフォルトの名無しさん
NGNG文字列が英語の文かどうか判定したいです。
全角文字なら英語でないとすると、
こんなもじ↓
“
が全角文字で英語にならなくなってしまいます。
上の文字は英語のサイトでも使われてる文字なので、英語として扱いたいです。
0691デフォルトの名無しさん
NGNG実際にはコードの時点からオーバーしてるわけじゃなくて
何らかの方法で無理矢理あの状態を作り出されたときに
サイズチェックしてなくてあぼーんするって感じかな。
まあよく知らないんだけど( ´д`)
0692デフォルトの名無しさん
NGNG(C), (R), TM あたりで困るというのなら分かるけど。
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG先ずは文字コードについて勉強しろ。話はそれからだ。
0695デフォルトの名無しさん
NGNGprintf("system・・・・
よく覚えてないです。
どなたか教えてください
0696デフォルトの名無しさん
NGNG環 境 を 書 け
0697デフォルトの名無しさん
NGNGWinXP、BCC5.5です。
環境を書いてなくてすみませんでした。
0698デフォルトの名無しさん
NGNGsystem("clear"); /* UNIX */
0699デフォルトの名無しさん
NGNGそ の 環 境 の ス レ に 行 け
だろ?
0700デフォルトの名無しさん
NGNG勘違いしてました。
タブキーを押すと右に*が移動し、3回動いたら改行する
プログラムを作りたいんですが、根本的に間違ってますでしょうか?
まだ作りかけですが、どうか見てください
#include <stdio.h>
#include <conio.h>
int main(){
int a=1,b=1;
char Key;
for(;;){
system("cls");
Key = getch();
if (Key=="\t"){
a++;
if(a<=3){
printf(" *");
}
else{
printf("\n");
b++;
a=1;
}
}
}
}
0702デフォルトの名無しさん
NGNGコンパイルを通してから出直せ。
0703700
NGNGまさか、君Cやったことないでしょ?
( ´_ゝ`)プッ
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG> if (Key=="\t"){
> if (Key=="\t"){
> if (Key=="\t"){
> if (Key=="\t"){
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNGネタはもういいから。
0708デフォルトの名無しさん
NGNG#include <conio.h>
int main(){
int a=1,b=1;
char Key;
for(;;){
system("cls"); // 画面を消す。
Key = getch(); // 入力するまもなく通り過ぎる
if (Key=="\t"){ // Keyの初期値(ごみ)と文字列リテラルのアドレスを比較する。
a++; // aが2になる。
if(a<=3){ //必ず真になる
printf(" *"); //*を表示
}
else{ //以下のコードは通ることなく終了。
printf("\n");
b++;
a=1;
}
}
}
}
( ´_ゝ`)プッ
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNG何も表示せずに終了か。
0711デフォルトの名無しさん
NGNGこいつもひどいな。
0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNGif(Key == '\t') {
0716デフォルトの名無しさん
NGNG0717716
NGNG0718デフォルトの名無しさん
NGNGどうでも良いけどなんで俺を騙るんだ?
0719716
NGNGなんで俺が煽ったことになるんだ?
0720デフォルトの名無しさん
NGNGお前は俺じゃないだろ
0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNG二人いるな
0723デフォルトの名無しさん
NGNG#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main() {
int a = 1, b = 1, i;
char Key;
system("cls");
while( (Key = getch()) != 'q' ) {
system("cls");
if (Key == '\t') {
if ( a <= 3 ) {
for (i=0; i<a; ++i) printf(" *");
++a;
} else {
printf("\n");
++b;
a = 1;
}
}
}
printf("\nb = %04d\n", b);
return EXIT_SUCCESS;
}
0725デフォルトの名無しさん
NGNG#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main() {
int a = 1, b = 1, i;
char Key;
system("cls");
while( (Key = getch()) != 'q' )
if (Key == '\t') if ( a <= 3 ) printf(" *", ++a); else printf("\n", ++b, a = 1);
printf("\nb = %04d\n", b);
return EXIT_SUCCESS;
}
0726デフォルトの名無しさん
NGNG#include <stdio.h>
#include <conio.h>
int main() {
int a = 1, b = 1, i;
char Key;
system("cls");
while( (Key = getch()) != 'q' )
system("cls");
if(Key == '\t') if ( a <= 3 ){
printf(" *", ++a);
}
else {
printf("\n", ++b, a = 1);
}
}
0727_
NGNG0728デフォルトの名無しさん
NGNGよろしくおねがいします
#include<stdio.h>
void main(void){
char c,d;
scanf("%c",&c);
scanf("%c",&d);
printf("%c %c",c,d);
}
0729デフォルトの名無しさん
NGNGちゃんと改行を読み取って表示する。
0730デフォルトの名無しさん
NGNG即レスありがとうございます。
どうにかして改行を読み取らないようにはできないでしょうか?
0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNG一行読みとる
0733デフォルトの名無しさん
NGNG引数を整数に直してから表示するプログラムにしたいのですが
以下のようにすると、引数と違った結果になってしまいます。
どうしてでしょうか?
#include<stdio.h>
#include<stdlib.h>
main(int argc, char *argv[])
{
int a,b,i;
int x[1],y[1];
x[0] = atoi(argv[1]);
y[0] = atoi(argv[2]);
x[1] = atoi(argv[2]);
y[1] = atoi(argv[3]);
for (i=0;i<2;i++){
printf("%d %d %d\n",i,x[i],y[i]);
}
}
0734デフォルトの名無しさん
NGNGオーバーフロウとか
0735734
NGNG0736デフォルトの名無しさん
NGNGできました!
ありがとうございます!
0737!=733
NGNG0738デフォルトの名無しさん
NGNGちみら、VB出身だな!?
0739デフォルトの名無しさん
NGNGどこを直せばいいです??マジでわかんないもんで。
{
char name[5][9] = {"yamada","kawasaki","ishikawa","machida","fukui"};
char tmp[9];
int i, j;
for (i = 0; i < 4; i++){
for (j = i + 1; j < 5; j++);{
if (name[i][0] > name[j][0]){
tmp = name[i]; /*エラー「左辺値が必要(関数 main )」*/
name[i] = name[j]; /*エラー「左辺値が必要(関数 main )」*/
name[j] = tmp; /*エラー「左辺値が必要(関数 main )」*/
}
}
}
for (i = 0; i < 5; i++){
printf("%s\n", name[i]);
}
return(0);
}
0740デフォルトの名無しさん
NGNG配列名に代入はできないから。
配列のコピーはmemcpyで。
そういうもののソートは元のデータをポインタ配列にした方がいいと思うけど。
0741デフォルトの名無しさん
NGNGstrcpy()つかえ。
0742740
NGNG0743733
NGNGさっぱりわからんです。ヒント下さい。
0745デフォルトの名無しさん
NGNGint x[1]で使えるのはx[0]だけ。x[1]を使いたかったらint x[2]とする
0746739
NGNG( name[5][9 を *name[5][9] など)
コンパイルの時にエラーは出なかったけど実行したらエラーがでてしまった。
どこをどう直せばよかったんですか??
0748デフォルトの名無しさん
NGNGたとえばint *i; int j=5; と言う場合
i = &j; って感じに
&は変数のアドレスっていう意味
0749!=733
NGNGy[0] = atoi(argv[2]);
x[1] = atoi(argv[2]); /* 3じゃ */
y[1] = atoi(argv[3]); /* 4じゃ */
0750デフォルトの名無しさん
NGNG5個降ってくるというふうにCのコンソールで表現したいのですが、
アルゴリズムはどうしたらいいでしょうか?
サンプルがあればお願いします。
できればコメントもお願いします。図々しくてすみません
0751mainの戻り値
NGNGで、実際stdlib.h(以下はgccの例)に
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
とか書いてありこのマクロを使えというのを昔読んだ記憶があります。とはいえ
しかし、このマクロ使っている人を見たことがありません。
これってどこかで使われてます??
0752デフォルトの名無しさん
NGNG>>723>>725
0753デフォルトの名無しさん
NGNGOSに依存しないプログラムを書くときは使ってるよ。
0754デフォルトの名無しさん
NGNG失敗時はfprintfの戻り値にしている。
0755デフォルトの名無しさん
NGNGCでは無理なんじゃないの?
0756デフォルトの名無しさん
NGNG普通って?
実行環境とのインターフェイスをキミはどう設計しているの??
コーディングの段階で悩むに至った過程こそ
そんなくだらんことが誤差にもならん程の深刻な問題だぞ。
0757デフォルトの名無しさん
NGNGhello world の戻り値なんて、ユーザが起動して戻り地なんか無視しているんだからどーでもいい。
0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNG勝手にhello worldを起動するのがユーザと決め付けるんじゃねーよ。
0760デフォルトの名無しさん
NGNG0761757
NGNG後学のために、どんなシステムでhello worldを起動しているのか教えてほしいものだ。
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNG一般論というのならhello worldじゃなくて一般的なプログラムで
話そうじゃないか。 そのプログラムを起動しているのは誰かね?
0764デフォルトの名無しさん
NGNGAPIを使うしか方法はない。
あとは、他の誰かに聞け
0765デフォルトの名無しさん
NGNGはぁ?
cygwin使っても出来ますが何か?
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNGclsを呼びまくる。
0770デフォルトの名無しさん
NGNG用心深い人もいるかもしれないね。
#!/bin/bash -f
if (( $# == 0 )); then
exe=./a.out
else
exe=$1
fi
if $exe; then
echo 'success!'
else
echo 'failure...'
fi
0771デフォルトの名無しさん
NGNGアルゴリズムが何なのか分かっているのか小一時間(略)
0772デフォルトの名無しさん
NGNG,,--―'''""`ヽ'  ̄`ヽ、
/ ヾ / ~`ヽ
/ ヽ;: /"""ヾ ヽ
/ ;:;;:::'''' l /;:;;:::''' \ i
/ /;:;;:::''' ヽ ヽ
| | _,,___ . _,,,,__,_ヽ |
/ ;/ / ゙^\ヽ.. , /゙ ¨\,.-
/ ;:;:ヽ「 ● | 》 l| ● ゙》ヽ
i /i,. .,ノ .l| 《 .|ヽ ヽ
| | \___,,,,,_/ .'″ ^=u,,,,_ v/ | |
| |. |. |
| ;:| ::::::: | :|
| ヽ. ( ,-、 ,:‐、 | |
| /ヾ.. | |
| | __,-'ニニニヽ . | |
.. | `、ヽ ヾニ二ン" / |
| ヽ\ / |
| l `ー-::、_ ,,..'|ヽ./
ヽ. :人 `ー――''''' / ヽ
/;:;:;:;;:;:;: _/ `ー-、 ,.-'" \ー-、
,.-'" \: \ .,.-''" |
/. \ ~>、,.-''" |
,,..-‐'''"" ヾ ,.-''"| /――――、/
0773772
NGNG鬱
0774デフォルトの名無しさん
NGNGファイルを読み込む場合どのようにすればよいでしょうか?
もしくは、i.txt というファイルを読み込むにはどのように
すればよいでしょうか?
atoiみたいにiを文字列に変換できればよいのですが。
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNGこのテトリスすごいんですけど。
このくらいのコードはCを始めてどのくらいでかけるものなのでしょうか?
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNG0781739
NGNGポインタ配列にすればいいんですね。どうにかそこまでたどり着きました。
ありがとうございます!!
0783デフォルトの名無しさん
NGNG初期化子以外で、この配列をすべて'x'で初期化する関数があれば
教えていただけないでしょうか。
0784デフォルトの名無しさん
NGNGmemset()
0786デフォルトの名無しさん
NGNG0787デフォルトの名無しさん
NGNG俺が考えたのは
void swap(void *a,void *b,unsigned int size){
void *temp;
if(a==b)
return ;
temp=melloc(size);
memcpy(a,temp,size);
memcpy(a,b,size);
memcpy(b,temp,size);
free(temp);
return ;
}
サイズを渡さずに引数が交換したい変数だけの関数って作れる?
0788デフォルトの名無しさん
NGNG#define SWAP(a, b) swap(a, b, sizeof(a))
0789デフォルトの名無しさん
NGNGマクロを選ぶか、関数を選ぶか、
マクロだけを公開するか。
StandardCLibraryって本(C標準ライブラリ実装演習)に載ってるよ。
読んだ事なければ、暇つぶしに良いかも。
ちなみに、Cに限定する話しか乗ってないから、これを全てだと思って、
こだわって立ち止まらないように。
そこらおじいさんと同じになっちゃいます。
0790デフォルトの名無しさん
NGNG君が欲しいのはコレであろう
http://pc2.2ch.net/test/read.cgi/tech/1038215563/463
0791デフォルトの名無しさん
NGNGありがとうございます。気をつけます。
0792デフォルトの名無しさん
NGNGなるほど。
でもaはポインタでしょ
sizeof(a)が返すのはポインタのサイズじゃないの?
#define SWAP(a, b) swap(&(a),&(b), sizeof(a))
勘違いしてたら突っ込んで
>>789
その本は知らないな。
機会があれば読んでみます。
0793デフォルトの名無しさん
NGNG#define SWAP(a, b, type) do { type c = b; b = a; a = c; } while(0)
0794787==792
NGNGなるほどねぇ。
いろいろあるんだな。
ちょっと感動した。
0795デフォルトの名無しさん
NGNG1バイトずつ交換すればmallocを使わずにできる。
0796kgp
NGNG#include<stdlib.h>
struct person{
int number;
int height;
int weight;
int sex;
int i;
}
int main()
{
struct person date[20];
int i = 0;
printf("番号、身長、体重、性別を入力してください.\n");
printf("ただし番号は2桁、身長は150〜180、体重は45〜90、性別は男が1で女が2というようにしなさい.\n");
while(getchar() != EOF){
scanf("%d%d%d%d",&date[i].number,&date[i].height,&date[i].weight,&date[i].sex);
i++;
}
return 0;
}
自分ではうまくやったつもりなのですが
コンパイルできません
どこをいじればよいですか?
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNGちょっと do-while を使う意味が分かりません。
普通にブロックで囲んだだけじゃダメなんですか?
0799デフォルトの名無しさん
NGNGそれが分かるようになるまで、ブロックに囲むだけで良いよ
普通の関数と同様に使ってれば、多分、分かる事だから
0800デフォルトの名無しさん
NGNGもったいぶらないで教えてくれよ。
0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNG神!!
俺もそうしよう
これ以降この話題に触れたやつは切る
0803デフォルトの名無しさん
NGNGそんなもの使うな、どうせ関数と全く同様に使える訳ではないんだし
それがどうしても必要ならばそろそろC++にうつる時期だ
そんな間に合わせのかたわ位で了見の狭い奴が多いな。
俺はそういう奴が大嫌いだ。だから教えてやる。
if()SWAP();elseとかを考えてみろ
0804デフォルトの名無しさん
NGNGそんな事言わずにさ
0805デフォルトの名無しさん
NGNGif()SMAP();else
とかにすれば、可愛げがあるものを…
0806デフォルトの名無しさん
NGNG偉そうに書いてるけど、一般人にとっては常識(w
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNG全部大文字にしてあることでマクロであると警告し、
ここに代入文なんぞ突っ込むな! という主張を行っている。
そして、セミコロン対策するのはエディタの自動インデント対策でもあるし、
セミコロンがいるのかいらないのか悩む必要もなくなる。
0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNGこれにつきる
0812デフォルトの名無しさん
NGNGputchar(*p++);
0813デフォルトの名無しさん
NGNG何を言いたいのかわからないが、それはきちんと「引数を複数回評価するマクロとして実装されているかもしれない」と書かれている。
0814デフォルトの名無しさん
NGNG副作用の発生する関数の呼び方はして欲しくない。
0816デフォルトの名無しさん
NGNG>と書かれている。
何に?
少なくとも規格書ではあるまい
7.1.7 ライブラリ関数の使用法
マクロとして実装されたライブラリ関数の呼び出しでも、
その実引数がただ1回だけ評価され、
かつ必要な箇所ではカッコによって完全に保護されるような
コードに展開されなければならない。
7.9.3.9 putchar関数
int putchar(int c);
(マクロとは一言も書いてない)
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNG#define putchar(c) putc(c, stdout)
#deinfe putc(c, fp) do { int x = (c); fp->pos < fp->capa ? fp->fp[fp->pos++] = x : fputc(x , fp); } while(0)
0820デフォルトの名無しさん
NGNGつかわねぇなぁ。
0821デフォルトの名無しさん
NGNGint x; for (x = 0; x < 256; x++) putchar(x);
0822デフォルトの名無しさん
NGNGscanf("%d%c" , &hoge , &damy) ;
と
fgets(buff , sizeof(buff) , stdin) ;
sscanf(buff , "%d" , &hoge) ;
となら
どっちが安定ですか?
0823デフォルトの名無しさん
NGNGstruct node {
int nodekind ;
union {
struct {
int childs ;
struct node *child[MAX] ;
int low[MAX] ;
} internal ;
struct {
int leafkey ;
int data ;
} leaf ;
} u ;
} ;
#define CHILDS u.internal.childs
#define LEAFKEY u.leaf.leafkey
使っとけ
0824デフォルトの名無しさん
NGNG安定って意味がわからんが、一般的には下のほうが良いとされている。
0825デフォルトの名無しさん
NGNGせっかく>>1にC FAQのリンクがあるんだから、隅々まで見てきなされ
0826デフォルトの名無しさん
NGNGscanf("%d%c" , &hoge , &damy)
こいつだと起きそうな不具合ありますかね?
0827デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNGあー、Compilerだけで使いたい変数・関数はアンダースコアで使う。
プログラム側はつかっちゃだめとかあったような。
ちなみに、ローカル変数は名前重複可能って、++だけだっけ?
0829デフォルトの名無しさん
NGNGブロック内で定義された変数はその外部に影響しないから名前の重複は無問題。
>>826
数字の後にすぐ改行があるとは限らない。
0830デフォルトの名無しさん
NGNG要求仕様ではbuffの中の食べ残しをどうすることになっている?
0831デフォルトの名無しさん
NGNGアンダースコアなんて気休めにもならないよ、
ベンダとユーザの境界は常に1つじゃないんだから。
例えばSystemCなんてどっちになる?
ちなみに、ローカル変数だって1つの式の中で2回++はだめだよ。
int giko;
void mona(void)
{
int giko;
{
int giko
}
}
キミが聞いたことあるのは
おそらくこれがOKってだけのことだろ。
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNG処理系定義のマクロがアンダースコアで始まる変数や関数を参照していたら?
0834824
NGNG例えば、以下のようなコードの場合、
#include <stdio.h>
int main(){
int hoge;
char damy;
scanf("%d%c" , &hoge , &damy);
printf("hoge'v value = %d \n",hoge);
scanf("%d%c" , &hoge , &damy);
printf("hoge'v value = %d \n",hoge);
return 0;
}
実行結果は以下の通り
./a
1234
hoge'v value = 1234
a
hoge'v value = 1234 <- 前の奴が残っている
0835デフォルトの名無しさん
NGNGscanfの戻り値チェックシヨーネ
sscanfとか関係ねー
0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNGscanfの戻り値はパースに成功した引数の数
0838デフォルトの名無しさん
NGNGが恥ずかしいな
0839デフォルトの名無しさん
NGNG>int main(){
>damy
は、恥ずかしくない。
0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNG釣りだな?
釣りなのか?
釣りなんだろ?
釣りなんですか?
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNG0845デフォルトの名無しさん
NGNGJISの規格書にはっきりと書かれている
7.9.7.9 putchar関数
機能 putchar関数は、第2引数としてstdoutを指定したputcと等価とする。
7.9.7.8 putc関数
機能 putc関数は、fputcと等価とする。ただし、マクロとして実装されたputc関数は、streamを2度以上評価することがある。したがって、実引数streamは、副作用を伴わない式でなければならない。
0846845
NGNG0847845
NGNG0848デフォルトの名無しさん
NGNG全てのコンパイラがJIS準拠だと思ってる香具師はDQN
0849デフォルトの名無しさん
NGNGFILE **fp;
の時に
putc(c,*fp++);
みたいな使い方は駄目って事か
正直、知らんかったな…
まぁ、普通に書いてて、そんな書き方する事はないけど…
0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG章のナンバーが微妙に違う
0853デフォルトの名無しさん
NGNGフルスペル : Japan Industrial Standard
工業標準化法に基づいて、すべての工業製品について定められる日本の国家規格。コンピュータと情報処理はX部門にまとめられている。
読み方 : アンシ、アンジー
フルスペル : American National Standard Institute
アメリカ国内の工業製品の規格を策定する団体。1918年に設立された。日本のJISにあたる。
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNG処理系を特定せずに話している限り、それは仕方ないだろう。
どちらかというと>>793,>>798,>>799,>>803,>>806,>>809,>>811の流れで
>>812のような例を出していることが愚かしいとの>>816の指摘に対して
出展を明らかにしない>>819は空疎な悪あがきとしか言いようがない。
0856デフォルトの名無しさん
NGNGしーーーーっ!
せっかくオモロイのにぶち壊すなよ
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNG> 恣意的には、恥ずかしいのはこれで
> >int main(){
int main(void) または int main(int,char**)にしてくれってこと?
あるいは、int main(int,char **,char **)か。
* 恣意的って日本語の使い方あってるのかどうかさえ解らん。
ttp://members.jcom.home.ne.jp/w3c/kokugo/kotoba/Shiiteki.html
一瞬、ιぃかとも思ったよ...
0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNGワラタ
0863デフォルトの名無しさん
NGNG間接参照でしたっけ。よく分かりません。
説明してもらえませんか?
#include <stdio.h>
int main()
{
int *po , var;
var = 100;
po = &var;
*po = 1010;
printf("変数varの値 = %d" , var);
return 0;
}
0864デフォルトの名無しさん
NGNGそのコードを100回くらい読み直してみろ。
0865デフォルトの名無しさん
NGNG普段は名前(var)でアクセスする。
&を付けるとアドレスを返す。
ポインタ(po)にはアドレスが入る。
ポインタに*をつけると名前(var)でアクセスしたのと同じようにアクセスできる。
0866デフォルトの名無しさん
NGNGint var で宣言された変数 var は value を持つんだけど、
int *po で宣言された変数 po は address を持つことが出来る。
ゴメン、上手く説明出来ないや。アーキテクチャを学ぶと良いかも。
0867デフォルトの名無しさん
NGNGそのコードだと、poにvar(=100)のアドレスを格納した後、
poの指す先(var)を改めて1010に設定していることになる。
だから、vsrの値も100から1010に変更され、1010が表示された。
0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG*po = 1010; //?
うわぁ、分からないヽ(`Д´)ノ
0871デフォルトの名無しさん
NGNG*と&の意味ワカル?
0872デフォルトの名無しさん
NGNG1つはアドレス。もう1つは参照先の型。
アドレスというのはメモリ上の位置のこと。
そのポインタを入れることの出来る変数がポインタ変数で、
int *po;
のように宣言すると、po がポインタ変数になって、
参照先の型は int であると仮定される。
ある変数のポインタは & を使えば得られる。
例えば
int var;
の var のポインタが欲しければ &var とすれば得られる。
これを po に入れるには、普通の代入
po = &var;
を使えばいい。
0873デフォルトの名無しさん
NGNG>po = &var; //varの値(100)をポインタ変数poに代入
違う。
0874デフォルトの名無しさん
NGNGメモリ上の位置と、その型が分かっているので、
そこの値を参照したり、そこに値を入れたりすることができる。
それを行うには * というものを使って
*po = 100;
とか
printf("%d\n", *po);
とかすればいい。
*po とすると、po の中に入っているアドレスを始点とした
int のサイズの領域を参照することができるのだ。
0875870
NGNG違いますか・・・
0876デフォルトの名無しさん
NGNG例えば
int var = 100;
int num;
だとして、
num = var;
としたとしよう。
この場合、num に渡されるのは 100 という値だ。
つまり、var と num という二箇所にそれぞれ 100 という値があることになる。
この場合、var++; としても、var は 101 になるが num は 100 のままである。
一方ポインタの場合は渡されるのはメモリ上の位置であって、値そのものではない。
つまり、100 という値が入れられた場所は相変わらず var の一箇所のみである。
位置を共有しているので、var++; とすれば var も *po も 101 になるし、
同様に (*po)++; とすると var も変わる。
なぜなら、var と *po はメモリ上の同じ領域を表しているからである。
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNGint main()
{
int *チャンネル , 番組;
番組 = めざましテレビ;
チャンネル = &目覚ましテレビ; //チャンネル = 目覚ましテレビのチャンネル
*チャンネル = 僕だけのマドンナ; //このチャンネルの番組 = 僕だけのマドンナ
printf("変数番組の値 = %d" , var);
return 0;
}
上手く説明できんなぁ
0880デフォルトの名無しさん
NGNGつまり
int *i;とあると、アドレス型の入れ物に&(アンパサンド)でアドレスを
抽出していれる。そうすると、iはそのアドレスを示すのです。
つまり *iではなく、int *であってiはただの入れ物です。
0881デフォルトの名無しさん
NGNG*po = 1010; //
これにコメントを付けてみると・・・
0882デフォルトの名無しさん
NGNG大きく分けて、ポインタには 4 つの利用法がある。
1. 関数を超えてメモリを共有したい。
別の関数に大きなサイズをもった値を渡したい場合や、
特にサイズの決まっていない値(配列)を渡したい場合は、
ポインタだとサイズが小さくなるので便利である
(配列そのものはそもそもポインタを使ってしか渡せない)。
また、別の関数内で変数の値を変更させたい場合にも利用できる。
普通に関数に渡しただけでは num を使った例で
num の値を変えたところで var の値が変わらないのと同じように、
仮引数を操作しても実引数に渡した変数の中身は変えることができない。
でも、ポインタを使えばこれを解決することが出来る。
2. 動的にメモリを確保したい。
malloc という関数を参照。今はまだ気にすることはないと思う。
3. 特殊なデータ構造を実現したい。
リスト構造、木構造などを参照。これもまだ気にすることはないと思う。
4. 参照したいメモリの位置を得ることが面倒な場合に、そのアクセスを簡単にする。
例えば a[foo(n)][bar(b * n + c)] を何度も参照したい場合には、
このポインタをポインタ変数に入れておけば、そのポインタ変数を使って楽に操作できる。
strchr などの関数の戻り値を保存しておくことも良くある。
0883デフォルトの名無しさん
NGNGでも、po = &var;
*po = 1010;
の意味がやっぱりイマイチです。
プリントアウトして寝るまで考えてみます
0884デフォルトの名無しさん
NGNGヽ(`Д´)ノ
0885デフォルトの名無しさん
NGNG&はアドレスを教えてくれます。
po = &var;でvarのアドレスがpoに蓄えられます。
*はすごいです。実際にアドレスのところまで連れていってくれます。
poはアドレスが代入されて、アドレスを返しますが、
*poは(poに蓄えられたアドレスのところに)代入もできるし、
そこから値をとりだすこともできます。
*po = 1010;はvar = 1010;と同じになります。
0886デフォルトの名無しさん
NGNGってことは*po = nullpo ≒「ぬるぽ」?
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG*poへの代入はvarへの代入をする。
0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNGCPUはvarのあるアドレスを使って処理をするわけ。
それができるようにコンパイラが変換してる。
アドレスの値そのものをいじくるんじゃなくて
アドレスを使った処理をする時に*を使うの。
0892デフォルトの名無しさん
NGNGのときpoはポインタで*poは実体、であってる?
0893デフォルトの名無しさん
NGNG0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG*po = 10;
ぬるぽ
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNGあっ。ポインタになってない 鬱
0898デフォルトの名無しさん
NGNGガッ
0899デフォルトの名無しさん
NGNG中学生か?マルチもほどほどにしとけよヴォケ
0900デフォルトの名無しさん
NGNG0901pop
NGNG計算する。
f(x)=ax*x+bx+c
係数aは10、bは5、cは2とします。答えは、2ax+bになるはずなので数値的に微分した
結果と解析的に求めた値を比べて、計算が正しく行われていることを示してください。
計算範囲は0から2までとします。分割数は各自決めてください。(十分正確に計算できるように)
2)
台形公式を使って、1)の式を積分計算してください。積分範囲は0から2とします。
解析的な解も計算して、数値計算結果を比較してください。a、b、cの値は1)と同様とします。
以上のプログラムと実行結果をお願いいたします.
もう完全にギブです。(T-T)どうかどなたでもよろしいのでお助けください。
0902デフォルトの名無しさん
NGNGマルチは駄目ポ
0903デフォルトの名無しさん
NGNG前もそんな系統の質問があったな。
法線を求めるって奴で、外積を使う奴だったような…
で、その時も答えたがプログラム的には簡単だ。
君に微積分の知識がないだけだ。
数学を勉強しなさい。
(今回はヒントコードすら面倒)
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNGマクロを多様。
#define I if
#define E else
#define F for
などなど…
0907デフォルトの名無しさん
NGNG氏ね
0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNG士ね
0910デフォルトの名無しさん
NGNG馘
0911デフォルトの名無しさん
NGNGA,B,Cの3つの処理があって、ABはどっちを先に処理してもよくCはAB終了後でないとだめ。
ここで、A,Bをスレッドにしたいんですが、A、Bが終わるまでCの実行は待たないといけません。
この「A、Bが終わるまで待つ」ことのやり方がよくわかりません。
自分で試してみたのは、チェック用の外部変数を用意して
check=0;
_beginthread(A);
_beginthread(B);
while(check!=2);
C;
こんな感じでやってみました。AとBは終了するときにcheckを1増やします。
簡単なテストプログラムを作ってみたところ上手く動いたのですが、本当にこれでいいのか不安です。
とくに、ABが終わるまでひたすらループで待ち続けるのは、無駄にCPU使ってそうで
もっとスマートな方法があるんではないかと。
0912デフォルトの名無しさん
NGNG限りなくVCの香りがするのは気のせいか?
0913デフォルトの名無しさん
NGNGマルチタスク(スレッド)のOSには必ずそれを
管理するオブジェクトやAPIが用意されている。
それを利用した方がいい
0914デフォルトの名無しさん
NGNG0915911
NGNG調べてる途中でmutexとかも出てきたんですけど、どう使えばいいかわからなくて。
今思いついたんですけど、
1、AとBの実行直後に適当な変数にロックをかけて終了時にロックを外すようにする。
2、Cの前でロックかけられてるやつにアクセスする。
こうすれば、AとBが終了するとともにロックが解け、Cが実行される。
というのでいけるかな?明日試してみます。
0916デフォルトの名無しさん
NGNGめちゃ便利
これから毎日使う!
vi _906.h
$cp _906.h /usr/include
0917デフォルトの名無しさん
NGNGwin32用のpthreadがある
それつかえばlinuxでも動くはず
pthreadはオライリーの本がちゃんとあるので嫁
0918デフォルトの名無しさん
NGNG一般ユーザがそこにコピーできるのか
0919≠915
NGNGpthread_join 見てみたけど、
ライブラリとして void** を使ってるのはいかがなものか。
0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG#include <stdio.h>
main()
{
int ja; /*国語のテストの点*/
int ma; /*数学のテストの点*/
int en; /*英語のテストの点*/
int ave; /*平均点*/
ave = ( ja + ma + en ) /3;
printf("三教科の平均点は%dです。\n",ave);
}
こう書いてコンパイルすると平均点が47点になるんですけど…
よく分りません。なんで47点?
だれか親切に教えてください。
0922デフォルトの名無しさん
NGNG初期化してない変数の値は激しく未定義だYO!
0923デフォルトの名無しさん
NGNG初期化していない自動変数にはどんな値が入るか分からない。
0924デフォルトの名無しさん
NGNG1. 初期化してない変数には、どんな値が入っているか分からない。
2. 整数同士の割り算では、余りは切り捨てられる
(但し、片方が正で片方が負の場合の結果は環境依存)。
0925906
NGNGI
{
}
0926デフォルトの名無しさん
NGNGI2
{
}
0927デフォルトの名無しさん
NGNGあなたの得点です
0928デフォルトの名無しさん
NGNGお、そうだった。
静的変数だと 0 で初期化されるね...。
0930デフォルトの名無しさん
NGNG#define C printf("%s\n",env[0]);
I
{
C
}
0931重婚罪の922
NGNGint variable2;
variable2 = variable1; /* 代入ぽ */
0932デフォルトの名無しさん
NGNGint ja = 78; /* 初期化 */
int ma = 100; /* 初期化 */
int en;
int ave;
en = 82; /* 代入 */
ave = (ja + ma + en) / 3; /* 代入 */
0933デフォルトの名無しさん
NGNG0934デフォルトの名無しさん
NGNG初期化(脳内C言語事典78ページより)
変数を参照(使用)するより前に、何かしらの値を入れる事
0935921
NGNGアリガト!(´▽`)
0936デフォルトの名無しさん
NGNG確かに代入においても参照されるといえば参照されるのだが、
誤解されそうな定義なので却下。
初期化(脳内C辞典201ページより)
変数を宣言すると同時に何かしらの値を入れること。
0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG#define TRACE(_msg_) strcpy(buf,"_msg_");
とやったマクロを使うと失敗してしまうのですが
これを回避する方法ってあるのでしょうか?
11.17を読んだのですがわかりません
0939デフォルトの名無しさん
NGNG#define TRACE(_msg_) strcpy(buf,#_msg_);
0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNG0942デフォルトの名無しさん
NGNGchar *name;
int bangou,total;
} *part_ptr,part;
のように宣言して他の関数で
while(!feof(fp)) {
part_ptr = (bumon *)malloc(sizeof(bumon));
fscanf(fp,"%d",&(part_ptr + bumonsuu)->bangou);
fscanf(fp,"%s",*(s + ));
printf("%d %s\n",(part_ptr + bumonsuu)->bangou,*s);
if(feof(fp)) break;
bumonsuu++;
}
というのがあるのですが
printfとかfscanfで*nameを使うにはどうすればいいのですか?
0943デフォルトの名無しさん
NGNG0944デフォルトの名無しさん
NGNG0945942
NGNGchar *nameと宣言すれば配列になると勘違いしてました
参照して、値入れなきゃ駄目なんですね。
0946デフォルトの名無しさん
NGNG最後のセミコロンは場合によるね
0947デフォルトの名無しさん
NGNG答えもここの人たちよりもカッコイイのがある。アメリカの一流プログラマはみんな
この本を神棚に祭って、毎日三回読誦してるんだよ。
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNGint main() {
char str[] = "hello,world";
printf("str[0]の内容\t\t= %c\n" , *str);
printf("str[0]のアドレス\t= %x" , str);
return 0;
}
このプログラムの意味が分かんないです。
コメント付けてもらえないでしょうか
0950デフォルトの名無しさん
NGNG>part_ptr = (bumon *)malloc(sizeof(bumon));
struct bumonな
もしかして、そのソースの拡張子がcppになってるか?
Cを憶えるのにC++で翻訳してると嘘を教え込まれるぞ
それからsizeofにはbumonsuuのとりうる最大値+1を掛けてないのに
>fscanf(fp,"%d",&(part_ptr + bumonsuu)->bangou);
は無理だろ
0951デフォルトの名無しさん
NGNG#include <stdio.h>
int main() { /* 引数がないことを示す表記は (void) で () は誤り、ブレースの開き方がK&Rや規格票と違う */
char str[] = "hello,world"; /* 初期値のある配列はなるべくstaticにせよ */
printf("str[0]の内容\t\t= %c\n" , *str); /* 入門用サンプルならprintf("%c", str[0]);が適切な表記 */
printf("str[0]のアドレス\t= %x" , str); /* 入門用サンプルならprintf("%x", &str[0]);が適切な表記 */
return 0;
}
0952デフォルトの名無しさん
NGNGまぁ、それ以前の問題なんだがな...。
長さ不定の場合は、リスト構造にするか、
ある程度の配列を確保して足りなくなったら伸長するのがいいっぽ。
先頭から順番にアクセスするだけなら前者、
[ ] 使ってランダムアクセスしたければ後者、だな。
0953デフォルトの名無しさん
NGNG%xを使っていることに対してはつっこまないのか?
0955デフォルトの名無しさん
NGNG参照のみの配列はなるべくstatic constにせよ。なら話は分かるけど。
0956デフォルトの名無しさん
NGNG初期値のある、一時利用の配列は?
0958デフォルトの名無しさん
NGNG新スレ
YBBで立つとは思わなかった
0959デフォルトの名無しさん
NGNGpo = &var; // poというカードにvarの住所を書き込む
*po = 1010; // poのカードに書いてある住所に1010を持っていく。
だろ?
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNG0962派手に埋め立て
NGNGなんで厨房って言われてるかしってるのぉ〜〜〜っ?(#⌒〇⌒#)キャハ
うーんとー、私ぃすっごくすっごく暇でー、\(⌒∇⌒)/
探してたら(◎_◎)なんとっ!☆彡(ノ^^)ノ☆彡ヘ(^^ヘ)☆彡(ノ^^)ノ☆彡
馬鹿みたいな掲示板♪を発見!!!!(^o^)//""" パチパチパチ
さ・む・い〜{{ (>_<;) }} ブルブルすごい数のレスがありますけど、
これ全部1人の方がレスしているんですか?(@@;)すごすぎ …
てなわけで、ついつい書いちゃったのらー(o^v^o) エヘヘφ(`∇´)φカキコカキコ♪
削除以来、出してくれるよねっ。(*^-^*) お・ね・が・い♪(* ̄・ ̄)ちゅ♪ッ
え?くれないのぉ〜?(;¬_¬)そんなのいやいや〜〜、ガ━━━(゚ロ゚)━━━ン
出してくれなかったら、( `_)乂(_´ ) 勝負! \(^o^)/
☆○(゜ο゜)o ぱ〜んち、☆(゜o(○=(゜ο゜)o バコ〜ン!!( ゚▽゚)=◯)`ν゚)・;'パーンチ
(>_<) いてっ!ダメ!! ゛o(≧◇≦*)oo(*≧◇≦)o″ダメ!!
(☆o☆)きゃ〜〜(@_@;)やられた〜〜(o_ _)o ドテッ ガ━━(゚Д゚;)━━ン!
(+_+) 気絶中。。。。・゚゚・o(iДi)o・゚゚・。うぇぇん <(゜ロ゜;)>ノォオオオオオ!! (゚□゚;ハウッ!
なあんて(#⌒▽⌒#)こんな私っ!σ(^_^)だけど、(///▽///)
お友達になってm(_ _)mくださいませませ♪('-'*)フフ ドガ━━━Σ(ll◎д◎ll)━━━━━ン
ということで。(^-^)vじゃあね〜〜〜♪(⌒0⌒)/~~ ほんじゃo(゜▽゜ヽ)(/゜▽゜)o レッツゴー♪
あ、怒ってる? に・げ・ろ〜C= C= C= C=┌(^ .^)┘
(*^-^*)ノ~~マタネー☆'.・*.・:★'.・*.・:☆'.・*.・:★
0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNGfor(1){
if(d==0.9) break;
d+=0.3;
}
!
0968デフォルトの名無しさん
NGNGwhile(1){
if(d==0.9) break;
d+=0.3;
}
!
0969デフォルトの名無しさん
NGNGwhile(1){
double d = di / 10.0;
if(di == 9) break;
di += 3;
}
0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNGconst char* c="埋めるんじゃねーの?";
int i=0;
while(i<29){
printf("%s\n",c);
i++;
}
retrun 0;
}
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNGなぁんだ、つまんねえ
0974デフォルトの名無しさん
NGNGなぁんだのなんだは何を期待してたんだ?
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNGいや、FPUのバグとかそっち系かと
0979デフォルトの名無しさん
NGNG{
if(anna <= 0) return 1;
return naan(naan(naan(anna - 2) / 2) >> 2);
}
0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG妹「これ以上はダメ。恥ずかしいもん」
兄「小学生のころはよく見せ合いっこしたろ」
妹「あのころはまだ子供だったから・・・。私もう中学生なんだよ」
兄「親父には見せたんだろ、オレにはダメだっていうのかよ!」
妹「だってパパは・・・」
兄「じれったいな。オレが開いてやるよ!」
妹「ダメ、お兄ちゃん、ああ・・・」
兄「すげぇ、小学生のときとは全然ちがう」
妹「やめて、そんなに開いたら全部見えちゃうよ・・・」
兄「なんか複雑になってる」
妹「あたりまえでしょ、中学生になって科目も増えてるんだから」
妹の通信簿を無理矢理見ようとする兄。
0983デフォルトの名無しさん
NGNG抜きますた
0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNG≡ (゚∀゚ )
≡ 〜( 〜)
≡ ノ ノ
0986デフォルトの名無しさん
NGNG(〜 )〜 ≡
\\ ≡
0987デフォルトの名無しさん
NGNGぬるぽ
0988デフォルトの名無しさん
NGNG>987ガッ
0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNGレス数が950を超えています。1000を超えると書き込みができなくなります。