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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2011, 14:28   #1
promt
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 32
По умолчанию ошибка при запуске

Возникла проблема при передачи структуры в качестве аргумента ф-и.
Нужно узнать В какой четверти лежит точка. Сам код написал и кампилируется без ошибок, но при запуске когда ввожу X программа сразу же выбивает. Не пойму в чем дело. Помогите исправить пожалуйста.


PHP код:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define N 2



struct kord{
    
int x;
    
int y;
    
};
struct kord *str;

int vvod(kord *str){
     
printf("Vvedite X:\n");
     
scanf("%d",&str->x);
     
printf("Vvedite y:\n");
     
scanf("%d",&str->y);
}

int func(kord *str){     
if((&
str->x)>0){
    if((&
str->y)>0)  
        
puts("I");
    else{
      if((&
str->y)<0
        
puts("VI");
    else
        
puts("OS OX +");
  }
   }else{
      if((&
str->x)<0){
        if((&
str->y)>0)  
       
puts("II");
    else{
       if((&
str->y)<0
       
puts("III");
    else
       
puts("OS OX -");
  }
   }else{
   if((&
str->y)>0)  
       
puts("OS OY+");
    else{
   if((&
str->y)< 0
       
puts("OS OY-");
   else
       
puts("Nachalo koordinat");
  }
 }
}

}
//end function


main(){
    
vvod(str); 
    
func(str);
getch();


Последний раз редактировалось promt; 10.10.2011 в 16:11.
promt вне форума Ответить с цитированием
Старый 10.10.2011, 17:37   #2
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от promt Посмотреть сообщение
при запуске когда ввожу X программа сразу же выбивает.
Память не выделена. struct kord *str - это указатель на структуру, а не объект структуры.
А вам нужен объект структуры, чтобы туда записать данные.
Код:
struct kord str; // объект структуры
An1ka вне форума Ответить с цитированием
Старый 10.10.2011, 20:25   #3
promt
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 32
По умолчанию

А подробней можно.
promt вне форума Ответить с цитированием
Старый 10.10.2011, 23:56   #4
FelixXXI
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 48
По умолчанию

Цитата:
при запуске когда ввожу X программа сразу же выбивает
Удивительно, что она вообще запускается и не выдаёт ошибок:
1.
функция int vvod() почему-то ничего не возвращает (так же как и функция int func()
2.
Код:
struct kord{ 
    int x; 
    int y; 
     
}; 
struct kord *str;
- так имя структуре не задают
3.
Код:
#define N 2
N вообще не понятно , зачем задано
4.
функции main неплохо было бы, хотя бы void дописать.
5.
функция func() сомневаюсь, что что-то путное посчитает.

Код:
#include<stdio.h> 
#include<conio.h> 

struct kord
{ 
    int x; 
    int y;    
}; 
kord str; 

void vvod(kord *str){ 
     printf("Vvedite X:\n"); 
     scanf("%d",&str->x); 
     printf("Vvedite y:\n"); 
     scanf("%d",&str->y); 
} 

void func(kord *str)
{      
	if((str->x)>0)
	{ 
		if((str->y)>0)   
			puts("I"); 
		else if((str->y)<0)  
			puts("II"); 
		else 
			puts("OS OX +"); 
	} 
	else if((str->x)<0)
	{ 
		if((str->y)>0)   
			 puts("IV"); 
		else if((str->y)<0)  
			 puts("III"); 
		else 
			 puts("OS OX -"); 
	} 
	else
	{
		if((str->y)>0)   
			puts("OS OY+"); 
		else if((str->y)< 0)  
			puts("OS OY-"); 
		else 
			puts("Nachalo koordinat"); 
	} 
}

void main()
{ 
    vvod(&str);  
    func(&str); 
	getch(); 
}
Немного переделал в вашем стиле, но так, чтоб работало
FelixXXI вне форума Ответить с цитированием
Старый 11.10.2011, 00:09   #5
promt
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 32
По умолчанию

Код:
N вообще не понятно , зачем задано
увлекся копипастом

Код:
функции main неплохо было бы, хотя бы void дописать.
Если написать void main кампилятор Dev C++ выдает ошибку.А так я знаю что нада писать void.

За помощь спасибо большое
promt вне форума Ответить с цитированием
Старый 11.10.2011, 00:18   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
функции main неплохо было бы, хотя бы void дописать.
или если int, то вернуть 0)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена символа при вводе на С Tema_Crazzzy Помощь студентам 0 29.04.2010 00:49
Ошибка при вводе даты tools SQL, базы данных 6 05.11.2009 21:12
ошибка при вводе в DBEdit Evgenii БД в Delphi 3 05.08.2009 20:39
Ограничение на знаки при вводе на C Tesmont Помощь студентам 3 14.05.2009 15:08
отключение проверки при вводе engeneer Паскаль, Turbo Pascal, PascalABC.NET 21 23.07.2008 19:45