เขียนโค้ดภาษา C รับค่าชื่อด้วยคำสั่ง scanf เก็บไว้ในตัวแปรชนิด char array โปรแกรมสามารถทำงานได้แต่ขึ้น warning: format specifies type 'char *' but the argument has type 'char (*)[50]' [-Wformat] อยากทราบวิธีแก้ไข
#include <stdio.h>
int main() {
char name[50];
printf("What your name ? ");
scanf("%s", &name);
printf("Welcome %s", name);
return 0;
}
วิธีแก้ไข
กรณีรับค่าด้วยคำสั่ง scanf และเก็บค่าไว้ในตัวแปรชนิด char array ตรงหน้าของชื่อตัวแปรไม่ต้องใส่เครื่องหมายแอมเพอร์แซนด์ (&) ให้เปลี่ยนจาก &name เป็น name ได้เลย แก้ไขโค้ดได้ดังนี้
#include <stdio.h>
int main() {
char name[50];
printf("What your name ? ");
scanf("%s", name);
printf("Welcome %s", name);
return 0;
}