2010-08-05 86 views
2

從託管的C++函數我想調用一個非託管函數,它需要一個'const char *'作爲參數。我需要一個pin_ptr來傳遞一個文字字符串嗎?

a)和b)正確嗎?對於b),我需要pin_ptr'你好'嗎?那麼a)呢?謝謝。

一個) myFunction("hello");

B)

char hello[10] ; 
strcpy(hello, "hello"); 
myFunction(hello); 

回答

0

兩者都是優良。你不需要在B額外strcpy)雖然只是做:

char hello[] = "hello"; 
myFunction(hello); 

現在變成幾乎相同的)。

+0

謝謝。爲什麼不需要固定它們?因爲他們在堆棧中? – 2010-08-05 15:07:47

+1

因爲它們不是動態分配的。 a)可能位於數據段的只讀部分,b)位於堆棧中。 – 2010-08-05 15:14:12

相關問題