소켓 프로그래밍 응용 프로그램을 작성 중입니다. C++과 Java를 두 가지 목적으로 사용합니다. 내 시스템 은 Java이고 내 시스템을 사용하는 응용 프로그램은 C++을 사용합니다.변수에 대한 포인터와 한 요소의 배열에 대한 포인터
일부 데이터를 보유하는 C++에서 포인터를받습니다.이 포인터는 변수 또는 배열 일 수 있습니다. 포인터에 포함 된 요소 수를 나타내는 다른 변수 nrOfData가 있습니다. String 또는 String [] 유형의 Object를 적절히 채워야합니다. 하지만 내 문제가 nrOfData == 1이 다음 가변적이고 또는 배열 (배열을 포함하는 하나 개의 요소) 여기 샘플 프로그램을 제공하고 모두있는 posibility가되어
#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[]*/
}
(더 유사 하나를 얻기 위해 노력했다)
나는 엄격해야한다. 도움 주셔서 감사합니다.
먼저 'new'를 사용하지 않습니다. 그런 다음 배열과 비 배열을 혼합해야한다는 요구 사항을 삭제할 수 없습니까? 그것은 당신이 필요로 할 것보다 훨씬 더 많은 문제를 일으 킵니다. –
아마도'std :: vector's를 사용하고 주위 사람들에게 참조를 건네 주시겠습니까? 벡터는 0 개 이상의 요소를 포함 할 수 있으며 요소의 수를 얻으려면'std :: vector :: size' 만 사용할 수 있습니다. – m01
답변 해 주셔서 감사합니다. 아니요. 요구 사항을 삭제할 수 없습니다. 그리고 위의 프로그램은 내가 사용하고있는 프로그램이 아닙니다. 비슷한 프로그램을 작성했습니다. 내가 new 또는 malloc을 사용했는지 무시하십시오. – Srikanth