-1

私はソケットプログラミングアプリケーションを書いています。C++ と Java は両端です。私のシステムは Java であり、私のシステムを使用するアプリケーションは C++ を使用しています。

いくつかのデータを保持する C++ からポインターを受け取りました。それは変数または配列である可能性があります。ポインターに含まれる要素の数を示す別の変数 nrOfData があります。それに応じて、タイプ String または String[] のオブジェクトを埋める必要があります。 しかし、私の問題は、 nrOfData==1 であり、変数または配列(1つの要素を含む配列)の両方の可能性があり ます。ここでサンプルプログラムを提供しています(より類似したものを取得しようとしました)

#include<iostream>
using namespace std;


void func(string **strPtr)
{
  if(someCondition)
  {
     *strPtr = new string;
  }
  else
  {
     *strPtr = new string[1];
  }
}

int main()
{
   string *strPtr;
   func(&strPtr);
   /* I have to fill a variable and send to next level 
   strPtr contains one element in both cases. How could i determine whether
   I need to fill String or String[]*/
}

私は要件に厳密であるべきです。ご協力いただきありがとうございます !

4

1 に答える 1

-2

配列へのポインターまたは変数へのポインターを決定するのに役立つ「sizeof()」演算子を使用できます。配列名を「sizeof()」に渡すと、配列の合計サイズがバイト単位で示されますが、プレーンポインターを渡すとアドレス長が示されます。

于 2013-07-30T10:49:50.017 に答える