小编djo*_*010的帖子

字节数组赋值

byte test[4];
memset(test,0x00,4);

test[]={0xb4,0xaf,0x98,0x1a};
Run Code Online (Sandbox Code Playgroud)

上面的代码给了我一个错误,期望在']'标记之前的primary-expression.谁能告诉我这种类型的任务有什么问题?

c++

7
推荐指数
3
解决办法
3万
查看次数

使用std :: copy的问题

我在使用std复制功能时收到警告.

我有一个byte我声明的数组.

byte *tstArray = new byte[length];
Run Code Online (Sandbox Code Playgroud)

然后我有几个其他字节数组声明和初始化一些十六进制值,我想根据一些初始用户输入使用.

我有一系列if语句用于基本解析原始输入,并且基于某些字符串,我选择使用哪个字节数组,并在此过程中将结果复制到原始tstArray.

例如:

if(substr1 == "15")
{
   std::cout<<"Using byte array rated 15"<<std::endl;
   std::copy(ratedArray15,ratedArray15+length,tstArray);
} 
Run Code Online (Sandbox Code Playgroud)

我得到的警告是警告C4996:'std :: copy':带有可能不安全的参数的函数调用 - 此调用依赖于调用者来检查传递的值是否正确.

一种可能的解决方案是通过使用-D_SCL_SECURE_NO_WARNINGS来禁用此警告,我认为.嗯,这就是我正在研究的内容.

但是,我不确定这是否意味着我的代码真的不安全,我实际上需要做一些检查?

c++ stl

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

内存占用问题

我只是很好奇我在unix中有一个大约9MB的二进制可执行文件.被认为是一个大的内存占用?客户端将调用它来生成一些值,然后将消息排队到其他地方.我只是好奇谁能想知道程序的内存占用时间是多少,然后必须提供类似静态库而不是可执行文件?

c++

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

在不同的环境中使用char*vs std :: string

我一直在我的代码中使用std :: string.我打算创建一个std :: string并通过引用传递它.但是,有人建议使用char*代替.移植代码时,关于std :: string的东西是不可靠的.真的吗?我已经避免使用char*,因为我需要为它做一些内存管理.相反,我发现使用std :: string更容易使用.

基本上我有一个10位数的输出,我存储在这个字符串中.Atm,我不确定哪个更好用.

c++

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

为什么stroull()不能处理具有十六进制值的字节数组?

这里有一些关于我的长期问题的新测试代码.我认为如果我长时间编码我的东西那么这就是移植的一半.另一半是将它变成大端,因此它可以在任何64位系统上工作.所以我做了以下事情:

#include <iostream>  
#include "byteswap.h"
#include "stdlib.h"

using namespace std;

int main()

{

char bytes[6] = {0x12,0x23,0xff,0xed,0x22,0x34};


//long *p_long = reinterpret_cast<long*> (bytes);


long long *p_long = reinterpret_cast<long long*> (bytes);


std::cout<<"hex="<<std::hex<<*p_long<<"LE"<<std::endl;


*p_long = bswap_64(*p_long);


std::cout<<"hex="<<std::hex<<*p_long<<"BE"<<std::endl;




return 0;

} 
Run Code Online (Sandbox Code Playgroud)

在我看来,这是最简单的方法.现在的问题是使用bswap ...我得到以下输出

hex = 34563422edff2312LE hex = 0BE

我把第一个字节作为LE.但现在似乎64位交换功能无效.我认为这可以解决我遇到的问题.

考虑到我将在一个20字节的阵列上运行.我也不确定如何使用指针来做到这一点.我想我需要一个长长指针数组来存储所有这些东西,然后在每个指针上调用byteswap来交换每个指针中的值.我个人还没有通过sizeof(long)进行指针递增,以便在之前递增.

c++

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

标签 统计

c++ ×5

stl ×1