我需要在c中加入"hello world".我怎样才能做到这一点 ?
string a = "hello ";
const char *b = "world";
const char *C;
Run Code Online (Sandbox Code Playgroud) 假设以下代码:
#include <iostream>
template<typename... T>
void foo(const T &...);
template<unsigned N>
void foo(const char (&)[N])
{
std::cout << "char(&)[N]" << std::endl;
}
void foo(const char *)
{
std::cout << "const char *" << std::endl;
}
template<typename T>
void foo(const T &)
{
std::cout << "Single" << std::endl;
}
template<typename First, typename... T>
void foo(const First & first, const T &... rest)
{
std::cout << "Generic + " << sizeof...(T) << std::endl;
foo(first);
foo(rest...);
}
int main()
{
const char * …Run Code Online (Sandbox Code Playgroud) 我一直在尝试这几个小时,谷歌所有我想到的东西,但我会发疯.
我有一个结构:
typedef struct {
int rows;
int collumns;
int* mat;
char* IDs_row;
} mem;
Run Code Online (Sandbox Code Playgroud)
我不知道int*(一个矩阵)和char*的大小,直到稍后.
当我这样做时,我创建了这样的共享内存:
mem *ctrl;
int size = (2 + ((i-1)*num_cons))*sizeof(int) + i*26*sizeof(char); //I have the real size now
shmemid = shmget(KEY, size, IPC_CREAT | 0666);
if (shmemid < 0) {
perror("Ha fallado la creacion de la memoria compartida.");
exit(1);
}
ctrl = (mem *)shmat(shmemid, 0, 0);
if (ctrl <= (mem *)(0)) {
perror("Ha fallado el acceso a memoria compartida");
exit(2);
}
Run Code Online (Sandbox Code Playgroud)
这里没问题.然后我给ctrl-> rows和collumns一个值,并为所有矩阵赋值0.
但在那之后,我在char*和bam中写了一些东西,分段错误.
调试程序我看到指针,mat和IDs_row都为null.如何在共享内存段中为它们提供正确的值? …
我经常听司机开发人员说尽可能避免内核模式切换.我无法理解确切的原因.从我的理解开始是 -
在这些操作中,系统调用几乎像普通函数调用一样工作.虽然sysenter可能表现得像一个错误预测的分支,这可能导致处理器流水线中的ROB刷新.即使这并不是很糟糕,它就像任何其他错误预测的分支一样.
我听到一些人在Stack Overflow上回答:
while(1);不保证无上下文切换.实际的系统调用成本来自哪里?
我正在开发一个在linux环境下运行的C++应用程序.我需要存储6个deciaml位置的大值.我用了一个双.但是在赋值之后,double变量不包含确切的值.它完善了.
例如:
double dValue = 79447461534242.913072; //Assignement of value
Run Code Online (Sandbox Code Playgroud)
但在那之后,当我看到dValue中的值时,它就像79447461534242.906
有人可以告诉我为什么会这样,并建议我正确的数据类型,它可以保持精确的值而不会失去精度.
所以我有一个地址,%eax我想jmp但代码不会编译,有没有办法解决这个问题?
movl 0xdeadbeef, %eax
jmp %eax ; <--- compile error: type mismatch for 'jmp'
Run Code Online (Sandbox Code Playgroud) 我想比较两个字符串值,如下所示:
if (lblCapacity.Text <= lblSizeFile.Text)
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
如果可以,则可以索引到可变参数模板参数包而不进行递归.但是,海湾合作委员会拒绝接受我的部分专业化:
template <int I, typename List>
struct element_impl;
template <typename... TL, int... IL, typename T, int I, typename... TR, int... IR>
struct element_impl<I, typelist<pair<TL,IL>..., pair<T,I>, pair<TR,IR>...>> {
typedef T type;
};
Run Code Online (Sandbox Code Playgroud)
prog.cpp:实例化'
element<0, typelist<int, double, char, float, long int> >':
prog.cpp:52:34:从这里实例化
prog.cpp:47:79:错误:无效使用不完整类型'struct element_impl<0, typelist<pair<int, 0>, pair<double, 1>, pair<char, 2>, pair<float, 3>, pair<long int, 4> >'
是GCC有缺陷的,还是我忽略了可变参数模板的一些限制?
在编写C++代码时,我了解到使用堆栈存储内存是个好主意.
但最近我遇到了一个问题:
我有一个实验,其代码如下所示:
void fun(const unsigned int N) {
float data_1[N*N];
float data_2[N*N];
/* Do magic */
}
Run Code Online (Sandbox Code Playgroud)
代码随机抽取了一个seqmentation故障,我不明白为什么.
事实证明,问题是我试图在我的堆栈中存储大的东西,有没有办法检测到这个?或者至少检测到它出错了?
我的教授说,建议使用PIT而不是RTC来实现基于纪元的循环调度程序.他没有真正提到任何具体原因,我也想不出任何理由.有什么想法吗?