| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Jue 27 Feb, 2020 9:54 am Asunto: Error dependiendo del Pc. |
|
|
Buenas..
He dimensionado un vector Bitset de la forma:
| Código: | bitset <4782969> XX; |
Hasta ahora todo correcto, he cambiado de pc y me da el siguente error al compilar:
[C++ Error] _bitset.h(89): E2021 Array must have at least one element
En la linea
Alguna idea Gracias. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 28 Feb, 2020 9:02 am Asunto: |
|
|
Intenta declararlo así:
| Código: |
bitset <4782969> XX[]; // opción uno
bitset <4782969> XX(0xffff); // opción dos
XX[5] = true; |
No estas asignando espacio en memoria, con la forma que declaras, indicas el tamaño que debe tener, pero no estas reservando un espacio en memoria.
Saludos!! _________________
 |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Vie 28 Feb, 2020 10:58 am Asunto: |
|
|
Gracias por contestar..
He probado:
| Código: | bitset <4782969> XX(0xffff); // opción dos |
al compilar me salta expected
He optado por la opcion
| Código: | bitset <4782969> XX[]; |
pero al compilar me saltan los siguientes errores:
en
| Cita: |
int Index =0;
...
if(!XX[Index])
|
E2093 'operator!' not implemented in type 'bitset<4782969>' for arguments of the same typ
y en
| Código: |
int i;
...
if(XX[i]) |
E2096 Illegal structure operation
Alguna idea Gracias. |
|
| Volver arriba |
|
 |
Alpinador Lt Cmdr

Registrado: 21 Abr 2014Mensajes: 123
|
Publicado: Jue 19 Mar, 2020 4:29 pm Asunto: |
|
|
no se exactamente que es un bitset pero un array se declara mediante el identificador de tipo de dato y luego el nombre y el numero de elementos entre corchetes
si por ejemplo como veo ahi, intentas utilizar un XX = true por lo que supongo que es booleano....tendrias que declararlo asi
bool XX[5];
y luego asignarle valores a los elementos del 0 al 4 que es como lo numera el ordenador siempre empezando desde 0
o sea: XX[2] = true; XX[4] = false; etc etc
luego aqui:
int i;
...
if(XX[i])
no veo que i tome ningun valor ni que el if compare con nada lo cual puede que no este permitido para ese tipo de estructura.....tendrias que probar asignandole un valor a i y luego hacer la comparacion
por ejemplo
int i =2;
if(XX[3] == 2) ...// el elemento del array es igual a 2 pero claro...siendo un array de enteros claro, no booleano
no es por nada, pero antes de ponerte a programar cosas al tuntun, deberias de estudiar primero el manual de programacion del lenguaje C y algo de estructuras de datos.....lo digo porque es como se hacen las cosas |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Dom 29 Mar, 2020 12:22 pm Asunto: |
|
|
Gracias por contestar..
Si he asignado valores al vector (de echo en otro Pc me funciona perfectamente) , indagando por la web creo que es un problema de versiones..
Gracias Otra Vez |
|
| Volver arriba |
|
 |
|