当前位置: 首页 > news >正文

杭州网站开发公司排名网站cms系统哪个好用

杭州网站开发公司排名,网站cms系统哪个好用,礼品网站如何做,网站推广设计方案目标怎么写柔性数组简介 柔性数组#xff0c;或称为可变长度数组#xff0c;是一种在C语言结构体定义中使用的特殊数组#xff0c;它允许结构体拥有一个可变大小的数组成员。柔性数组成员必须是结构体的最后一个成员#xff0c;且它不占用结构体大小的计算#xff0c;这使得可以动态…柔性数组简介 柔性数组或称为可变长度数组是一种在C语言结构体定义中使用的特殊数组它允许结构体拥有一个可变大小的数组成员。柔性数组成员必须是结构体的最后一个成员且它不占用结构体大小的计算这使得可以动态地分配超出结构体声明大小的内存从而容纳变长的数据。 优点 动态内存管理使用柔性数组可以根据需要动态地分配更多的内存这在处理不确定大小的数据时非常有用。内存连续性柔性数组的数据存储在单一连续的内存块中这有利于提高内存访问效率。简化指针操作通过减少额外的指针或分配柔性数组可以简化代码和降低出错率。 如何使用柔性数组 要在C语言中使用柔性数组你需要在结构体定义中将最后一个元素声明为未指定大小的数组。这里是一个典型的使用示例 #include stdio.h #include stdlib.htypedef struct {int length;double data[]; // 柔性数组成员 } FlexibleArray;int main() {int desiredLength 5;// 分配内存时包括结构体基础大小和数组所需的额外空间FlexibleArray *array (FlexibleArray *)malloc(sizeof(FlexibleArray) sizeof(double) * desiredLength);array-length desiredLength;for (int i 0; i array-length; i) {array-data[i] i * 2.0;}for (int i 0; i array-length; i) {printf(Element %d %f\n, i, array-data[i]);}free(array);return 0; }注意事项 柔性数组成员不占用结构体大小的计算。只有位于结构体最后一个成员位置的数组可以被声明为柔性数组。分配含有柔性数组的结构体时需要手动计算额外内存的需求。使用完毕后需要手动释放内存以避免内存泄露。 在网络通信中使用柔性数组 消息结构 // message.h #ifndef MESSAGE_H #define MESSAGE_H#include stdint.htypedef struct {uint32_t length; // 消息长度char data[0]; // 数据部分 } message_t;#endif 服务端 // server.c #include stdio.h #include stdlib.h #include string.h #include unistd.h #include sys/types.h #include sys/socket.h #include netinet/in.h #include message.hint main(int argc, char *argv[]) {int sockfd, newsockfd, portno;socklen_t clilen;char buffer[256];struct sockaddr_in serv_addr, cli_addr;int n;if (argc 2) {fprintf(stderr, ERROR, no port provided\n);exit(1);}sockfd socket(AF_INET, SOCK_STREAM, 0);if (sockfd 0) printf(ERROR opening socket\n);bzero((char *) serv_addr, sizeof(serv_addr));portno atoi(argv[1]);serv_addr.sin_family AF_INET;serv_addr.sin_addr.s_addr INADDR_ANY;serv_addr.sin_port htons(portno);if (bind(sockfd, (struct sockaddr *) serv_addr, sizeof(serv_addr)) 0) printf(ERROR on binding\n);listen(sockfd, 5);clilen sizeof(cli_addr);newsockfd accept(sockfd, (struct sockaddr *) cli_addr, clilen);if (newsockfd 0) printf(ERROR on accept\n);uint32_t msg_length;n read(newsockfd, msg_length, sizeof(msg_length));if (n 0) printf(ERROR reading from socket\n);msg_length ntohl(msg_length); // 确保网络字节序转换为主机字节序message_t *msg (message_t*)malloc(sizeof(message_t) msg_length - 1); // 分配额外的空间n read(newsockfd, msg-data, msg_length);if (n 0) printf(ERROR reading from socket\n);printf(Here is the message: %s\n, msg-data);close(newsockfd);close(sockfd);return 0; } 客户端 // client.c #include stdio.h #include stdlib.h #include unistd.h #include string.h #include sys/types.h #include sys/socket.h #include netinet/in.h #include netdb.h #include message.h int main(int argc, char *argv[]) {int sockfd, portno, n;struct sockaddr_in serv_addr;struct hostent *server;char buffer[256];if (argc 3) {fprintf(stderr,usage %s hostname port\n, argv[0]);exit(0);}portno atoi(argv[2]);sockfd socket(AF_INET, SOCK_STREAM, 0);if (sockfd 0) printf(ERROR opening socket\n);server gethostbyname(argv[1]);if (server NULL) {fprintf(stderr,ERROR, no such host\n);exit(0);}bzero((char *) serv_addr, sizeof(serv_addr));serv_addr.sin_family AF_INET;bcopy((char *)server-h_addr, (char *)serv_addr.sin_addr.s_addr,server-h_length);serv_addr.sin_port htons(portno);if (connect(sockfd,(struct sockaddr *) serv_addr,sizeof(serv_addr)) 0) printf(ERROR connecting\n);printf(Please enter the message: );bzero(buffer,256);fgets(buffer,255,stdin);uint32_t msg_length strlen(buffer);// 发送消息长度uint32_t n_msg_length htonl(msg_length); // 转换为网络字节序write(sockfd, n_msg_length, sizeof(n_msg_length));// 发送消息数据n write(sockfd, buffer, msg_length);if (n 0) printf(ERROR writing to socket\n);close(sockfd);return 0; }
http://www.dnsts.com.cn/news/88703.html

相关文章:

  • 安达网站制作网站内容管理系统(cms)
  • 青岛专业网站建设定制深圳今天发生的重大新闻
  • 叫企业做的网站可不可以自己改主题注册公司该怎么注册
  • 网站建设的SOWT分析设置网站默认编码
  • 外卖做的比较好的网站做h5网站要多少钱
  • 网站开发的安全问题网站维护与建设内容
  • 做暖视频网站免费网站背景如何做
  • 引流网站怎么做北京建站公司哪家好都选万维科技
  • 廉江网站建设wordpress做视频
  • 京东的网站是怎么建设的深圳 网站设计师 招聘
  • 上海网站建设外包公司wordpress admin-ajax.php远程sql注入漏洞
  • 手机网站与电脑网站的区别人人开发网站
  • 淘宝网店开店网站建设阜新全网营销网站建设
  • 秦皇岛网络公司 网站托管国有资产处网站建设
  • 企业网站建设需要的资料网站制作公司合肥
  • 保险公司官方网站wordpress json 输出
  • 网站数据库有什么用南通网站建设费用
  • 长沙专业做网站排名帮别人做网站交税
  • 网站开发环境ide网站设计中超链接怎么做
  • 简述网站建设基本流程wordpress网站维护中
  • ip域名查询网站入口上海最新资讯
  • 旅游网站开题报告公关公司和广告公司的区别
  • 高端企业网站建设流程拖拽式可视化编辑网站
  • 北京论坛建站模板新网站如何做网站优化
  • 网站建立使用方法php英文商城网站建设
  • 企业网站制作的市场wordpress如何加好友
  • 武穴建设网站wordpress 发邮件
  • 萍乡手机网站建设建立网站可以赚钱吗
  • 建设电影推荐网站的项目背景wordpress与cms
  • 社区教育网站建设方案爱站网站长百度查询权重