2012-05-21 30 views
0

我在UNIX平臺上的C代碼中遇到以下問題。將變量的內容分配給不使用C和proC的指針

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; 

退出,我無法得到(1)調試。

我真的很感謝所有幫助

感謝

+0

你如何調用function1? –

+0

這是如何完成的: function() { short * a; function1(a); } – wassim

+0

應該是function1(&a)。 – starbolin

回答

1

從您的評論中,您沒有爲指針分配內存。所以,當你試圖將其解引用爲*a=a1時,它會崩潰。因爲,這只是一個指針,你可以簡單地聲明和使用它作爲:

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

通知,聲明和參數傳遞的差異。

+0

它的工作感謝:) – wassim

1

你必須傳遞給功能1()一個有效的指針短的分配*一個工作。該錯誤是在調用function1()的地方。