小编dev*_*vin的帖子

带拖车的可变尺寸结构

我之前发布过这个主题,但现在我有一个更具体的问题/问题.

这是我的代码:

#include <cstdlib>
#include <iostream>

typedef struct{
    unsigned int h;
    unsigned int b[];
    unsigned int t;
 } pkt;

 int main(){

    unsigned int* arr = (unsigned int*) malloc(sizeof(int) * 10);
    arr[0] = 0xafbb0000;
    arr[1] = 0xafbb0001;
    arr[2] = 0xafbb0011;
    arr[3] = 0xafbb0111;
    arr[4] = 0xafbb1111;
    arr[5] = 0xafbc0000;
    arr[6] = 0xafbc0001;
    arr[7] = 0xafbc0011;
    arr[8] = 0xafbc0111;
    arr[9] = 0xafbc1111;

    pkt* p = (pkt*) malloc(sizeof(int)*13);
    p->h = 0x0905006a;

    int counter;
Run Code Online (Sandbox Code Playgroud)

这是我得到的(counter = 0; counter <10; counter ++)p-> b …

c++ data-structures

1
推荐指数
1
解决办法
877
查看次数

如何告诉javac如何找到imageio-classes?

我是java开发的新手,我只想在构建系统中使用javac.我正在使用java为其他人编写的程序添加一个功能,特别是涉及GeoTiff图像.

我在网上发现了一个我想要使用的课程,但是我无法建立课程,无论我做什么,我都会得到这样的信息:

javac GeoTiffIIOMetadataAdapter.java
GeoTiffIIOMetadataAdapter.java:11: package com.sun.media.imageio.plugins.tiff does not exist
 import com.sun.media.imageio.plugins.tiff.GeoTIFFTagSet;
Run Code Online (Sandbox Code Playgroud)

我在RHEL5上,所以我安装了我认为需要的软件包,jai-imageio-core.x86_64. 但问题仍然存在.我认为我没有正确设置一些变量(比如-sourcepath或者其他东西).我将不胜感激任何帮助.

java javac classpath

1
推荐指数
1
解决办法
596
查看次数

制作可变大小结构的方法

我需要制作一个包含头部,尾部和可变长度有效载荷字段的数据包.到目前为止,我一直在使用向量作为有效负载,所以我的结构设置如下:

struct a_struct{
 hdr a_hdr;
 vector<unsigned int> a_vector;
 tr a_tr;
};
Run Code Online (Sandbox Code Playgroud)

当我尝试访问向量的成员时,我得到一个seg错误,整个结构的sizeof给我32(在我向向量添加了大约100个元素之后).

这是一个好方法吗?什么是更好的?

我发现这篇文章 变量大小的结构C++ 他使用了一个char数组,但我正在使用一个向量.

c++ packets data-structures

0
推荐指数
1
解决办法
1352
查看次数

C中的字符串解析

我正在尝试将字符串传递给chdir().但我似乎总是有一些尾随的东西使chdir()失败.

#define IN_LEN  128

int main(int argc, char** argv) {

    int counter;
    char command[IN_LEN];
    char** tokens = (char**) malloc(sizeof(char)*IN_LEN);
    size_t path_len; char path[IN_LEN];

      ...

    fgets(command, IN_LEN, stdin) 
    counter = 0;
    tmp = strtok(command, delim);
    while(tmp != NULL) {
        *(tokens+counter) = tmp;
        tmp = strtok(NULL, delim);
        counter++;
    }

    if(strncmp(*tokens, cd_command, strlen(cd_command)) == 0) {
        path_len = strlen(*(tokens+1));
        strncpy(path, *(tokens+1), path_len-1); 
    // this is where I try to remove the trailing junk... 
    // but it doesn't work on a second system
        if(chdir(path) …
Run Code Online (Sandbox Code Playgroud)

c string

0
推荐指数
1
解决办法
394
查看次数

在结构中存储可变大小的字符串

我正在使用流读取C++中的文件,特别是fstream,而不是ifstream.

blah blah blah\n
blah blah\n
blah blah blah blah \n
end
Run Code Online (Sandbox Code Playgroud)

这一遍又一遍地重复

  1. 每行中有多少个blah,
  2. 每一端之间的线数恒定,end是这里的分隔符

我想读取一组数据,然后将其存储在C样式结构的字符数组中.我开始尝试使用getline(),但分隔符只能是一个字符,而不是三个字符.我显然不能尝试使用read()读取一定数量的字节,因为每个集合的数字都不同.

所以我对这里最简单(也是最强大)的事情感到震惊.我应该调用getline直到找到'end'字符串,同时反复追加每个字符串?

我尝试了一个2D字符数组,但我复制到它有点痛苦.我可以在这里使用strncpy吗?我认为这不起作用

char buf[10][10];
strncpy(buf[1], "blah blah",10);
Run Code Online (Sandbox Code Playgroud)

我在这里有一些想法,但我不确定哪一个(或者我没有的那个)是最好的.

编辑:所以这是一个网络应用程序,因此char数组(或字符串)的大小应始终相同.此外,结构中应该没有指针.

相关问题:char数组和std :: string存储在内存中的方式是一样的吗?我总是在std :: string上有一些开销.

c++ string

0
推荐指数
1
解决办法
302
查看次数

std ::已知序列的载体

我正在尝试通过"C++方式"来做所有事情来学习C++.我正在编写一个程序,其中包含所有这些已知值(在编译时).这是我的问题:

在我的构造函数中,我想检查传递的值(一个int)是否是2,4,8,16或32中的一个,否则抛出一个错误.我虽然说:

  1. 制作C样式数组或整数
  2. 手工创建矢量并通过它进行交互检查
  3. 列表?我之前从未使用过列表.

我真正想要做的是在一个单独的头文件中创建一个const向量,但这似乎不可能.

这种检查最优雅的方法是什么?

此外,类似地是否有任何方法可以在标题中生成具有设定数量的已知值(在编译时)的向量?如果我能做到,const std::string a_str("a string");我不明白为什么我不能对矢量使用类似的技术.

c++ vector

0
推荐指数
2
解决办法
243
查看次数

标签 统计

c++ ×4

data-structures ×2

string ×2

c ×1

classpath ×1

java ×1

javac ×1

packets ×1

vector ×1