小编bit*_*ask的帖子

请问内存分配和垃圾收集有什么区别?

我知道'垃圾收集'是一种内存管理形式,它是一种自动回收未使用内存的方法.

但是什么是"内存分配"以及与"垃圾收集"的概念差异?

memory-management

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

如何将char转换为以uint8_t形式存储的十六进制?

假设我有这些变量,

const uint8_t ndef_default_msg[33] = {
    0xd1, 0x02, 0x1c, 0x53, 0x70, 0x91, 0x01, 0x09,
    0x54, 0x02, 0x65, 0x6e, 0x4c, 0x69, 0x62, 0x6e,
    0x66, 0x63, 0x51, 0x01, 0x0b, 0x55, 0x03, 0x6c,
    0x69, 0x62, 0x6e, 0x66, 0x63, 0x2e, 0x6f, 0x72,
    0x67
};
uint8_t *ndef_msg;
char *ndef_input = NULL;
Run Code Online (Sandbox Code Playgroud)

我如何将ndef_input(只是一个纯文本,如"你好")转换为十六进制并保存到ndef_msg?正如您所看到的那样ndef_default_msg是十六进制形式.里面的数据也ndef_msg应该是这样的.

有点背景,在原始程序(源代码)中,程序将打开一个文件,获取数据并将其放入内部ndef_msg,然后将其写入卡中.但我不明白它如何获取数据并转换为十六进制.

我想简化程序,以便直接询问用户的文本(​​而不是要求文件).

c hex uint

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

代码生成和规则扩展

假设我有一个 make 规则:

.PHONY:gen
gen: auto.template
        generate-sources auto.template
Run Code Online (Sandbox Code Playgroud)

创建一批文件,例如auto1.srcauto2.srcauto3.src等等。

如果我现在有从*.src文件构建目标的规则,如下所示:

$(patsubst %.src,%.target,$(wildcard *.src)): %.target: %.src
        build $< > $@
Run Code Online (Sandbox Code Playgroud)

如何告诉 make 首先执行gen规则,然后扩展第二个规则模板的前提条件?欢迎使用 GNU 扩展。

注意:我想将它保留在一次 make调用中;对此的一个简单解决方案是将第二条规则放在次要规则中Makefile.secondrun$(MAKE) -f Makefile.secondrungen处理后调用。但我想知道是否有更好的选择。

code-generation makefile

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

I'm having problems with UUserWidgets on UE5

I'm following a tutorial on user widgets and after I add TSubclassOf<UUserWidget> widgetClass; it gives me an error I can't figure it out:

MainPlayer.gen.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) class UClass * __cdecl Z_Construct_UClass_UUserWidget_NoRegister(void)" (__imp_?Z_Construct_UClass_UUserWidget_NoRegister@@YAPEAVUClass@@XZ) referenced in function "void __cdecl `dynamic initializer for 'public: static struct UECodeGen_Private::FClassPropertyParams const Z_Construct_UClass_AMainPlayer_Statics::NewProp_widgetClass''(void)" (??__E?NewProp_widgetClass@Z_Construct_UClass_AMainPlayer_Statics@@2UFClassPropertyParams@UECodeGen_Private@@B@@YAXXZ)"
Run Code Online (Sandbox Code Playgroud)

the img:https://i.stack.imgur.com/VKGZO.png

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "Camera/CameraComponent.h"
#include "GameFramework/SpringArmComponent.h"
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "Blueprint/UserWidget.h" …
Run Code Online (Sandbox Code Playgroud)

c++ linker unreal-engine5

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

为什么 ADL 在依赖类型名上失败?

我注意到get<0>(t)无法解析std::get<0>(t)其参数类型是否依赖于模板参数:

template <typename T>
void foo(T) {
  std::tuple<T> tup{0};
  get<0>(tup) = 1; // error: 'get' was not declared in this scope; did you mean 'std::get'?
}
Run Code Online (Sandbox Code Playgroud)

foo如果不是模板(即如果tup声明为std::tuple<int>)或使用 ,则效果很好using std::get;。难道它不应该在 ADL 通常特别有用的函数模板中工作吗?

c++ argument-dependent-lookup

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

如何强制ssh执行bash而不是远程机器上的用户默认值?

我想用ssh执行一个bash脚本但是当我尝试这个时它使用的是用户默认shell的ksh.

我不能改变那个默认值.

那么,我如何欺骗ssh用bash而不是默认shell来执行我的脚本?

ssh bash

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

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

C++比较两个对象

我有这个功能:

bool operator==(const foo& foo1, const foo& foo2)
Run Code Online (Sandbox Code Playgroud)

如何将两个对象相互比较,是否有一个允许我做的库函数?或者我必须在物理上比较对象内的每个变量.

编辑:

foo 对象成立:

private: 
int *values;
size_t *columns; 
std::map< size_t, std::pair<size_t, unsigned int> > maps;
Run Code Online (Sandbox Code Playgroud)

c++ compare object

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

链接列表查找长度 - 这两个函数之间的差异是什么?

这两个功能有什么区别吗?我的意思是返回的结果?

int Length(struct node* head) {
  struct node* current = head;
  int count = 0;

  while (current != NULL) {
    count++;
    current = current->next;
  }

  return count;
}
Run Code Online (Sandbox Code Playgroud)

和这个功能

int Length(struct node* head) {
  int count = 0;

  while (head != NULL) {
    count++;
    head = head->next;
  }

  return count;
}
Run Code Online (Sandbox Code Playgroud)

c linked-list

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

为什么我需要像临时构造这样的复合文字来初始化我的std :: array成员?

考虑这个最小的例子:

#include <array>
struct X {
  std::array<int,2> a;
  X(int i, int j) : a(std::array<int,2>{{i,j}}) {}
  //                 ^^^^^^^^^^^^^^^^^^       ^
};
Run Code Online (Sandbox Code Playgroud)

根据其他帖子,我不应该在这种情况下明确构建一个临时的.我应该写:

  X(int i, int j) : a{{i,j}} {}
Run Code Online (Sandbox Code Playgroud)

但是这个和我试过的其他几个(类似的)版本都被我的(不可否认的很老)g ++ 4.5.2拒绝了.我目前只有一个用于实验.它说:

error: could not convert ‘{{i, j}}’ to ‘std::array<int, 2ul>’

这是这个编译器实现的限制还是正在发生的事情?

c++ compiler-errors g++ compound-literals c++11

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

如何在C中将char []转换为char*?

问题非常简单.如何转换char[]到一个char*用C?我真的很难找到解决方案.所以你的帮助非常感谢:)

这就是我需要这个的原因:

sprintf(name,"%c%c%%HACKED%c%c.virus",a,b,c,d); // print a formatted text to string (char[])
strcat(buffer,currentPath); // currentPath is of data type char[]
strcat(buffer,"\\");
strcat(buffer,name); // Now this is where the problem comes in. Since strcat function needs a const char* for it's second argument.

printf("%s",name);
Run Code Online (Sandbox Code Playgroud)

c type-conversion

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

链接时为什么会出现未定义的符号?

我有两个类Triangle,ALine我想在其构造函数中ALine为属性分配新实例Triangle.但是我收到了这个错误

Undefined symbols for architecture x86_64:
  "ALine::ALine()", referenced from:
      Triangle::Triangle(triangle) in Triangle.o
ld: symbol(s) not found for architecture x86_64
Run Code Online (Sandbox Code Playgroud)

以下是我写的代码:

ALine.cpp

#include "Geometry.h"
#include "ALine.h"



ALine::ALine(point a, point b)
{       
        double tmpy = a.y - b.y;
        double tmpx = a.x - b.x;
        double tmpk;
        if(equals(tmpy, 0))
        {
            tmpk = 0;
        }
        else
        {
            tmpk = tmpx/tmpy;
        }
        double tmpq = a.y - tmpk*a.x;
        if(equals(tmpx, 0))
        {
            if(equals(a.x, 0))
            {
                if(equals(b.x, 0)) tmpk …
Run Code Online (Sandbox Code Playgroud)

c++ linker-errors ld

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