Lỗi Access Violation trong C

Đoạn code của em thế này:

#include<stdio.h>
#include<conio.h>
void main()
{
	int c,m,s,d,t,t1,t2;
   printf("Nhap vao chi so cu: ");
   scanf("%d",c);
   printf("Nhap vao chi so moi: 
");
   scanf("%d",m);
   printf("Chi so cu la: %d
",c);
   printf("Chi so moi la: %d
",m);
   s=m-c;
   d=s-50;
   if(d<=0)
   	{
      t1=s*230;
      t2=0;
      t=t1+t2;
      }
   else if(d<=50)
   	{
      t1=50*230;
      t2=480*(d-50);
      t=t1+t1;
      }
   else if(d<=100)
   	{
      t1=50*230;
      t2=480*50+700*(d-50);
      t=t1+t2;
      }
   else
   	{
      t1=50*230;
      t2=480*50+700*50+900*(d-100);
      t=t1+t2;
      }
   printf("Tong tien trong dinh muc la: %d
",t1);
   printf("Tong tien vuot dinh muc la: %d
",t2);
   printf("Tong tien phai tra la: %d+%d+1000=%d",t1,t2,t);
   getch();
}

Em chạy chương trình thành công, nó không báo lỗi nhưng nó chỉ cho nhập vào cái biến đầu xong không chạy nữa và xuất hiện thông báo

Pro nào gặp lỗi này thì giúp em fix nó với ạ :frowning:

lôiC.jpg

[QUOTE=keens0n;95244] printf(“Nhap vao chi so cu: “);
scanf(”%d”,c);
printf(“Nhap vao chi so moi:
“);
scanf(”%d”,m); [/QUOTE]
bạn thiếu & trong lệnh scanf, bạn quên truyền địa chỉ nhập cho biến…
printf(“Nhap vao chi so cu: “);
scanf(”%d”,&c);
printf(“Nhap vao chi so moi:
“);
scanf(”%d”,&m);

Access Violation

Lỗi này là lỗi truy cập vào vùng nhớ bất hợp lệ… lỗi ám ảnh nhất với mình khi code chương trình :cry:. Cụ thể trong trường hợp của bạn cái lệnh scanf của bạn nó sẽ truy cập vào vùng nhớ có giá trị được lưu trong biến c (giá trị này không phải là địa chỉ của c) => gây lỗi. Ví dụ c= 10, trong khi địa chỉ của c là 0x01. Lệnh của bạn sẽ truy xuất tới vùng nhớ có địa chỉ là 0x0a ==> lỗi truy xuất bất hợp lệ