假设我已经分配了一些字符new char[number].
是否有可能只删除一些结束字符(类似于delete[] (charArray + 4);,除了前四个字符之外,它们应该取消分配所有字符)?
我读到一些实现' new[]存储在对象数组之前分配的对象数,以便delete[]知道要分配多少对象,所以做我要求的事情可能不安全...
谢谢.
编辑:
是否使用单独的delete语句手动删除不需要的结束字节是一种安全的方式来做我要问的事情?
所以我有这个SFML 1.6应用程序在Mac OS X Lion上运行良好.目前我的方式是SFML框架在/ Library/Frameworks中并且运行良好,但是要在其他机器上安装它需要管理员权限.所以我想做以下其中一项:
能够在/ User/idk/Library/Frameworks或类似的库中安装库
将库和应用程序打包到Mac磁盘映像中,并让它从那里引用库
静态链接库
既然程序是使用带有makefile的终端构建的,我希望解决方案是在终端而不是XCode,但如果绝对必要,那么我想我可以以某种方式将项目导入XCode.
那么,任何人都可以解释(精确地)如何做到上面三个中的任何一个,哪个是最容易做到的?
顺便说一句,我正在使用随XCode 4.1一起提供的LLVM GCC 4.2进行编译.
编辑:
除了静态链接之外,有人会尝试另外两个吗?
假设我有两个类继承具有纯虚函数的基类。这两个类都实现了该函数的自己的版本,但是不添加其他成员变量,因此它们具有相同的大小。现在有时候,在程序执行的中间,我想将一个类转换为另一个类,而不复制其所有数据。所以基本上我想让它使用其他类的虚拟表。有便携式的方法吗?
使用Xlib库可以使用什么函数来截取X11桌面的屏幕截图?我更喜欢一种比获取单个像素更有效的方法.谢谢.
我写了一个小程序来查看创建线程所需的开销.
这是程序(我写得很快,所以它不是最好的):
#include <iostream>
#include <pthread.h>
void * lala(void * cake) {
int * hi = (int *)cake;
std::cout << *hi << '\n';
}
int main(void) {
pthread_t thread;
for (int i = 0;i < 10000;i = i + 1) {
pthread_create(&thread,0,lala,&i);
}
}
Run Code Online (Sandbox Code Playgroud)
它基本上启动10000个线程并传递它们的线程号,每个线程输出它的号码.
每次运行程序时输出都会改变,但是我注意到有一个部分从未改变过:
在输出结束时,我总是发现:
...
9994
9995
9996
9997
9998
9999
0
Run Code Online (Sandbox Code Playgroud)
这意味着第一个线程最后完成...
所以,我的朋友们,有没有人对这种现象有可能的解释?
我正在寻找一种能够实现快速搜索的二进制数据结构(树,列表).我只会在程序的开头/结尾添加/删除项目.因此它将是固定大小的,因此我并不真正关心插入/删除速度.基本上我正在寻找的是一种提供快速搜索并且不使用太多内存的结构.
谢谢
假设我有一个随意的单字节变量.我认为几乎所有系统的单字节操作都是原子的,但如果不是,请告诉我.现在,假设一个线程更新了这个变量.我应该期望/准备此更新多长时间出现在其他线程中?我知道我可以将更新放在互斥锁/锁定/屏障周围,以确保它在任何地方同步,但我对此很好奇.等待时间可能会有所不同,具体取决于其他线程是否位于不同的处理器/内核上,也可能取决于处理器类型.
我是否合乎逻辑地想知道这一点,还是我误解了什么?
在命令行中创建类似 GUI 的感觉的最佳、最便携、最简单的方法是什么?
基本上,我要求一个库,它允许您更改背景和文本颜色,在控制台底部有一个文本输入区域,并且能够在命令行中编辑某个区域而无需清除整个屏幕。有这样的图书馆吗?
来自 IRSSI 的示例

谢谢你。
所以我正在制作自己的点对点UDP协议,我想添加加密,所以基本上我想让客户端交换公共加密密钥.我将使用什么库,以及如何生成密钥并使用它们进行加密?
基本上,我想要做的是这样的事情:
template<typename x,typename y,typename z>
struct SomeTemplateClass {
typedef x myType;
};
Run Code Online (Sandbox Code Playgroud)
然后...
SomeTemplateClass<LongVariableNames,ILikePie,AndCheese> cheese;
cheese.myType i;
Run Code Online (Sandbox Code Playgroud)
所以i会有类型LongVariableNames.
我知道做这样的事情可能是不好的做法,但我只是想知道.做这样的事最简单的方法是什么?
我的意思是,应该可以在编译时轻松解决这个问题,因为强大的静态类型等等.有一件typeof()事情会很有用sizeof().
c++ ×9
c ×2
pthreads ×2
binary-tree ×1
console ×1
desktop ×1
encryption ×1
gcc ×1
hashtable ×1
linked-list ×1
linux ×1
macos ×1
memory ×1
networking ×1
new-operator ×1
sfml ×1
templates ×1
typedef ×1
vptr ×1
x11 ×1
xlib ×1