C言語

Intel Compilerが2次元配列を動的に取るmallocを食べてくれないでござる

gccではいけるのに、何故がIntel Compilerでは食ってくれない。 #include <stdlib.h> int main () { double **X; int i; X = (double**) malloc (sizeof (double*) * 10); for (i = 0; i < 10; i++) X [i] = (double*) malloc (sizeof (double) * 10); return 0; }でい</stdlib.h>…

構造体をmallocする

最近段々純粋な数値計算からデータの整理ぽいのとか、統計処理ぽいのとかやるようになり、もう少しアカデミックな計算をしたいなあと思いつつ、こういうのはこういうので、言語についての知識が増えるので良いかもと思ったりする。そして純粋にプレーヤーと…

ソースの分割

なげープログラムなので、分けてみました。これまで全部一緒の所に書いてたので、プログラム一本で、5000行とか、バカなことになってました。 基本的に、メインのプログラムと、サブのプログラムを用意すれば良いみたいです。あとは、必要に応じて、諸々のプ…

構造体を参照渡して関数に渡したい

偏微分方程式を解いてるとごちゃごちゃと中間変数が出てきて泣きたくなるので、構造体にまとめましたとさという話です。例えば、衝撃波感の問題を解くのに特性曲線なり、CIPなり、Roeなりで解くとしてごっちゃりと変なのが出て来る訳です。未知変数をRho、U…

ある関数に構造体のポインタを渡して、返り値に構造体のポインタを渡すような関数を身に付けたいです

構造体Qというのを要素数がNNの配列がいくつか入った形で、 typedef struct Vars { double U [LL]; double P [LL]; } VARS;みたいな定義をする。 で、それをmain分でQとQxとかつくって、QxをQの導関数にして、それを求める関数dQdxを作る。けどそんなことで…

構造体の触り

えと、大量にある変数を関数に渡すのにダラダラ引数書き連ねるのは美しくないので構造体を使おうと思ったのでした。だって、変数UとPとUxとPxとかいうdouble型の1次元配列を、関数Funcに渡して微分さすには、 void Func (double *U, double *Ux, double *P, …

コアダンプ追跡

大体俺がよく出すバグはコアダンプなので、デバッガを使ってそれを追跡する方法について。 コンパイルするときに、 cc -g -O0 hoge.cにしてコンパイル。 ついでに、 $ ulimit -c unlimitedにしてコアダンプをださせるようにする。そして、a.outを実行。で、…

メモリの動的な確保

主に自分が忘れない用。 こう書くと格好いい感じだけど、mallocしてるだけである。ヒーブ領域よりもスタック領域の方がでかいらしいので、プログラムの頭で、double Hoge[NN]とかして、そんな沢山配列切れないよって言われたらmallocとか、極めていい加減な…