簡體   English   中英

“錯誤:對具有數組類型的表達式的賦值”是什么意思?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM