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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Variable Corrupta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Variable Corrupta  (Leído 1,473 veces)
Kaalar

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Variable Corrupta
« en: 20 Mayo 2015, 14:28 pm »

Tengo un problema, que me hace lo que quiero, pero tras hacer la ejecución me marca un error que la variable "mat" esta corrupta, alguien me puede explicar porque. MUCHAS GRACIAS ANTES DE QUE RESPONDAN.

Código:
struct vec3{
float x;
float y;
float z;
};

typedef float mat[8];

void InitVec3(vec3 *v, int x,int y){
(*v).x = x;
(*v).y = y;
(*v).z = 0;
}
void InitMat3(mat m, float x0, float x1, float x2, float x3, float x4, float x5, float x6, float x7, float x8){
m[0] = x0; m[1] = x1; m[2] = x2;
m[3] = x3; m[4] = x4; m[5] = x5;
m[6] = x6; m[7] = x7; m[8] = x8;
}
void VaciarMat3(mat m){
m[0] = 0; m[1] = 0; m[2] = 0;
m[3] = 0; m[4] = 0; m[5] = 0;
m[6] = 0; m[7] = 0; m[8] = 0;
}

void SubstractVec3(vec3 v, vec3 u, vec3 *vec){
(*vec).x = v.x - u.x; (*vec).y = v.y - u.y; (*vec).z = 0.0;
}
void AddVec3(vec3 v, vec3 u, vec3 *vec){
(*vec).x = v.x + u.x; (*vec).y = v.y + u.y;
}

int ESAT::main(int, char **){
mat matriz;
vec3 vec;
vec3 vec2;
InitVec3(&vec, 12, 10);
InitVec3(&vec2, 10, 5);
AddVec3(vec, vec2, &vec);
InitMat3(matriz,1,1,1,2,2,2,0,0,0);
VaciarMat3(matriz);
ESAT::WindowInit(800, 600);
while (ESAT::WindowIsOpened() && !ESAT::IsSpecialKeyDown(ESAT::kSpecialKey_Escape)){
ESAT::DrawClear(0, 0, 0);
ESAT::DrawSetStrokeColor(255, 255, 255, 255);
ESAT::WindowFrame();
}
ESAT::WindowDestroy();
return 0;
}





En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Variable Corrupta
« Respuesta #1 en: 1 Junio 2015, 17:59 pm »

En C++ cuando declaras un array indicas su numero de elementos N y después accedes a estos utilizando los indices 0 .. N-1.

En tu caso el error se debe a que tratas de acceder al array como si este consistiera de nueve elementos cuando en realidad solo tiene ocho:
Código
  1. typedef float mat[8]; // array de 8 elementos, indices validos 0 .. 7

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[MOD] Pelicula corrupta Songoku
Multimedia
jesus091 2 1,288 Último mensaje 7 Febrero 2006, 05:33 am
por jesus091
Imagen jpg corrupta o dañada ayuda =S
Diseño Gráfico
washandwear 9 41,494 Último mensaje 14 Agosto 2007, 05:11 am
por FREDYGOMEZ
Particion corrupta Asus pc 1005p
Windows
Rastafree 1 2,949 Último mensaje 18 Octubre 2010, 19:48 pm
por Randomize
La justicia sitúa a Mediapro en una trama corrupta y criminal en EEUU
Noticias
El_Andaluz 0 883 Último mensaje 11 Abril 2020, 23:02 pm
por El_Andaluz
Foto Corrupta sin poder visualizar .
Diseño Gráfico
juanaarco 6 31,795 Último mensaje 25 Abril 2022, 15:45 pm
por juanaarco
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines