gpt4 book ai didi

c - "error: assignment to expression with array type"是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:08 27 4
gpt4 key购买 nike

我尝试编译以下代码,但我经常遇到此错误。

    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);

出现这个错误:“error: assignment to expression with array type”

最佳答案

您正在将 sprintf() 的值分配给具有数组类型的变量。数组不是可修改的左值;所以你不能分配给他们。 sprintf() 返回一个 int - 因此您需要将其值分配给一个 int。但是,我建议避免使用 sprintf() 并使用 snprintf()反而。因为sprintf()容易出现缓冲区溢出。

int rc = snprintf(command, sizeof command, "sudo asterisk -rx \"pjsip show aor %s\"", row[i]);

关于c - "error: assignment to expression with array type"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42040717/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com