Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2016, 15:49   #1
Павел2517
Пользователь
 
Регистрация: 05.03.2016
Сообщений: 11
Радость Задание со структурой на Си, Stack around the variable was corrupted

В конце программы выдает такую ошибку : "Run-Time Check Failure #2 - Stack around the variable 'd' was corrupted." Не могу найти причину..
Код:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <string.h>

struct Phone
{
	char proizvodit[100];
	double diagonal;
	int chasi;
};

void Input(Phone *s, int n)
{
	for (int i = 0; i < n; i++)
	{
		printf("Введите название телефона: ");
		scanf_s("%s", &s[i].proizvodit, 20);
		fflush(stdin);

		printf("Введите диагональ телефона: ");
		scanf_s("%lf", &s[i].diagonal);

		printf("Введите кол-во часов работы телефона без зарядки: ");
		scanf_s("%d", &s[i].chasi);
		printf("\n");
		fflush(stdin);
	}
}

void Nahojdenie(Phone *s, int n)
{
	for (int i = 0; i < n; i++)
	if (s[i].diagonal > 5)
		printf("Телефон с диагональю больше 5: %s\n", s[i].proizvodit);
}

int OutKol(Phone *s, int n)
{
	int k = 0;

	for (int i = 0; i < n; i++)
	if (s[i].chasi > 120)
		k++;

	printf("Кол-во телефонов работающих больше 120 часов: %d", k);

	return k;
}

void Nachod(Phone *s, char *test, int n)
{
	for (int i = 0; i < n; i++)
	{
		if (!(strcmp(test, s[i].proizvodit)))
		{
			printf("Диогональ телефона: %f\n", s[i].diagonal);
			printf("Кол-во часов работы: %d\n", s[i].chasi);
		}
	}
}
void main(void)
{
	setlocale(LC_ALL, "Russian");

	int const n = 2;
	char test[30];
	Phone d;

	printf("\t\t\t***Введите данные***\n\n");

	Input(&d, n);
	Nahojdenie(&d, n);
	printf("\n");
	OutKol(&d, n);

	printf("\n\nВведите производителя: ");
	gets_s(test, 20);

	Nachod(&d, test, n);

	_getch();
}

Последний раз редактировалось Павел2517; 08.04.2016 в 16:00.
Павел2517 вне форума Ответить с цитированием
Старый 08.04.2016, 16:02   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вы объявили одну структуру, а вводите 2
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка Stack around the variable '' was corrupted. sidestep Общие вопросы C/C++ 5 10.03.2012 20:27
Бинарные файлы и Stack around the variable was corrupted Borsch Общие вопросы C/C++ 3 04.06.2011 16:54
Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted. Gidross Общие вопросы C/C++ 9 28.12.2010 15:22
un-time check failure #2-stack around the variable 't' was corrupted Despar Помощь студентам 1 13.05.2010 10:17
run-time check failure #2-stack around the variable 't' was corrupted Despar Общие вопросы C/C++ 1 13.05.2010 08:33