[C] Wskaźniki - niemożność wczytania do funkcji

0

Witam, napisałem program który za pomocą wskaźnika i funkcji ma dodawać dwie liczby. Jeżeli podam te liczby na początku programu to działa on prawidłowo:
Kod:

#include <stdio.h>
#include <stdlib.h>

void zmien( int a,int b, int *wsk_x)
{
    *wsk_x = a+b;
}

int main()
{
   int x=0;
   int a=2;
   int b=4;

  

   zmien(a,b,&x);
   printf("%d",x);
  
   getchar();
   return 0;
}

Jednak gdy chce użyc podanych przeze mnie liczb za pomocą funkcji scanf, program się wyłącza.
Kod:

#include <stdio.h>
#include <stdlib.h>

void zmien( int a,int b, int *wsk_x)
{
    *wsk_x = a+b;
}

int main()
{
   int x=0;
   int  a,b;
   scanf("%d",&a);
   scanf("%d",&b);

  

   zmien(a,b,&x);
   printf("%d",x);
  
   getchar();
   return 0;
}

Używam devc++. Wie ktos jaka moze byc tego przyczyna?

0

Używam devc++. Wie ktos jaka moze byc tego przyczyna?

Sam sobie odpowiedziałeś na to pytanie.
Dowód: http://ideone.com/P31Y5P

0

Ten program na pierwszy rzut oka jest poprawny. Wywal DevC++ i spróbuj innego IDE.

1

getchar(); wystarczy w pierwszym wariancie do zatrzymania zamykania skonczonego programu pod windowsami.
Natomiast w drugim przypadku ponieważ wczytywałeś scanf'em to w buforze klawiatury został co najmniej '\n' - Enter
więc aby zatrzymać możesz użyć np:
fflush(stdin); getchar();

1 użytkowników online, w tym zalogowanych: 0, gości: 1