Tag: 数组

Web浏览器不解释通过unsigned char数组传递的图像

我想要做的基本上是通过套接字捕获浏览器的HTTP GET请求并将该请求发送到Internet,然后捕获回复并将其发送回浏览器。 当转移仅由文本组成时,每件事都完美无缺。 但是在下载图像时。 浏览器给出错误“无法显示图像,因为它包含错误”。 任何帮助将不胜感激。 #include “cc352.h” #include #include #include #include int main(int argc, char **argv) { int listenfd, connfd,weblin,webcon,webwrite,n,x,y,w,w1; socklen_t len,wlen; struct sockaddr_in servaddr, cliaddr , webservad , webcliad; unsigned char buff[3072] , buff2[3072] ,ext[5] ,wbuff[100000]; time_t ticks; int yes = 1; const char *ptr; if ( (listenfd = socket(AF_INET, SOCK_STREAM, 0)) < […]

一种函数,用于检查每个元素在数组中出现的次数

我正在创建一个列出数组的函数,并说明每个元素出现的次数。 到目前为止我自己想到的是我应该遍历数组并且应该有一个计数器来跟踪它出现的次数,然后是第二个数组来放置该计数器的值与值对应在第一个数组中。 但我无法弄清楚一个算法来搜索每个值是否在循环内重复。

为什么我会出现段错误?

这是我的代码,我得到一个分段错误,我不知道为什么……我正在创建一个n是它的大小的网格, tab是一个数组,他的类型是cellule:一个单元格有2个值。 所以我在函数creer_grille创建了一个数组我malloc它(大小可以是4 6或8)并且我用-1和0初始化单元格值。然后在下面的函数中我正在测试creer_grille函数。 typedef struct { int val; int initial; } cellule; typedef struct { cellule *tab; int n; } grille; grille *creer_grille(int n) { grille *g; int i; assert(n == 4 || n == 6 || n == 8 && “Taille de la grille différent de 4,6 ou 8”); g->n = n; g […]

从一个文件读入多个整数数组

我有一个问题,我需要从.txt文件中读取多个数组并输出最大总和子数组。 这是文本文件: [1, 4, -9, 8, 1, 3, 3, 1, -1, -4, -6, 2, 8, 19, -10, -11] [2, 9, 8, 6, 5, -11, 9, -11, 7, 5, -1, -8, -3, 7, -2] [10, -11, -1, -9, 33, -45, 23, 24, -1, -7, -8, 19] [31,-41, 59, 26, -53, 58, 97, -93, -23, 84] [3, […]

我是否需要为我的作业创建三个单独的数组?

好的,首先我会解释我的任务。 对于这个分配,我必须使用动态内存分配,我没有遇到任何问题。 我遇到的问题是弄清楚正确的工作方式。 对于我的任务,我需要创建一个程序,提示用户输入他们有多少学生然后要求提供以下信息; 学生证,出生日期和电话号码。 我需要使用循环来提示用户输入所有学生信息。 我需要创建一个循环,它将扫描所有学生ID并使用他们的生日找到最老的学生(循环必须能够扫描超过3名学生)。 这是我的代码,我还没有做太多,因为我不确定从哪里开始。 我已经设置了动态内存分配,但我不知道如何处理其余部分。 请帮我。 谢谢。 #include #include int main (void) { int * studentData= NULL; int students; printf(“How many students are you entering records for:\n”); scanf(“%d”, &students); studentData=(int*)malloc((sizeof(int)*students)); }

知道数组大小的“sizeof”在C中的函数中不起作用

int main() { int laiArreglo[] = {5,8,2,3,1,4,6,9,2,10}, liElemento; printf(“\nInsert the number: “); scanf(“%d”, &liElemento); ShowNumber(laiArreglo); return 0; } void ShowNumber(int laiArreglo[]) { int liContador; printf(“\nNumbers: “); for (liContador = 0; liContador < sizeof (laiArreglo) / sizeof (int); liContador++) { printf("%d ", laiArreglo[liContador]); } } 我在main中使用(sizeof(laiArreglo)/ sizeof(int))并且它工作得很好但是,现在在function内部它不起作用,为什么? 。

动态数组和预建数据

在C中,我尝试执行以下操作: typedef struct { int length; int items[]; /* 1 */ } wchararray_t; typedef struct { long hash; wchararray_t chars; /* 2 */ } string_t; static string_t s1 = { 617862378, { 5, { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ } } /* 3 */ }; 总而言之,我想要一个以另一种类型wchararray_t结尾的类型wchararray_t ,它本身是动态大小的 – 它的大小以length存储。 此外,我还想编写一个预先构建的特定字符串,作为静态数据,这里s1的长度为5。 上面的代码假定C99支持/* 1 */ 。 据我所知,在/* […]

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

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

删除C中char数组中相同的连续行

我正在尝试创建一个函数来检测char数组中是否有相同的连续行。 例如,如果char数组包含: 你好 你好 你好 你好 你好 然后数组将更改为 你好 你好 基本上,我想检测连续的,相同的行,并删除它们,因此只剩下其中一行。 如果一行与早期行相同,但它们不是连续的,那么就没问题了。 实际上,整条线不必相同,但至少前79或MAXCHARS必须相同。 另外,我不想通过写入中间文件来做到这一点。 理想情况下,我会将数据存储在数组中。 我想的是: int deleteRepeats(char *a) { int i; for (i=0; i<=MAXCHARS; i++) { if (a[i] != '\n') /* copy into new array /* } } 但我有点失落。 我现在不想打印arrays,因为我将在以后的程序中再次修改它; 我仍然需要使用。 非常感谢任何帮助/解决方案。 谢谢。

JavaScript中Typed Arrays的优点是它们在C中的工作方式相同或相似吗?

我一直在使用JavaScript中的Typed Arrays 。 var buffer = new ArrayBuffer(16); var int32View = new Int32Array(buffer); 我认为JavaScript中的正常数组( [1, 257, true])性能较差,因为它们的值可能是任何类型,因此,在内存中达到偏移并非易事。 我原本以为JavaScript数组下标的工作方式与对象相同(因为它们有许多相似之处),并且基于哈希映射 ,需要基于散列的查找。 但我没有找到太多可信的信息来证实这一点。 所以,我假设Typed Arrays表现如此出色的原因是因为它们像C中的普通数组一样工作,它们总是被输入。 鉴于上面的初始代码示例,并希望获得键入数组中的第10个值… var value = int32View[10]; 类型为Int32 ,因此每个值必须由32位或4个字节组成。 下标是10 。 因此,该值在内存中的位置是 + (4 * 10) ,然后读取4个字节以获得总值。 我基本上只想确认我的假设。 我的想法是否正确,如果没有,请详细说明。 我检查了V8源代码 ,看看我是否可以自己回答,但我的C生锈了,我对C ++不太熟悉。