tipos - C++ Establecer valor para un char**
imprimir cadena de caracteres en c (2)
APISTRING * es un puntero a un puntero a char. Tiene una dirección que contiene la dirección del primer carácter de la cadena en la memoria.
Consulte esta pregunta para obtener más información sobre los punteros dobles en C / C ++.
Para asignar a la cadena, necesitarás hacer *outputString = "string"
Estoy tratando de asignar un valor a una variable char**
. En mi foo.h
he definido un par de variables como
#define APIOCTET int
#define APILONG long
#define APICHAR char
#define APISTRING char*
Ahora en mi foo.cpp
estoy intentando usar un método donde
APILONG apiInitialize(APISTRING filePath, APISTRING* outputString)
{
//open text file to where output will be printed
//do other stuff, etc..
//return result;
}
Me gustaría asignar un valor a mi APISTRING* outputString
pero no puedo entender cómo hacerlo. He intentado muchas cosas que son básicamente una variación del siguiente código
APISTRING error = "error";
APISTRING other = "string";
APISTRING charArr[] = { error, other, error };
APISTRING *charArr2[] = { charArr };
errorString = *charArr2;
Además, no estoy 100% claro sobre qué es exactamente APISTRING* outputString
. Cuando intento compilarlo, aparece un mensaje de error donde dice que es un char**
. ¿Es una matriz 2D? ¿Un puntero a una matriz de caracteres? ... Pero lo más importante, ¿cómo asignaría un valor para esta variable? Gracias por adelantado.
APISTRING * outputString se procesará previamente y se reproducirá en tiempo de compilación como la cadena de salida de char **. Por lo tanto, outputString será doble puntero, por lo tanto, debe hacerlo así (debajo del código). Combiné ambos .h y cpp juntos por simplicidad.
#include<iostream>
using namespace std;
#define APIOCTET int
#define APILONG long
#define APICHAR char
#define APISTRING char*
APILONG apiInitialize(APISTRING filePath, APISTRING* outputString)
{
APISTRING getIt = *outputString;
cout<<" "<<getIt<<endl;
}
int main()
{
APISTRING str = "hello";
APISTRING* outputString = &str;
APILONG val = apiInitialize("world", outputString );
system("PAUSE");
return 0;
}
Yo recomendaría usar std :: string, será fácil modificarlo con ciertos comportamientos. Espero que esto ayude.