忍者ブログ
日々の研究生活のメモ書きなど
Numerical Recipes in Cというものがある。



C言語を学ぶなら読んどけって一冊らしい・・・

巻末によく使う配列の確保に関するルーチンをまとめたものがある(nrutil.h / nrutil.c)


これの使い方メモ

参考ページ
http://macwiki.sourceforge.jp/wiki/index.php/NumericalRecipes

一次元配列の場合は

double *hoge
hoge = dvector(0, 10);

/* hogeを使った何か */

free_dvector(0, 10);


でおk
他の型なら、適時修正

領域を確保する配列はhoge[0]からhoge[10]の10個 11個
(この本では要素の0個目は紛らわしいからやめとけ、って書いてます)

最後の行は確保した領域を解放する



a[0] = *(a)
a[i] = *(a+i)

であることも覚えておくと便利だろう



二次元配列では


double **a

a = matrix(0,10,0,10);

for(i=0;i<11;i++){
for(j=0;j<11;j++){
a[i][j] = i*10+j;
printf("%lf ", a[i][j]);
}
printf("\n");
}

free_matrix(a, 0, 10, 0, 10);



たぶんこんな感じでおk


a[0][0] = **(a)
a[i][j] = *(a[i]) = *(*(a+i)+j)

であることも覚えておくと便利だろう
PR
プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞、登山
出身:大阪府の南の田舎
自己紹介:
#include <stdio.h>
#include "MyProfile.h"

#define TWITTER coffee_pote

#ifdef RICH_FLAG
// ↑いつも支援いただきありがとうございます m(_ _)m
#define WISH_LIST
amazonのほしい物リスト
#endif


int main(void){

printf("\n");
printf("あけましておめでとうございます\n");
printf("今年もどうぞよろしくお願いします\n");
printf("\n");
printf("猿でもわかるgnuplot を執筆中\\
少し追記しました\n");
/* 最終更新 2018/01/01 */
return 0;

}
カウンター
ブログ内検索
ツイートするボタン
Flickr

Template "simple02" by Emile*Emilie
忍者ブログ [PR]