Tag: 多维数组

指针具有二维数组

请考虑以下代码 #include #define ROW_SIZE 2 #define COL_SIZE 2 int main() { int a[ROW_SIZE][COL_SIZE]={{1,2},{3,4}}; // Base address:Pointer to the first element a 1D array printf(“Base address of array:%p\n”,a); //The value at the base address: should be the address of 1st 1D array printf(“Value at the Base address:%p\n”,*a); return 0; } 获得的产出: Sample Output: Base address of […]

如何在C中的4维数组中声明和初始化

我对编程比较陌生,我需要输入一个4维数组,我几乎无法绕过它。 那么,让我们从一个简单的三维数组开始,每个元素都是2个元素: int arr[2][2][2] = { { {1, 2} {3, 4} //redline on “{” } { //redline on “{” {5, 6} {7, 8} } }; VS-2012在“3”之前勾选“{”,并表示期待“}”。 我怎样才能以整洁的格式输入数组? 有4个维度会使它更复杂,我需要能够清楚地看到数据。 此外,我将在我的数组中有大量的零,在每个arr [n] [n]将为0的情况下,所以我想知道我是否可以使初始化更简单一些。 我的数组将是该类型 int arr[7][7][15][2] 或者我最好使用struct而不是? 提前致谢!

如何打印arrays?

int main() { int my array[3][3] = 10, 23, 42, 1, 654, 0, 40652, 22, 0 }; printf(“%d\n”, my_array[3][3]); return 0; } 我无法打印arrays..任何想法为什么? 我是一名初学程序员,所以任何建议的话都会受到赞赏。

2d数组,在C中使用calloc

我正在尝试为字符存储行创建一个二维字符串数组。 例如: lines[0]=”Hello”; lines[1]=”Your Back”; lines[2]=”Bye”; 因为线必须是动态的,所以我不知道我需要多少行。 这是我的代码: int i; char **lines= (char**) calloc(size, sizeof(char*)); for ( i = 0; i < size; i++ ){ lines[i] = (char*) calloc(200, sizeof(char)); } for ( i = 0; i < size; i++ ){ free(lines[i]); } free(lines); 我知道每条线都不能超过200个字符。 我一直收到错误,如“错误C2059:语法错误:’为’”等等。 我做错了什么想法?

设置2Darrays,稍后更改大小 – C.

是否可以在C中声​​明2D数组,然后稍后设置其大小? 我知道在C中你必须处理记忆等等,但是尽管我都在寻找,但我找不到这个问题的答案。 我目前的例子是…… int boardsize, linewin; char array[1][1]; //boardsize is set within here. array = [boardsize][boardsize];

什么是输出? 请解释一下,考虑到我是c的新手

int a[3][4] = { 1,2,3,4, 5,6,7,8, 9,10,11,12, }; printf(“%u %u %u \n”, a[0]+1, *(a[0]+1), *(*(a+0)+1));

在C中将文件读取到2D数组

我正在学习C,我决定将文字游戏作为我的学习项目 。 所以我正在尝试这种将文本文件读入2D数组的原始“解析器”,但是存在一个问题:这个地图不使用1个字符宽的单元格,它使用2个字符宽的单元格。 例如,播放**表示,门用##表示,依此类推。 这意味着,我需要读取文本文件的2个字符,然后将其分配给地图中的相应单元格。 好吧,我制作了一个包含的测试文件 aabbccddee ffgghhiijj kkllmmnnoo ppqqrrsstt uuvvwwxxyy 我试着用它读 #include #define ROWS 5 #define COLS 5 int main() { FILE *mapfile = fopen(“durr”, “r”); char charbuffer[3], row, col, *map[ROWS][COLS]; /* Initializing array */ for (row = 0; row < ROWS; row++) { for (col = 0; col < COLS; col++) { map[row][col] […]

传递给函数时多维数组的指针类型是什么?

我正在学习大学课程中的C和指针,我认为除了多维数组和指针之间的相似性之外,我对这个概念有很好的把握。 我认为,因为所有数组(甚至多维数组)都存储在连续内存中,你可以安全地将它转换为int* (假设给定的数组是一个int[] 。)但是,我的教授说明星中的星数。定义取决于数组中的维数。 因此, int[]将成为int* , int[][]将成为int**等。 所以我写了一个小程序来测试这个: void foo(int** ptr) { } void bar(int* ptr) { } int main() { int arr[3][4]; foo(arr); bar(arr); } 令我惊讶的是,编译器在两个函数调用上发出警告。 main.c:22:9: warning: incompatible pointer types passing ‘int [3][4]’ to parameter of type ‘int **’ [-Wincompatible-pointer-types] foo(arr); ^~~ main.c:8:16: note: passing argument to parameter ‘ptr’ here void foo(int** […]

从文本文件中读取字符并存储在2D数组中

愚蠢的问题,但我很恐慌。 我将如何从文本文件(包括空格)中读取字符并将其存储在2D数组中。 我知道我需要使用一些涉及的东西(比如我有一个2D数组文件[50] [50]) while ((ch = fgetc(fp)) != EOF); file[50][50] = characterWithinFile 任何帮助将不胜感激,因为我(令人惊讶地)知道在此之后我需要做什么。 谢谢

替换字符串

我正在做像excel这样的事情,我有这样的事情: 1 2 3 A1 B1 C1 它替换指定内容的内容,其中A1替换1的内容.B1替换2 …等的内容… 我正在使用多维数组,我做这样的事情: int offset = 0, readCharCount; while(sscanf(matris[i][c] + offset, “%c%d%*c%n”, &col, &linha, &readCharCount) == 2){ //printf(“%c, %d\n”, col, linha); //strcpy(matris[i][c], matris[linha-1][col – ‘A’]); offset += readCharCount; //printf(” {%c, %d}”, col, linha); //printf(“\n”); } 但是当我有A1 + B1 + C1和其他东西时,我不能替换总内容,因为其他参考将被删除…. 所以,在单元格,A1 + B1 + C1,我想改变B1指定的内容….我想这样: This -> A1+B1+C1 […]