Ir al contenido

publicidad

Foto

Duda array C++


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
8 respuestas en este tema

  • marvin_ch

  • Adramalech

  • vida restante: 100%
  • Registrado: 24 ago 2007
  • Mensajes: 925
#1

Escrito 11 agosto 2010 - 16:50

Hola, no se si debería de ir aqui, pero es que no he encontrado ningun sbforo más apropiado.

Estoy iniciandome en C++, y estoy utilizando el Dev C++ 4.9. La cosa es que se como hacer un array, pero quiero operar con los elementos que haya dentro de el, y no consigo dar con la tecla...


Saludos y gracias

  • Koradrell

  • Antediluvian

  • vida restante: 100%
  • Registrado: 05 ene 2004
  • Mensajes: 259
#2

Escrito 11 agosto 2010 - 18:20

En el siguiente codigo, declaro un array de enteros de tamaño 10, lo inicializo y pinto por pantalla sus elementos;

[code:1]

//Aqui declaras el array de tamaño 10
int * array = new int[10];

//En este bucle for, inicializas cada elemento del array con el valor de la variable i en cada iteración. En el array, el parametro entre corchetes indica el indice del elemento dentro del array, empezando por 0 y acabando en 9 en este caso (en c++, los arrays se indexan de 0 a TAMAÑO - 1). El array podria inicializarse en el momento en que lo declaras, pero te lo pongo así para que veas mas claro como se accede.
for(int i = 0; i < 10; i++)
{
array[i] = i;
}

//En este bucle for, saco por pantalla ( consola ), cada elemento del array, empezando por el elemento 0 y acabando por el 9.
for(int i = 0; i < 10; i++)
{
cout << array[i] << endl;
}


[/code]

La salida de este codigo seria la siguiente:
[code:1]
0
1
2
3
4
5
6
7
8
9
[/code]

Koradrell.

  • marvin_ch

  • Adramalech

  • vida restante: 100%
  • Registrado: 24 ago 2007
  • Mensajes: 925
#3

Escrito 11 agosto 2010 - 21:10

Estupendo!, muchas gracias.

¿Me podrias explicar ahora como hacer operaciones con todos los elementos del array?como una simple suma por ejemplo.

Muchas gracias por adelanto

  • marvin_ch

  • Adramalech

  • vida restante: 100%
  • Registrado: 24 ago 2007
  • Mensajes: 925
#4

Escrito 11 agosto 2010 - 22:30

Ahora es peor todavia...no se que le pasa ahora al dev pero no me deja ejecutar ningun programa. Da igual lo simple que sea, lo compila pero cuando le doy a ejecutar me salta la consola en negro y un mensaje de error de windows.
Le doy a depurar y me dice que hay un error de segmentacion o algo asi...

Alguien sabe alguna solucion??por si sirve, tengo el windows 7 de 64 bits...

#5

Escrito 11 agosto 2010 - 23:26

segmentation fault? Eso es porque estas intentando acceder a un indice que no existe. Si tu array la declaras asi:

int array[10];

Las posiciones validas son de la "array[0]" a la "array[9]". No intentes acceder a la "array[10]" porque te petara. Los posiciones empiezan a contar en 0.

Eso son dudas bastante basicas. Pegale un vistazo a algun manual para enterarte bien de como funcionan los arrays, por ejemplo: http://www.cplusplus...utorial/arrays/
o en castellano: http://c.conclase.net/curso/?cap=010

Un saludo

  • Koradrell

  • Antediluvian

  • vida restante: 100%
  • Registrado: 05 ene 2004
  • Mensajes: 259
#6

Escrito 12 agosto 2010 - 07:18

Como dice el forero de arriba, pruba de buscar un minitutorial de c/c++ basico en el google. El problema que tienes como bien dice el companyero, es que estas accediendo al array incorrectamente, y por lo tanto accediendo a una zona de memoria prohibida.

Si no consigues solucionarlo, postea aqui el trozo de codigo que te peta y intentaremos solucionartelo, pero es mejor que intentes hacerlo por tu mismo dado que es así como se aprende :P.

Koradrell.

  • Rox

  • GRANDIS SUPERNUS

  • vida restante: 100%
  • Registrado: 12 dic 2001
  • Mensajes: 27.588
#7

Escrito 12 agosto 2010 - 12:02

Si te estás iniciando en C++, te recomiendo un libro que tenía en la bibliografía de una asignatura de la universidad hace años y está francamente muy bien:

http://users.dsic.up...allo/libro_c /

  • marvin_ch

  • Adramalech

  • vida restante: 100%
  • Registrado: 24 ago 2007
  • Mensajes: 925
#8

Escrito 12 agosto 2010 - 12:37

Muchas gracias a todos, voy a intentar resolverlo yo mismo y sino lo pongo aqui.

Buscaré el libro porque me hace muuucha falta, di programacion en primero con turbo c++ 4.5 de Borland, pero se me ha olvidado todo...y estoy viendo que me va a hacer falta y quiero ir preparado.

Sigue abierto hasta que vuelva a avisar. Gracias a todos otra vez

  • zezoyo

  • Yojimbo

  • vida restante: 100%
  • Registrado: 19 nov 2005
  • Mensajes: 938
#9

Escrito 08 septiembre 2010 - 19:30

En el siguiente codigo, declaro un array de enteros de tamaño 10, lo inicializo y pinto por pantalla sus elementos;

[code:1]

//Aqui declaras el array de tamaño 10
int * array = new int[10];

//En este bucle for, inicializas cada elemento del array con el valor de la variable i en cada iteración. En el array, el parametro entre corchetes indica el indice del elemento dentro del array, empezando por 0 y acabando en 9 en este caso (en c++, los arrays se indexan de 0 a TAMAÑO - 1). El array podria inicializarse en el momento en que lo declaras, pero te lo pongo así para que veas mas claro como se accede.
for(int i = 0; i < 10; i++)
{
array[i] = i;
}

//En este bucle for, saco por pantalla ( consola ), cada elemento del array, empezando por el elemento 0 y acabando por el 9.
for(int i = 0; i < 10; i++)
{
cout << array[i] << endl;
}

// Liberando memoria
delete array;
// Memoria liberada

[/code]

La salida de este codigo seria la siguiente:
[code:1]
0
1
2
3
4
5
6
7
8
9
[/code]

Koradrell.


Necesitarás liberar la memoria ahí ;)


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
publicidad