我对某些事情有点困惑.我的印象是,读取C字符串的正确方法与之scanf()相符
(不要介意可能的缓冲区溢出,这只是一个简单的例子)
char string[256];
scanf( "%s" , string );
Run Code Online (Sandbox Code Playgroud)
但是,以下似乎也有效,
scanf( "%s" , &string );
Run Code Online (Sandbox Code Playgroud)
这只是我的编译器(gcc),纯粹的运气还是别的什么?
是否有一个很好的库/包来使用Scheme(最好是Racket)进行网页抓取?
例如,一个等同于机械化的方案?
为什么
#include <iostream>
using namespace std;
int main() {
cout << (char*)0x10 << endl;
}
Run Code Online (Sandbox Code Playgroud)
但是,段错误
#include <iostream>
using namespace std;
int main() {
cout << (void*)0x10 << endl;
}
Run Code Online (Sandbox Code Playgroud)
似乎工作得很好?
如何将命令行参数传递给SML脚本?我知道有一个CommandLine.arguments()正确的type(unit -> string list)函数,但调用解释器是这样的:
$ sml script_name.sml an_argument another_one
Run Code Online (Sandbox Code Playgroud)
不给我任何东西.指针?
在Racket中,可以通过例如从函数返回多个值
(define (foo)
(values 1 2 3))
Run Code Online (Sandbox Code Playgroud)
然后我们可以通过做绑定它们
(define-values (one two three) (foo))
Run Code Online (Sandbox Code Playgroud)
现在one必然1,two到2和three到3.
我有一个返回多个值的函数,但我只对它们中的一些感兴趣.有没有办法提取"有趣的"返回值,而"忽略"(即不绑定)其余的,_Haskell中的la 模式?
我需要实现一个"常量"集.也就是说,只支持成员资格测试的数据结构.另外(当然),我需要一个工厂例程,给定一个元素列表,构造一个常量集.
请注意,不仅在常量集上不允许变异,而且我不需要返回新常量集的"add"操作(也就是说,一旦初始化发生,我只对测试元素是否感兴趣是否在集合中).
Goold旧哈希表在这里是一个明显的选择,但我想知道,我们能否以某种方式利用我们只需要支持单个操作的事实(并且,在构造集合时,我们知道它的所有元素将是什么)?是否有一个数据结构(可能是一种特殊类型的哈希表)在这里表现得特别好?
是否有一个与ualarm等效的球拍/方案?
即如何在Racket中设置系统计时器?
我想增加通过pthread_create()创建的线程的堆栈大小.走的路似乎是
int pthread_attr_setstack( pthread_attr_t *attr,
void *stackaddr,
size_t stacksize );
Run Code Online (Sandbox Code Playgroud)
来自pthread.h.
但是,根据多个在线参考,
stackaddr应适当对齐以用作堆栈; 例如,如果(stackaddr&0x7)不为0,则pthread_attr_setstack()可能会因[EINVAL]而失败.
我的问题:有人可以举例说明如何进行对齐吗?是(对齐)平台还是依赖于实现?
提前致谢
我有一个A看起来像这样的课程:
class A {
// A's internal state
public:
void someMethod();
void anotherMethod();
};
Run Code Online (Sandbox Code Playgroud)
我想A在另一个班级里面使用B.我不想B成为一个子类型A,但我想要A以某种形式访问B用户的公共方法.
实现此目的的一种方法是简单地包含A以下公共成员的实例B:
class B {
public:
A a;
// other members
};
Run Code Online (Sandbox Code Playgroud)
另一个是A成为私人成员B,并提供围绕A公共方法的包装:
class B {
A a;
public:
void someMethod(){ a.someMethod(); }
void anotherMethod(){ a.anotherMethod(); }
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种"首选"方式(或者甚至可能不涉及上述两种替代方案),或者只是一个偏好问题.谢谢.