c - 多维数组行为异常

标签 c

#include <stdio.h>
#include <stdlib.h>
char number[5000]="37107287533902102798797998220837590246510135740250\
46376937677490009712648124896970078050417018260538\
.....more numbers.....";
char numbers[100][50];
main()
{
    int x,z;
    extern char numbers[100][50],number[5000];
    for(x=0;x<100;x++)
    {
        for(z=0;z<50;z++)
        {
            numbers[x][z]=number[50*x+z];
        }
    }
    printf("%s\n",numbers[0]);
}

所以问题是我有这段代码,出于某种原因,numbers[0] 与 number 相同。 numbers[0] 不是应该首先是前 50 个字符吗?我想不通。提前致谢。

最佳答案

for(x=0;x<100;x++)
    {
        for(z=0;z<50;z++)
        {
            numbers[x][z]=number[50*x+z];
        }
    numbers[x][z+1] ='\0'; //Did you miss this ?
    }

关于c - 多维数组行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18159395/

相关文章:

objective-c - 模拟组合击键不起作用?

c - 具有 void 函数的 libffi 段错误

c++ - gcc -O2 的奇怪整数行为

java - 在 C 中以\0 结尾的串联字符串

Python 到 C/C++ const char 问题

c - 如何在 c 中退出 "if"循环?

c - 程序错误: unwanted number in statement

条件跳转或移动取决于未初始化的值 2D 数组

c++ - memcmp 适用于非平面结构吗?

c# - 来自 C# 的 native 调用尝试读取无效内存