0

UNIXプラットフォームのCコードで次の問題が発生しています。

 function1(short *a)
 {
    EXEC SQL begin declare section;
          short a1;
    EXEC SQL end declare section;

    EXEC SQL fetch quey_cursor
     into
          :a1;

    // More processing

    *a = a1;

 }

問題は、プログラムがこの行で終了していることです

  *a = a1;

デバッグを取得できません。

私は本当に助けに感謝します

ありがとう

4

2 に答える 2

1

* aへの割り当てが機能するには、shortへの有効なポインタをfunction1()に渡す必要があります。エラーは、function1()が呼び出された場所にあります。

于 2012-05-21T16:37:41.140 に答える
1

あなたのコメントから、あなたはポインタにメモリを割り当てていません。したがって、それをとして逆参照しようとすると*a=a1、クラッシュします。これは単一のポインタであるため、次のように宣言して使用できます。

function() { 
   short a; 
   function1(&a);
}

渡された宣言と引数の違いに注意してください。

于 2012-05-21T16:37:45.970 に答える