Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.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
ICP LAB ASSIGNMENT PROJECT.exe中0x7C131F4C(ucrtbased.dll)处引发异常:0xC0000005_C - Fatal编程技术网

ICP LAB ASSIGNMENT PROJECT.exe中0x7C131F4C(ucrtbased.dll)处引发异常:0xC0000005

ICP LAB ASSIGNMENT PROJECT.exe中0x7C131F4C(ucrtbased.dll)处引发异常:0xC0000005,c,C,我试图打印一些数组,但无论如何都无法打印 我做错了哪一部分 是阵列吗 int main() { int i; char id[3]; ///sample data wanted to print id[0] = 'id1'; id[1] = 'id2'; id[2] = 'id3'; for (i = 1; i <= 3; ++i) { printf("%s", id[i]); ///The error appeare

我试图打印一些数组,但无论如何都无法打印

我做错了哪一部分

是阵列吗

int main()
{
    int i;
    char id[3]; ///sample data wanted to print
    id[0] = 'id1';
    id[1] = 'id2';
    id[2] = 'id3';
    for (i = 1; i <= 3; ++i)
    {
        printf("%s", id[i]); ///The error appeared here////
    }
}
intmain()
{
int i;
char id[3];///要打印的示例数据
id[0]=“id1”;
id[1]=“id2”;
id[2]=“id3”;

对于(i=1;i
i
1
开始,转到
3

for (i = 1; i <= 3; ++i)
也就是说,它们从
0
开始,然后在小于数组大小时移动。
不小于或等于
。那是你的错误


接下来,数组的每个元素都是一个字符。
但是您正在尝试用3个字母初始化它们,例如:
id1

单个字符只能容纳一个字母,而不能容纳一组3个字母

您正试图使用
%s
打印它们;但是
%s
用于字符串,而不是单个字符


这是您的程序的更正版本

int main()
{
    int i;
    char* id[3];    // Declare strings, not characters.
    id[0] = "id1";  // Initialize each with a string
    id[1] = "id2";
    id[2] = "id3";
    for (i = 0; i < 3; ++i)  // Set loop limit correctly.
    {
        printf("%s\n", id[i]);
    }
}
intmain()
{
int i;
char*id[3];//声明字符串,而不是字符。
id[0]=“id1”;//用字符串初始化每个
id[1]=“id2”;
id[2]=“id3”;
对于(i=0;i<3;++i)//正确设置循环限制。
{
printf(“%s\n”,id[i]);
}
}

i
1
开始,转到
3

for (i = 1; i <= 3; ++i)
也就是说,它们从
0
开始,然后在小于数组大小时移动。
不小于或等于
。那是你的错误


接下来,数组的每个元素都是一个字符。
但是您正在尝试用3个字母初始化它们,例如:
id1

单个字符只能容纳一个字母,而不能容纳一组3个字母

您正试图使用
%s
打印它们;但是
%s
用于字符串,而不是单个字符


这是您的程序的更正版本

int main()
{
    int i;
    char* id[3];    // Declare strings, not characters.
    id[0] = "id1";  // Initialize each with a string
    id[1] = "id2";
    id[2] = "id3";
    for (i = 0; i < 3; ++i)  // Set loop limit correctly.
    {
        printf("%s\n", id[i]);
    }
}
intmain()
{
int i;
char*id[3];//声明字符串,而不是字符。
id[0]=“id1”;//用字符串初始化每个
id[1]=“id2”;
id[2]=“id3”;
对于(i=0;i<3;++i)//正确设置循环限制。
{
printf(“%s\n”,id[i]);
}
}
您通过传递类型错误的数据调用了未定义的行为:
%s
在传递类型为
char
(此处扩展为
int
)的
id[i]
时,需要指向以null结尾的字符串的指针

您可以使用
%c
显示多字符文字的实现定义值的值

正如@abelenky所说,循环范围也是错误的

#include <stdio.h>

int main()
{
    int i;
    char id[3]; ///sample data wanted to print
    id[0] = 'id1';
    id[1] = 'id2';
    id[2] = 'id3';
    for (i = 0; i < 3; ++i)
    {
        printf("%c", id[i]);
    }
}
#包括
int main()
{
int i;
char id[3];///要打印的示例数据
id[0]=“id1”;
id[1]=“id2”;
id[2]=“id3”;
对于(i=0;i<3;++i)
{
printf(“%c”,id[i]);
}
}
或者你是说这个

#include <stdio.h>

int main()
{
    int i;
    const char* id[3]; ///sample data wanted to print
    id[0] = "id1";
    id[1] = "id2";
    id[2] = "id3";
    for (i = 0; i < 3; ++i)
    {
        printf("%s\n", id[i]);
    }
}
#包括
int main()
{
int i;
const char*id[3];///要打印的示例数据
id[0]=“id1”;
id[1]=“id2”;
id[2]=“id3”;
对于(i=0;i<3;++i)
{
printf(“%s\n”,id[i]);
}
}
您通过传递类型错误的数据调用了未定义的行为:
%s
在传递类型为
char
(此处扩展为
int
)的
id[i]
时,需要指向以null结尾的字符串的指针

您可以使用
%c
显示多字符文字的实现定义值的值

正如@abelenky所说,循环范围也是错误的

#include <stdio.h>

int main()
{
    int i;
    char id[3]; ///sample data wanted to print
    id[0] = 'id1';
    id[1] = 'id2';
    id[2] = 'id3';
    for (i = 0; i < 3; ++i)
    {
        printf("%c", id[i]);
    }
}
#包括
int main()
{
int i;
char id[3];///要打印的示例数据
id[0]=“id1”;
id[1]=“id2”;
id[2]=“id3”;
对于(i=0;i<3;++i)
{
printf(“%c”,id[i]);
}
}
或者你是说这个

#include <stdio.h>

int main()
{
    int i;
    const char* id[3]; ///sample data wanted to print
    id[0] = "id1";
    id[1] = "id2";
    id[2] = "id3";
    for (i = 0; i < 3; ++i)
    {
        printf("%s\n", id[i]);
    }
}
#包括
int main()
{
int i;
const char*id[3];///要打印的示例数据
id[0]=“id1”;
id[1]=“id2”;
id[2]=“id3”;
对于(i=0;i<3;++i)
{
printf(“%s\n”,id[i]);
}
}

int main(){int i;const char*id[8],pass[8];///想要打印id[0]=“id1”;id[1]=“id2”;id[2]=“id3”;pass[1]=“pass1”;pass[2]=“pass2”;pass[3]=“pass3”;对于(i=0;i<3;++i){printf(“%s\n”,pass[i]);}再次出现相同的错误,您设置了
id[0]
,但您从未设置过
pass[0]
。相反,您从
pass[1]=“…”
开始,您必须先设置
pass[0]
,然后再尝试打印它。int main(){int i;const char*id[8],pass[8];///想要打印id[0]=“id1”;id[1]=“id2]=“id3”;pass[1]=“pass1”;pass[2]=“pass2”pass[3]=“pass3”for(i=0;i<3;++i){printf(“%s\n”,pass[i]);}再次出现同样的错误,您设置了
id[0]
,但您从未设置
pass[0]
。相反,您从
pass[1]=“…”
开始,必须先设置
pass[0]
,然后再尝试打印它。