小编Ter*_* Li的帖子

指向共享内存 POSIX 的指针类型

我最初的问题在这里,似乎没有人感兴趣。

我决定打破这个乏味的问题并提出以下问题:

char* shared_memory;
shared_memory = (char*) shmat (segment_id, 0, 0);
Run Code Online (Sandbox Code Playgroud)

我们通常会像上面的例子那样获得指向共享内存的指针吗?换句话说,我们应该总是将指针投射到char*更适合我们需要的地方吗?

c c++ pointers shared-memory

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

将数组值重置为0的最简单方法是什么?

假设我们有一个指针(例如,定义为int*p)到数组的开头和数组的大小(例如,1000).我们想将所有1000个数组值重置为0.最简单的方法是什么?

c arrays

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

C++宏乘法发生了什么

#define MAX 265

std::cout << 0 * MAX << std::endl; //to my surprise, the output is 9 rather than 0
Run Code Online (Sandbox Code Playgroud)

这个C++宏乘法有什么问题?

编辑:

以下是完整版本.

#include <stdio.h>
#include <string.h>
#include <iostream>

#define NAME_BYTES 256
#define VERSION_BYTES 256
#define SIZE_BYTES 32
#define USED_LOCK_COUNT_BYTES 32
#define LOCK_NAME_BYTES 256
#define LOCK_TYPE_BYTES 1
#define PID_BYTES 4
#define TID_BYTES 4
#define LOCK_BYTES LOCK_NAME_BYTES + LOCK_TYPE_BYTES + PID_BYTES + TID_BYTES 
#define HEADER_BYTES NAME_BYTES + VERSION_BYTES + SIZE_BYTES + USED_LOCK_COUNT_BYTES

int main() {
  std::cout << "LOCK_BYTES: " << …
Run Code Online (Sandbox Code Playgroud)

c++ macros multiplication

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

G ++编译器不能用同名来区分变量和函数吗?

可能重复:
类方法和具有相同名称的变量,C++中的编译错误不在Java中?

当我的类成员名称和成员函数名称相同时,G ++编译器会抱怨.似乎每当变量名称恰好与函数名称相同时,编译器就会抱怨.

在Java中,情况并非如此.我只是想知道为什么G ++编译器无法区分变量名和函数名,因为函数名总是带有一对括号.

c++ compiler-construction naming-conventions method-names

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

如何充分利用多个处理器?

我正在使用Java在具有32个虚拟处理器的服务器上进行Web爬网.我怎样才能充分利用这些处理器?我已经看到了一些关于多线程编程的建议,但我想知道如何确保所有处理器都能被利用,因为我们也可以在单处理器机器上进行多线程编程.

java multithreading web-crawler multiprocessing

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

内部联接的MySql更新语法错误

UPDATE
    `universities`
SET
    `universities`.countryid = `countries`.id,
FROM
    `universities`
INNER JOIN
    `countries`
ON
    `universities`.country = `countries`.name
Run Code Online (Sandbox Code Playgroud)

当我尝试通过PhpMyAdmin运行上面的sql语句时,它会产生语法错误.我根据这个答案写了这些陈述.

mysql sql phpmyadmin inner-join sql-update

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

一个简单的Ruby脚本冻结我的机器

CONSTANT = 1000000000000000000
array = (1..CONSTANT).to_a

start = Time.now
array.each do |i|
  if 1000 < i < CONSTANT * 9 / 10

  elsif i > CONSTANT * 9 / 10

  else

  end 
end
finish = Time.now

puts "Running time: #{finish - start} seconds"
Run Code Online (Sandbox Code Playgroud)

我编写了上面的脚本,试图找出通过重新排序控制分支可以节省多少时间.该脚本在运行后立即冻结我的机器,无法通过CTL + C终止.有人可以指出那里发生了什么吗?

ruby freeze

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

确定它是否是C++中的进程或线程

给一个void *变量作为输入(只能指向一个进程或线程),我想首先确定它的类型,然后将其转换为该类型.

我应该如何在C++中做到这一点?我知道这是一个愚蠢的问题,但我以前从未做过C/C++,也不能想到C/C++.

编辑:我需要在Linux和Windows上实现这一点.

c++ multithreading pointers process void-pointers

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

给定一个线程id,如何在Linux上的C++中确定它是否存活

只给出线程ID,是否有可能从那里决定线程是否仍然存在?我在谈论Linux上的C++.

c++ linux multithreading pthreads

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

给定一个线程ID,如何确定它在Windows上是否仍在运行

在linux上,我们有pthread_kill()来做这件事.我正在尝试找到它的Windows对应物.

换句话说,给定一个线程ID,有没有办法来判断线程是否仍在运行?

GetExitCodeThread()是我发现的最接近的,但它需要线程句柄而不是线程id作为其参数.

c++ windows multithreading

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