PostgreSQL8.4でECPGを使用しています。動的に割り当てられた「null」で終了する整数の配列へのポインタを含む構造体を受け取る関数があります(この場合、nullは-1と定義しました。これは、次のように負の値は必要ないためです。
#define INT_ARR_NULL -1
struct foobar {
int * foo;
int * bar;
};
void init_foobar( struct foobar * fb ) {
fb->foo = (int*) calloc( 11, sizeof(int) );
fb->bar = (int*) calloc( 11, sizeof(int) );
fb->foo[10]=INT_ARR_NULL;
fb->bar[10]=INT_ARR_NULL;
int i;
for( i = 0; i < 10; ++i ) {
fb->foo[i] = i;
fb->bar[i] = i;
}
}
void print_foo( struct foobar * fb ) {
int * cursor = fb->foo;
while( *cursor != INT_ARR_NULL ) {
printf( "%d ", *cursor );
++cursor;
}
}
配列が通常どのように機能するかを示すために、print_foo関数を含めました。ECPGを使用してこれらの値をPostgreSQL列の配列に挿入したい場合、どうすればよいですか?