spBase APIリファレンス

メモリ管理

メモリを確保したり,解放したりするための関数です. メモリを確保したり,解放したりする関数の名前は,基本的にxで始まります.

xspMalloc

目的
メモリを確保します.

書式
#include <sp/spMemory.h> char *xspMalloc(int nbytes);

引数
nbytes
確保するメモリのサイズを指定します.

戻り値
割り当てられたメモリブロックを示すポインタが返ります.

説明
この関数で確保したメモリは,xspFreeを用いて解放して下さい.

関連項目
xspFree

xspFree

目的
メモリを解放します.

書式
#include <sp/spMemory.h> xspFree(char *p);

引数
p
xspMallocなどにより確保されたメモリブ ロックを示すポインタを指定します.

関連項目
xspMalloc, xspRemalloc, xspAlloc, xspRealloc

xspRemalloc

目的
メモリブロックのサイズを変更します.

書式
#include <sp/spMemory.h> char *xspRemalloc(char *p, int nbytes);

引数
p
すでに確保されたメモリブロックを示すポインタを指定します.NULL の場合は,新たにメモリが確保されます.
nbytes
メモリのサイズを指定します.

戻り値
サイズが変更されたメモリブロックを示すポインタが返ります.

関連項目
xspMalloc, xspFree

xspAlloc

目的
メモリを確保するためのマクロです.

書式
#include <sp/spMemory.h> xspAlloc(n, type);

引数
n
確保するメモリの長さを指定します.確保されるメモリのサイズは,n * sizeof(type)となります.
type
確保されるメモリの型を指定します.shortlongfloatdoubleなどを直接指定して下さい.

戻り値
割り当てられたメモリブロックを示すポインタが返ります.

説明
この関数で確保したメモリは,xspFreeを用 いて解放して下さい.

関連項目
xspFree

xspRealloc

目的
メモリブロックのサイズを変更するためのマクロです.

書式
#include <sp/spMemory.h> xspRemalloc(p, n,type);

引数
p
すでに確保されたメモリブロックを示すポインタを指定します.NULL の場合は,新たにメモリが確保されます.
nbytes
メモリの長さを指定します.変更後のメモリのサイズは,n * sizeof(type)となります.
type
確保されるメモリの型を指定します.shortlongfloatdoubleなどを直接指定して下さい.

戻り値
サイズが変更されたメモリブロックを示すポインタが返ります.

関連項目
xspAlloc, xspFree

xspIMatAlloc, xspSMatAlloc, xspLMatAlloc, xspFMatAlloc, xspDMatAlloc

目的
二次元配列として使用できるメモリを確保します.

書式
#include <sp/spMemory.h> int **xspIMatAlloc(int row, int col); short **xspSMatAlloc(int row, int col); long **xspLMatAlloc(int row, int col); float **xspFMatAlloc(int row, int col); double **xspDMatAlloc(int row, int col);

引数
row
行の数を指定します.
col
列の数を指定します.

戻り値
割り当てられたメモリブロックを示すポインタのポインタが返ります.これは, 二次元配列と同様に使用して構いません.

説明
この関数で確保したメモリは,関数に応じて,xspIMatFree, xspSMatFree, xspLMatFree, xspFMatFree, xspDMatFreeを用いて解放して下さい.

関連項目
xspIMatFree, xspSMatFree, xspLMatFree, xspFMatFree, xspDMatFree

spIMatFree, spSMatFree, spLMatFree, spFMatFree, spDMatFree

目的
xspIMatAlloc, xspSMatAlloc, xspLMatAlloc, xspFMatAlloc, xspDMatAllocにより割り当てたメモリを解放します.

書式
#include <sp/spMemory.h> void xspIMatFree(int **mat, int row); void xspSMatFree(short **mat, int row); void xspLMatFree(long **mat, int row); void xspFMatFree(float **mat, int row); void xspDMatFree(double **mat, int row);

引数
mat
xspIMatAllocなどにより確保されたメモリブ ロックを示すポインタのポインタを指定します.
row
確保されている行の数を指定します.確保した場合の行数とこの数が異なる場合 の動作は保証されません.

関連項目
xspIMatAlloc, xspSMatAlloc, xspLMatAlloc, xspFMatAlloc, xspDMatAlloc

xspStrClone

目的
文字列の複製を作成します.

書式
#include <sp/spMemory.h> char *xspStrClone(char *string);

引数
string
複製したい文字列を指定します.

戻り値
複製された文字列が返ります.この戻り値は,xspFreeを用いて解放して下さい.

関連項目
xspFree

spArrayCopy

目的
配列をコピーするためのマクロです.

書式
#include <sp/spMemory.h> spArrayCopy(p1, p2, n, type);

引数
p1
コピー先のポインタを指定します.
p2
コピー元のポインタを指定します.
n
コピーする長さを指定します.コピーされる長さは,n * sizeof(type)となります.
type
データ型を指定します.shortlongfloatdoubleなどを直接指定して下さい.

xspStrReplace

目的
文字列の複製を行うマクロです.

書式
#include <sp/spMemory.h> spStrReplace(s1, s2);

引数
s1
複製先のポインタを指定します.すでにs1のメモリが確保されている 場合には,それが解放されます.配列は使用してはいけません.このマクロによって s1のメモリが確保されるため,使用後は,xspFreeにより解放して下さい.また,s2NULLの場合は,s1は,NULLとなります.
s2
複製したい文字列を指定します.

関連項目
xspStrClone

Last modified: "2013-06-23 18:47:18 hideki"