Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C &引用;字典;未申报的_C - Fatal编程技术网

C &引用;字典;未申报的

C &引用;字典;未申报的,c,C,我试图用C语言创建一个字典。基本上,用户自己创建字典,输入一个单词,然后输入一个定义。我创建了一个显示字典的函数,显示每个条目及其定义。但是,我遇到了以下错误: 错误:“字典”未声明(首次在此函数中使用) 以下是我编写的代码: #include <stdio.h> void display (char *array) { int i; for (i=0; i<11; ++i) printf("%s %s", dictionary[i][0],

我试图用C语言创建一个字典。基本上,用户自己创建字典,输入一个单词,然后输入一个定义。我创建了一个显示字典的函数,显示每个条目及其定义。但是,我遇到了以下错误:

错误:“字典”未声明(首次在此函数中使用)

以下是我编写的代码:

#include <stdio.h>

void display (char *array) {
    int i;

    for (i=0; i<11; ++i)
        printf("%s %s", dictionary[i][0], dictionary[i][1]);
}

int main(void) {
    char *dictionary[10][2];
    int command;
    int i;

    while (command != 3) {
        printf ("1. Define or 2. Lookup or 3. Exit");
        scanf ("%d", &command);

        if (command == 1) {
            for (i=0; i<11; ++i) {
                printf("Please enter a word to define:");
                scanf("%s\n", dictionary[i][0]); 
                printf("Please enter its definition:");
                scanf("%s", dictionary[i][1]);
                break;
            }
        }

        if (command == 2)
            display(dictionary);
    }

    return 0;
}
#包括
无效显示(字符*数组){
int i;

for(i=0;i
字典
是另一个函数中的局部变量。

您的参数名为
array

dictionary
是另一个函数中的局部变量。

您的参数名为
array

您的变量
字典
超出范围。请尝试此操作

if (command == 2) {
    for (i=0; i<11; ++i)
        printf("%s %s", dictionary[i][0], dictionary[i][1]);
}
if(命令==2){

对于(i=0;i您的变量
dictionary
超出范围。请尝试此操作

if (command == 2) {
    for (i=0; i<11; ++i)
        printf("%s %s", dictionary[i][0], dictionary[i][1]);
}
if(命令==2){

对于(i=0;i在
display
中,字典没有声明。那么简单。

display
中,字典没有声明。那么简单。

在display function中,将
字典更改为
数组

在display function中,将
字典更改为
数组
字典是一个本地变量变量位于
main
中,不能直接从函数中访问;相反,可以使用参数
array
,该参数绑定到调用函数时指定的第一个参数

但是还有一个问题:您错误地声明了参数。多维数组必须以特定的方式传递:

void display (char array[][2]) {
    int i;

    for (i=0; i<11; ++i)
        printf("%s %s", array[i][0], array[i][1]);
}
void显示(字符数组[][2]){
int i;

for(i=0;i
dictionary
main
中的一个局部变量,不能直接从函数中访问;相反,可以使用参数
array
,该参数绑定到调用函数时指定的第一个参数

但是还有一个问题:您错误地声明了参数。多维数组必须以特定的方式传递:

void display (char array[][2]) {
    int i;

    for (i=0; i<11; ++i)
        printf("%s %s", array[i][0], array[i][1]);
}
void显示(字符数组[][2]){
int i;

对于(i=0;i在
display()
中将
dictionary
更改为
array
后,可能会出现其他奇怪的行为

char *dictionary[10][2];

for (i=0; i<11; ++i) {
char*字典[10][2];

对于(i=0;i在
display()
中将
dictionary
更改为
array
后,可能会出现其他奇怪的行为

char *dictionary[10][2];

for (i=0; i<11; ++i) {
char*字典[10][2];

对于(i=0;下面的许多答案解释了您的程序段中的错误。如果您对正在发生的事情的正式处理感兴趣,请阅读有关正式参数和实际参数之间的差异。下面的许多答案解释了您的程序段中的错误。如果您对正在发生的事情的正式处理感兴趣,请阅读关于形式参数和实际参数之间的差异。