¿Cómo usar un puntero en una función, en otro archivo CPP? -- ++ campo con pointers campo con header-files campo con local-variables camp Relacionados El problema

How to use a pointer in a function, in another cpp file?


0
vote

problema

Español

En mi archivo U.CPP, asigno valores en la matriz de caracteres de puntero en una función. Y luego declaré la función en mi archivo de encabezado V.H. Quiero acceder a los valores en la matriz de caracteres de puntero en otro archivo CPP llamado S.CPP. Si uso la variable global en U.CPP, puedo acceder a él desde S.CPP después de declararse en el archivo de encabezado con la etiqueta "Extern". No pude entenderlo ¿Cómo puedo acceder a la variable en la función? También necesito asignar valores de la matriz de puntero a la matriz de caracteres sin firmar [];

  //U.cpp char *ipAdd[4]; char *removeSpaces(char *str) {     int i = 0, j = 0;     while (str[i])     {         if (str[i] != ' ')             str[j++] = str[i];         i++;     }     str[j] = '';     return str; }  void dotSeperatorIP(char* y) {     removeSpaces(y);     char *ipAddr = y;     char *token = strtok(ipAddr, ".");     // Keep printing tokens while one of the      // delimiters present in str[].     int i = 0;     while (token != NULL)     {         ipAdd[i] = token;         cout << ipAdd[i] << endl;         token = strtok(NULL, ".");         i++;     } }  // S.cpp std::cout << ipAdd[0] << std::endl; // can't access, prints totally a different value  //V.h int vimonetsetting(); void dotSeperatorIP(char*y); char *removeSpaces(char *str);  extern char *ipAdd[];   

Editar: me las arreglé para acceder a la matriz cambiando la función. Publicado como respuesta. Gracias por los comentarios.

Original en ingles

In my U.cpp file I assign values in pointer char array in a function. And then I declared the function in my V.h header file. I want to access the values in pointer char array in another cpp file called S.cpp. If I use global variable in U.cpp, I can access it from S.cpp after declaring in header file with "extern" tag. I couldn't figure it out how can I access the variable in the function. Also I need to assign values of the pointer array to unsigned char array[];

//U.cpp char *ipAdd[4]; char *removeSpaces(char *str) {     int i = 0, j = 0;     while (str[i])     {         if (str[i] != ' ')             str[j++] = str[i];         i++;     }     str[j] = '\0';     return str; }  void dotSeperatorIP(char* y) {     removeSpaces(y);     char *ipAddr = y;     char *token = strtok(ipAddr, ".");     // Keep printing tokens while one of the      // delimiters present in str[].     int i = 0;     while (token != NULL)     {         ipAdd[i] = token;         cout << ipAdd[i] << endl;         token = strtok(NULL, ".");         i++;     } }  // S.cpp std::cout << ipAdd[0] << std::endl; // can't access, prints totally a different value  //V.h int vimonetsetting(); void dotSeperatorIP(char*y); char *removeSpaces(char *str);  extern char *ipAdd[]; 

EDIT: I managed to access the array by changing the function. Posted as answer. Thanks for the comments.

           
       
       

Lista de respuestas

0
 
vote

Respuesta: Cambié mi función DotseperatoriP como char ** que regresa. Luego, podría acceder a la matriz desde un archivo .CPP diferente llamando a la función.

  char** dotSeperatorIP(char* y) {     removeSpaces(y);     char *ipAddr = y;     char *token = strtok(ipAddr, ".");     // Keep printing tokens while one of the      // delimiters present in str[].      char resultArray[4];     int i = 0;     while (token != NULL)     {         ipAdd[i] = token;         //cout << ipAdd[i] << endl;         token = strtok(NULL, ".");         i++;     }      return ipAdd;     }   
 

Answer: I changed my dotSeperatorIP function as char** returning. Then, i could access the array from a different .cpp file by calling the function.

char** dotSeperatorIP(char* y) {     removeSpaces(y);     char *ipAddr = y;     char *token = strtok(ipAddr, ".");     // Keep printing tokens while one of the      // delimiters present in str[].      char resultArray[4];     int i = 0;     while (token != NULL)     {         ipAdd[i] = token;         //cout << ipAdd[i] << endl;         token = strtok(NULL, ".");         i++;     }      return ipAdd;     } 
 
 

Relacionados problema

1  Python Eval ignorando local, y buscando un global  ( Python eval ignoring local and looking for a global ) 
Cuando ejecuto este código en una nueva ventana de Shell de Python 3.4.1: event.deltaY = - 1/40 * originalEvent.wheelDelta; 111 Obtengo este error aunqu...

1066  ¿Se puede acceder a la memoria de una variable local fuera de su alcance?  ( Can a local variables memory be accessed outside its scope ) 
Tengo el siguiente código. title8 y el código solo está funcionando sin excepciones de tiempo de ejecución! La salida fue title9 ¿Cómo puede ser? ...

3  MySQL dinámico con variables locales  ( Dynamic mysql with local variables ) 
¿Cómo puedo usar las declaraciones de SQL dinámicas en la base de datos MySQL y sin usar las variables de sesión? En este momento tengo un código de este ti...

2  Función de emulación ¡Variables estáticas usando campos estáticos Threadstatic?  ( Emulating function static variables using threadstatic static fields ) 
Para algunos métodos estáticos, me doy cuenta de que es extremadamente conveniente usar una pequeña matriz para almacenar temporalmente los valores durante un...

0  Python referenciado Variable local antes de la asignación [duplicado]  ( Python referenced local variable before assignment ) 
Esta pregunta ya tiene respuestas aquí : usando variables globales en una función ...

0  ¿Puedes crear variables locales sin un `let '?  ( Can you create local variables without a let ) 
EG1 - Uso de un let (defun demo1 () (let ((a 1) (b 2)) ; these print fine (print a) (print b))) (demo1) ; these get "no value" errors, as ...

-2  ¿Cómo hago que mis variables sean accesibles a otras clases?  ( How do i make my variables accessible to other classes ) 
Los límites de las variables, el ancho y la altura están en las variables locales actuales. No puedo acceder a ellos desde otras clases o incluso acceder a el...

2  Gestión de la memoria de las variables locales de Delphi (compresión de la corriente con zlib)  ( Delphi local variables memory management stream compression with zlib ) 
He escrito esta función muy simple: <?xml version="1.0"?> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <appSettings>...

5  ¿Alguien puede explicar estas pocas líneas de MSIL?  ( Can someone explain these few lines of msil ) 
¿Puede alguien explicar estas pocas líneas de MSIL? ¿Por qué mueve un valor de la pila de evaluación a una variable local, solo para moverla de nuevo y devolv...

-3  Cómo acceder a la variable por su nombre  ( How to access variable by its name ) 
¿Cómo puedo acceder a la variable por su nombre? (ID, Name, ServiceID, Style)111 ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos