小编Ulr*_*rdt的帖子

如何将char*转换为TCHAR []?

char*  stheParameterFileName = argv[1]; //I'm passing the file name as  a parameter.
TCHAR szName [512];
Run Code Online (Sandbox Code Playgroud)

我怎样才能转换char*TCHAR []

c++ winapi tchar visual-studio-2012

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

int to void *-避免使用C样式转换?

我需要将int(指定一个字节偏移量)强制转换为const void*。真正适合我的唯一解决方案是c样式强制转换:

int offset = 6*sizeof(GLfloat);
glVertexAttribPointer(1,3,GL_FLOAT,GL_FALSE,0,(void*)offset);
Run Code Online (Sandbox Code Playgroud)

我想摆脱c风格的转换,但找不到有效的解决方案。我试过了

static_cast<void*>(&offset)
Run Code Online (Sandbox Code Playgroud)

并进行编译,但这不是正确的解决方案(此方法的整体输出有所不同)。正确的解决方案是什么?

链接至的文档glVertexAttribPointer链接

c++ opengl pointers casting void-pointers

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

错误:将已删除的函数'test :: test(const test&)C++与向量结合使用

我有一个我不明白的问题.我有一个产生线程的类.一切都好.我做了一个新对象 - 一切都好.如果我将这些存储在一个向量中来迭代我的代码就无法编译.我用g ++ 4.9 i686.我制作了以下简短的程序,它完全模仿了问题,因为真正的代码相当广泛.如果有人能够澄清或给我一个对我的宠物项目很有帮助的解决方案,因为我坚持这个.代码如下:

#include <thread>
#include <string>
#include <iostream>
#include <vector>

class test
{
public:
    test();
    void setstring(std::string s);
    ~test() { }
    void runThread() { m_thread = std::thread(&test::print, this); }
    void stop() {on=false;m_thread.join(); }
private:
    std::string s;
    bool on=false;
    std::string m_data;
    std::thread m_thread;
    void print();
};

test::test(){s="";m_data="";}

void test:: print() { std::cout << "I'm running" << '\n'; on = true;
    while(on==true){std::cout << m_data << '\n';}
}

void test:: setstring(std::string s){m_data = s;}

int main()
{
//this works …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

我们声明结构的两种方式有什么区别?

作为C++的初学者,我正在学习链表和其他数据结构.在线查看了一些实现后,我发现了这两种定义struct的方法.两者有什么区别.在一个中,我们在下一个指针之前添加"struct",而在一个中我们不添加.

方式1:

struct node
{
   int data;
   node *next;
};
Run Code Online (Sandbox Code Playgroud)

方式2:

struct node
{
   int data;
   struct node *next;
};
Run Code Online (Sandbox Code Playgroud)

c++ syntax

4
推荐指数
2
解决办法
170
查看次数

Bash - 如果存在,如何去除字符串中的第一个和最后一个斜杠?

什么是最有效的获取方式:

'a/b/c'
Run Code Online (Sandbox Code Playgroud)

out of input string 可以是以下任何一种:

'/a/b/c/'
'a/b/c/'
'/a/b/c'
'a/b/c'
Run Code Online (Sandbox Code Playgroud)

在 bash 脚本中?

bash

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

&amp;array[i] 总是等价于 (array + i) 吗?

最近看到一段C代码是这样的:

#include <stdio.h>

int main(void) {
    int array[5] = {1, 2, 3, 4, 5};

    for (int* ptr = &array[0]; ptr != &array[5]; ptr++)
        printf("%d\n", *ptr);

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

由于运算[]&在 C 中优先于运算符,因此我认为&array[5]等效于&(*(array + 5)),这会导致未定义的行为(我们不允许取消引用array + 5)。这就是为什么我怀疑上面的代码格式错误。(顺便说一下,我知道这ptr != array + 5没关系。)

我使用带有-O0 -fsanitize=address,undefined编译器标志的GCC 11.1.0 和 Clang 12.0.0 测试了这段代码,但两个编译器都解释&array[5]array + 5,并且没有发生意外行为。

是否&array[i]总是等同于array + i(即使array[i]是无效的)?先感谢您。

c pointers undefined-behavior language-lawyer

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

如何通过Go在Linux中将文件挂载为只读?

我想知道如何通过 Golang 在 Linux CentOS 7 Server 中将文件挂载为只读。我尝试过系统调用,但这不起作用,系统调用挂载文件,但作为读写我尝试在数据中给出 ro 参数,但它仍然作为读写挂载。这是我的代码:

syscall.Mount(src, dst, "auto", syscall.MS_BIND, "ro")
Run Code Online (Sandbox Code Playgroud)

你可以看到我在数据中给出了ro参数,我也尝试只给出rreadonly以及只读,但当我编译 go 文件并执行它然后当我检查 /etc/ 时,它们都不起作用mtab 然后我得到这个输出:

cat /etc/mtab | grep "firewall"
/dev/vda1 /root/firewall.txt ext4 rw,relatime,data=ordered,jqfmt=vfsv1,usrjquota=quota.user 0 0
Run Code Online (Sandbox Code Playgroud)

这里可以看到firewall.txt挂载为rw表示读写

我想将其安装为只读,任何人都可以帮助我如何在 Golang 中做到这一点?

linux mount go unmount

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

我们是否违反了严格别名规则?

这段代码中是否存在严格别名规则违规?我认为int->charint->std::byte都可以,但是呢int8_t

int main() {
    int arr[8] = {1, 1, 1, 1, 1, 1, 1, 1}; // Little endian: 10000000 | 10000000 ....
    int8_t *ptr = (int8_t*)arr; // Do we have a violation of the Strict Aliasing rule in this cast?
    ptr += 3; // 100[0]0000 ....

    cout << (int)*ptr << endl; // outputs 0
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

c++ strict-aliasing language-lawyer

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

TypeError:__ init __()缺少2个必需的位置参数:'client_socket'和'statusMessage'

import socket
import sys

class SimpleClient:
    def __init__(self, client_socket, statusMessage):
        self.client_socket = client_socket
        self.statusMessage = statusMessage

    def connectToServer(self):
        self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

        host  = 'cs5700sp15.ccs.neu.edu'
        port  = 27993

        remote_ip = socket.gethostbyname(host)

        try:
            self.client_socket.connect((remote_ip, port))
        except socket.error:
            print ('Connection failed')
            sys.exit()

        print ('Connection successful')

    def sendHelloMessage(self):
        """This funtion sends the initial HELLO message to the server"""
        nu_id = input('Enter your NUID: ')
        hello_message = 'cs5700spring2015 HELLO {}\n'.format(nu_id)
        self.client_socket.send(bytes(hello_message, 'ascii'))

    def receiveStatusMessage(self):
        """This function receives the STATUS message from the server"""
        self.statusMessage …
Run Code Online (Sandbox Code Playgroud)

python

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

以 root 身份在启动时运行 Python 脚本

我写了一个想要在启动时执行的 python 程序,但它必须以 root 身份执行,我不知道如何执行。我需要做些什么来实现这一目标?我应该把文件放在哪里(脚本在一个包含必要 python 包的文件夹中)以便它在启动时运行?如何以 root 身份运行文件?无论是将python文件夹放在某个目录下,使用其他脚本执行python脚本,还是其他方式,请分享您的解决方案!我是在树莓派上做的,所以操作系统是 Linux。

python boot root raspberry-pi

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