アプリ版:「スタンプのみでお礼する」機能のリリースについて

あるプログラムでGlobalAllocで指定バイト数を割り当てた変数を別の関数に引き渡したいのですが、やりかたが分からず困っております。
手元にある本はGlobalAllocについてすら書いておらず…
以下のようなプログラムになります。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
int math( int a, int b, unsigned short c ){
// 関数中身の演算に意味はない
unsigned short sum;
for( int i=a; i<b; i++ )
sum += c[i];
return sum;
}

int main(){
int Depth = 6;
int sum;
unsigned short *mem = GlobalAlloc( GPTR, Depth*sizeof(unsigned short) );

sum = math( 1, 3, mem ); // これな風にmemを値を引数として渡したい

return 0;
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

お分かりになる方がおられましたら、ご回答いただけると幸いです。
宜しくお願い致します。

A 回答 (1件)

GPTRでGlobalAlloc()しているのですから、普通のポインタと同じように扱えばいいだけかと。



>unsigned short *mem = GlobalAlloc( GPTR, Depth*sizeof(unsigned short) );
>sum = math( 1, 3, mem ); // これな風にmemを値を引数として渡したい
だったら、
>int math( int a, int b, unsigned short c ){

int math( int a, int b, unsigned short *c ){
でしょう。
# ただし、普通のポインタでも同じですがアドレス渡しただけではその先にどれだけのメモリがあるのかは判りませんのでご注意を。
# 今回の例なら…第2引数で渡しているような感じになりますかねぇ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!