- 1 名前:ぬ ◆NUNUK382Dk mailto:sage [2007/12/27(木) 20:32:47 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.45【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1197090562/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 378 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:15:56 ]
- >>376-377
ありがとうございました。 別の方法で管理することにします。
- 379 名前:デフォルトの名無しさん [2008/01/06(日) 23:36:51 ]
- C言語の質問です
main関数で用意したdouble *xを別の関数の中でmallocを使ってサイズを決めることと数値の代入を行いたいのですが上手く出来ません どのようにすればいいでしょうか 以下は自分で作ったものの該当部分だけを抜き出し簡略化したものです #include<stdio.h> #include<stdlib.h> void f(double *); void main(void) { double *x; f(x); free(x); } void f(double *a) { a=(double *)malloc(sizeof(double)*3); if(a==NULL){ printf("メモリ確保失敗\n"); exit(1); } a[1]=2.0; }
- 380 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:40:52 ]
- ポインタを関数に渡しているといってもポインタという値を渡してるだけ。
そのポインタを関数の中で書き換えてもmainじゃ影響されないから引数消して返り値使うとか、 ポインタのポインタを引数でとるかのどっちか。
- 381 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:41:45 ]
- >>379
そりゃ、上手くいかんわ。 void f(double **); void main(void) { double *x; f(&x); free(x); } void f(double **a) { *a=(double *)malloc(sizeof(double)*3); if(*a==NULL){ printf("メモリ確保失敗\n"); exit(1); } *a[1]=2.0; } 全く試してないけど、これでどうよ?
- 382 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:01:18 ]
- >>381
俺も全く試してないけど >*a[1]=2.0; なんか嫌な臭いがする。 優先順位、これでよかったっけ?
- 383 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:04:54 ]
- >>382
(・A・)イクナイ!!
- 384 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:07:09 ]
- *a[1]は*(a[1])だったはずだな。
やりたいのは(*a)[1]か?
|

|