Vishal Banerjee Ответов: 1

Как получить правильный вывод


/*Write a program in c to store employee details in a structure named employee.
Store address of employee in another structure named address which is nested .
Then print the total information of the employee uing the concept of nested structure.*/
#include<stdio.h>
#include<stdlib.h>
struct address
{
	char adrs[30];
};
struct employee
{
	int empid;
	char name[20];
	char mobno[10];
	struct address ads;
};
int main()
{
	int n,i;
	struct employee *p;
	printf("The size of the array =>");
	scanf("%d",&n);
	p=(struct employee*)malloc(n*sizeof(struct employee));
	printf("\nThe Employee details :\n");
	for(i=0;i<n;i++)
	{
		printf("\n\nenter employee id\n\n");
		scanf("%d",&p[i].empid);
		printf("\nname\n");
		scanf("%s",p[i].name);
		printf("\nmobile number\n");="" scanf("%s",p[i].mobno);
		printf("\naddress\n");
		scanf("%s",p[i].ads.adrs);
	}
	free(p);
	printf("\nthe details are :");
	for(i="0;i<n;i++)
		printf("\n\nemployee printf("%d",p[i].empid);
	printf("\n\nname\n");
	printf("%s",p[i].name);
	printf("%s",p[i].mobno);
	printf("\n\naddress\n");
	printf("%s",p[i].ads.adrs);
	return 0;
}


Что я уже пробовал:

Динамическое выделение памяти.
Использование структур.

Stefan_Lang

Я удалил эти токены spurios ="" из вашего кода и исправил форматирование.

Обратите внимание, что после исправления форматирования проблема отсутствующей скобки во втором цикле for, на которую указал Ричард, действительно выделяется! Поэтому: всегда следите за тем, чтобы правильно отступить ваш код.

1 Ответов

Рейтинг:
8

Richard MacCutchan

У вас есть следующая строка после того, как вы захватили всю информацию

free(p);

Таким образом, вы просто выбросили всю информацию, которую вы тщательно захватили.

Вы также пропускаете открытую скобку после Второй for заявление. Так и должно быть
for(i = 0; i < n; i++)
{


CPallini

5.

John R. Shaw

И конечная скобка "}". Кроме того, странное "" в цикле for остановит его компиляцию.

Хороший улов на " свободном(р)"; в противном случае бум!