C - 无法访问用户函数中的全局变量

标签 c

任何人都可以告诉如何在 C 中访问用户函数中的全局变量(在我的示例中它是“used”数组)(在我的示例中它是“checkData”)?它与 C++ 类似的代码有效(但我使用了“used = new bool[size];”而不是“boolused[size];”)

#include <stdio.h>
#define true 1
#define false 0

typedef int bool;
bool *used;
int i;

void checkData(int i);

int main ()
{
    int size = 10;

    bool used[size];
    for (i = 0; i < size; i++)
        used[i] = false;

    for (i = 0; i < size; i++)
        checkData(i);

    return 0;
}

void checkData(int i) {
    printf("%d - %d\n", i, used[i]);
}

最佳答案

变量used是一个重复的名称。在 main 中,访问本地used。但在 checkData 中使用了全局实例,但会导致错误,因为您取消引用 NULL 指针(静态变量初始化为 0)。

关于C - 无法访问用户函数中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36582545/

相关文章:

C程序函数错误

c - 是否有用于引用/转义表名的 C SQLite API?

c - 警告 : passing argument 2 of ‘memcpy’ makes pointer from integer without a cast [enabled by default]

c - 为什么 sigwait() 是 MT 安全的而 sigsuspend() 不是?

c - 如何在标准C中通过特定分隔符 `……`(非单个字符)分割中文字符数组?

c - char 逐字符读取文件,numbers 设置数字

c - 如何在 eclipse 中重命名(重构)c 宏

条件运算符

c - gcc前增量和后增量优化

c - 如何停止通过输入插入值?