elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con parámetros que recibe main(int argc, char *argv[])
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con parámetros que recibe main(int argc, char *argv[])  (Leído 2,430 veces)
antkk

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Problema con parámetros que recibe main(int argc, char *argv[])
« en: 6 Junio 2015, 12:21 pm »

Buenas, tengo un problema con argv en mi main. El código es este:

Código
  1. #include <iostream>
  2. #include "matriz.h"
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc,char *argv[]){
  7.  
  8. if(argc == 1){
  9.  
  10. Matriz matriz;
  11. cin >> matriz;
  12. matriz.Escribir("datos.txt");
  13.  
  14. cout << matriz;
  15.  
  16.  
  17. }
  18.  
  19. else if(argc == 2){
  20.  
  21. Matriz matriz;
  22. cout << "Estoy aqui." << endl;
  23. cin >> matriz;
  24. char nombre[20];
  25. nombre=argv[1];
  26.  
  27. matriz.Escribir(nombre);
  28.  
  29. cout << matriz;
  30. }
  31. }

El problema se produce al compilar:

Código
  1. main.cpp: In function ‘int main(int, char**):
  2. main.cpp:26:9: error: incompatible types in assignment of ‘char*’ to ‘char [20]
  3.   nombre=argv[1];
  4.         ^
  5. make: *** [main.o] Error 1
  6.  

En el caso de que pudiera ejecutar, argv[1] contiene "datos.txt"

Un saludo.


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Problema con parámetros que recibe main(int argc, char *argv[])
« Respuesta #1 en: 6 Junio 2015, 14:08 pm »

¿Trabajaste alguna vez con punteros?

argv es un char**. argv[1] es un char*, un puntero a char. Si quieres copiar una cadena, o la copias a mano, o usas funciones como strcpy().

Salvo que sepas planeamente lo que quieres hacer, nunca pongas char* = char*. No estás copiando los datos, solo estás copiando la dirección de memoria. Si uno de los dos desaparece, el otro también desaparecerá.

Ya que usas C++, puedes usar simplemente string.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Parámetros en main y función Sleep()
Programación C/C++
Saberuneko 5 4,939 Último mensaje 14 Junio 2012, 16:07 pm
por 0xDani
Duda con parámetros argc y argv
Programación C/C++
peternash 3 2,443 Último mensaje 11 Agosto 2013, 14:25 pm
por Eternal Idol
crear mi propio char **argv
Programación C/C++
fafafa01 3 2,056 Último mensaje 22 Junio 2016, 01:14 am
por AlbertoBSD
int main (int argc, char* argv[])
Programación C/C++
Locura_23 3 3,081 Último mensaje 23 Mayo 2021, 22:50 pm
por Locura_23
La derivada de la función int main(argc, char* argv[]) es igual a cero.
Programación C/C++
massif.exe 7 3,944 Último mensaje 12 Julio 2021, 11:48 am
por fzp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines