เขียนภาษาซี ต้องการรับค่าตัวแปรข้อความด้วยคำสั่ง scanf แต่รันแล้วขึ้นข้อความแจ้งเตือนว่า warning: format %s expects argument of type char *, but argument 2 has type char อยากทราบวิธีแก้ไข โค้ดตัวอย่างบางส่วนตามด้านล่าง
#include <stdio.h>
void main() {
char name[50];
printf("Hello what is your name ??");
scanf("%s", &name);
}
วิธีแก้ไข
ปัญหานี้เกิดจากการรับค่าตัวแปรข้อความชนิด char แบบ array ไม่ต้องใส่อักษร & ที่หน้าตัวแปร จากตัวอย่างตรงคำสั่ง scanf ตัวแปร name ให้นำตัวอักษร & ออกและลองรันใหม่อีกครั้ง สามารถแก้ไขโค้ดได้ดังนี้
#include <stdio.h>
void main() {
char name[50];
printf("Hello what is your name ??");
scanf("%s", name);
}