Tag: 数组

使用指针的所有函数的警告消息。 期望’int *’但参数的类型为’int(*)’

代码工作正常我只是担心我得到的警告信息,是否有办法让它们不出现? 有什么理由担心他们吗? 在代码中更远的地方,我不太明白我做了什么或为什么它起作用。 它之前没有工作,所以我查看其他人用指针做了什么,它现在有效 Warning passing argument 1 of ‘readarray’ from incompatible pointer type [-wincomp readarray(&a); ^ note: expected ‘int*’ but argument is of type ‘int(*)[10]’ void readarray (int*); ^ 这是警告信息,我为每个function得到它^^^^^^^^^^^^^^^^^^ 我知道为什么它有问题,我想,但我不明白我怎么能改变任何东西 #include #define n 10 void readarray (int*); int findmaxvalue(int*); void reversearray(int*, int*); void printarray(int*); int main(void) { int a[n], i, b[n]; for (i […]

int LA = {1,2,3,4,5}内存分配混乱c

我观察到为数组分配的内存似乎是动态的。 以下是我在本教程中找到的示例代码: #include main() { int LA[] = {1,3,5,7,8}; int item = 10, k = 3, n = 5; int i = 0, j = n; printf(“The original array elements are :\n”); for(i = 0; i= k){ LA[j+1] = LA[j]; j = j – 1; } LA[k] = item; printf(“The array elements after insertion :\n”); […]

C struct自动初始化值,数组初始化

如果我有两个结构 typedef struct { int number_of_lines; char lines[MAX_CHAPTER_LINES][MAX_STR_SIZE + 1]; } Chapter; typedef struct { char name[MAX_STR_SIZE + 1]; int number_of_chapters; Chapter chapters[MAX_CHAPTERS]; } Book; 我创建了一个章变量: Chapter x1; 它的两个成员的价值将被初始化为什么? 它是垃圾吗? 还是零? 在我的代码中,我得到0为int ,但我的TA告诉我这将是垃圾? 另外,如果我要声明一个章节数组: Chapter chapters[30]; 是否会填充30个具有0 / NULL值元素的结构? 或者用垃圾值元素初始化?

分段错误 – C语言中的声明和init数组

我对来自Python,Java和C#世界的C.非常新。 这可能是一个愚蠢的问题,但我得到分段错误: // struct for storing matrices typedef struct { int m; int n; float* elts; } Matrix; 在我的主要方法中: Matrix A; An = 3; Am = 3; memcpy( A.elts, (float[]) {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f}, 9 * sizeof(float)); // seg fault because of this memcpy. 我也试过没有f ,同样的问题。 你能帮忙吗?

23警告:赋值使得整数指针没有强制转换

我是编程c的新手,带有数组和文件。 我只是试图运行以下代码,但我得到这样的警告: 23 44警告:赋值使用整数而不使用强制转换 53错误:’char’之前的预期表达式 有帮助吗? 这可能很傻……但是我找不到什么是错的。 #include FILE *fp; FILE *cw; char filename_game[40],filename_words[40]; int main() { while(1) { /* Input filenames. */ printf(“\n Enter the name of the file \n”); gets(filename_game); printf(“\n Give the name of the file2 \n”); gets(filename_words); /* Try to open the file with the game */ fp=fopen(/* args omitted */); […]

从文件缓冲一组行并将其存储在C中的数组中

这可能是一种非常低效的方法,但它的工作方式 此代码读取文件,一次在全局数组中存储8行文本(如果可能,请提供更好的选项)并调度以进行进一步处理。 这是代码 int count = 0; //global char *array_buffer[8]; //global void line(char *line_char) { int lent = strlen(line_char); array_buffer[count] = line_char; printf(“%d\n”,count); if (count == 8) { int row,col; for(row = 0; row<count; row++){ printf("%d\n",row); for(col = 0; col<=lent; col++) { printf("%c", array_buffer[row][col]); } printf("\n"); } count = 0; } count++; } int main(int […]

如何在不使用循环的情况下在C中初始化N维数组

我想初始化一个3 x 3矩阵,前两行为0,最后一行为1。 我已经声明了一个二维数组int matrix[3][3] 我想初始化它而不使用循环,如下所示 0 0 0 0 0 0 1 1 1 我还想要一个N dimiensional数组的解决方案

动态结构数组中的malloc动态数组

typedef struct { char *word; } STR; int main() { STR *arr=(STR*)malloc(5*sizeof(*arr)); STR[2].word=(char*)malloc(200*sizeof(char)); STR[2].word=(char*)realloc(,400*sizeof(char)); return 0; } 这将无法正常工作并编写许多错误。 如何在动态结构数组中动态分配数组?

c 中int(* pt)的含义是什么

我已经阅读了关于此类型声明的一些内容。 声明是: int (*arr)[5]; 我对这种类型的声明有点困惑。实际上这个声明是什么意思,我们什么时候使用它。

超过C中的数组 – 为什么这不会崩溃?

我有这段代码,它运行得很好,我不知道为什么: int main(){ int len = 10; char arr[len]; arr[150] = ‘x’; } 说真的,试试吧! 它工作(至少在我的机器上)! 但是,如果我尝试更改索引太大的元素(例如索引20,000),它就不起作用。 所以编译器显然不够聪明,只能忽略那一行。 那怎么可能呢? 我真的很困惑…… 好的,谢谢你的所有答案! 所以我可以使用它来写入堆栈中其他变量所消耗的内存,如下所示: #include main(){ char b[4] = “man”; char a[10]; a[10] = ‘c’; puts(b); } 输出“可以”。 这是一件非常糟糕的事情。 好的谢谢。