[英]What does “error: assignment to expression with array type” mean?
我嘗試編譯以下代碼,但是不斷出現此錯誤。
char command[100];
FILE *fp;
command = sprintf(command, "sudo asterisk -rx \"pjsip show aor %s\"", row[i]);
fp = popen (command, "r");
if (fp == NULL) {
printf("Failed to run command\n" );
exit(1);
出現此錯誤:“錯誤:分配給具有數組類型的表達式”
您正在將sprintf()
的值分配給具有數組類型的變量。 數組不是可修改的左值; 因此您無法分配給他們。 sprintf()
返回一個int
,因此您需要將其值分配給一個int
。 但是,我建議避免使用sprintf()
而應使用snprintf()
。 因為sprintf()
容易出現緩沖區溢出。
int rc = snprintf(command, sizeof command, "sudo asterisk -rx \"pjsip show aor %s\"", row[i]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.