Dev - C++ - Tengo un problema con la estructura

 
Vista:

Tengo un problema con la estructura

Publicado por Invalid Array (1 intervención) el 16/10/2022 19:55:51
Soy nuevo y tengo un problema en donde esta subrayado y negrita de "invalid array assignment"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
struct registro
{
	char nombre[50];
	int edad;
}registros[10];
 
int eliminar(int b)
{
	int a = 0;
	for(int i = 0; i < b; i++)
	{
		printf("|%d. ", i);
		printf("|%s", registros[i].nombre);
		gotoxy(15, i);
		printf("|%d |", registros[i].edad);
		printf("\n");
	}
	printf("\n\nIngrese el numero del registro a borrar: ");
	scanf("%d", &a);
	for(int i = a; i < b; i++)
	{
		registros[i].nombre = registros[i+1].nombre;
		registros[i].edad = registros[i+1].edad;
	}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Tengo un problema con la estructura

Publicado por Alfil (1444 intervenciones) el 17/10/2022 06:24:25
No puedes copiar dos cadenas de caracteres por asignación directa, para ello debes utilizar strcpy de la biblioteca cstring.

Otro tema es el bucle que planteas en la línea 20 a 24. En la línea 23, cuando realices la copia mediante strcpy, te saldrás de rango. Supongamos que 'a' vale 4 y 'b' 5. En la primera iteración asignarías a la posición 4 el valor de la posición 5; ¿pero que pasaría en la segunda iteración?; tratarías de asignar en la posición 5 el valor de la posición 6 que no existe.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar