看看这个片段:
#include <string>
#include <iostream>
#include <vector>
using namespace std;
class base {
public:
string foo;
base() {};
base(const base &orig) {
this->foo = orig.foo;
};
~base() {} ;
};
class derived : public base {
public:
string bar;
derived(const derived &orig) : base(orig) {
this->bar = orig.bar;
}
derived() : base() {} ;
~derived() {};
};
void asd(derived d)
{
// works fine
cout << d.foo << d.bar << endl;
}
int main(void)
{
vector<derived> v;
derived bla;
bla.foo …Run Code Online (Sandbox Code Playgroud) 我有一个名为"file.wav"的wav文件,我想用C程序读取该文件的一些规范.我在这里找到了wav文件的结构.根据这个文档,在普通的wav文件中,AudioFormat字节应该是0x1和0x0,或者NumChannels字节应该是(如果是单声道)0x1和0x0; 有很多类似的部分应该看起来像这些.
现在,我的C程序非常简单:我以二进制模式打开文件,我寻找AudioFormat部分(第20个字节),我读取两个字节,然后将它们放入缓冲区; 然后我打印到stdin缓冲区内容.
#include <stdio.h>
main()
{
void *buf[2];
FILE *f;
f=fopen("file.wav", "rb");
fseek(f, 20, SEEK_SET);
fread(buf, 1, 2, f);
printf("example: %#hx %#hx\n", buf[0], buf[1]);
/*the '#' flag stands for the 0x[···] format output,
the 'h' says that the number is a short integer (2 bytes).*/
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是第二个字节而不是0x0总是0x4e0,这对于每个应该为0的字节(例如对于NumChannels或BitPerSamples字节也是如此).问题是什么?
我主要使用高级编程语言,但昨天有朋友让我帮他解决一个简单的C++练习,当我正在研究它时,我编写了这段代码:
for (int x = 0; x < 10; x++){
int a, b, c;
a = x;
b = x*2;
c = x+5;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:这是否会导致内存泄漏,使a,b,c始终在内存的不同位置创建,或者它们是否总是被每个循环覆盖?
我是C/C++的新手,也是开发C++应用程序的人.我遇到new和malloc的问题.我的应用程序有点复杂,也有一些C结构.在某些时候,我想为MyData类型的Class(包含一个deque)分配新的内存,后来我将该指针分配给C结构中的指针.我的代码的较小版本如下.
#include <deque>
class MyData
{
public:
MyData(){};
~MyData() {};
std::deque<int>& GetDequeMyDataSet() {return deque_MyDataSet; };
private:
std::deque<int> deque_MyDataSet;//contains ohlc data for the symbol
};
int _tmain(int argc, _TCHAR* argv[])
{
MyData* pMyData = new MyData();
MyData* p_Data = (MyData*)malloc(sizeof(MyData*));
p_Data = pMyData;
p_Data->GetDequeMyDataSet().push_back(10);
p_Data->GetDequeMyDataSet().push_back(11);
//.... Several other push back and operations releated to this deque goes here.
delete pMyData;// At the end I free both memories.
free(p_Data);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在为两个指针分配内存后,我在malloc指针(p_Data)上使用了GetDequeMyDataSet()方法.我的问题是,将mall_back项目推送到此malloc指针的deque是否可以,因为我只为指针分配了内存?malloc可以为deque处理动态内存分配吗?
我试图在revStr.at(j)= str.at(size);下面的c代码行中反转一个字符串;
不会更改revStr中的任何元素。
还有另一种不用任何库就可以做到的方法。
#include <iostream>
#include<sstream>
#include <iterator>
using namespace std;
int main() {
ostringstream d;
long long c = 123456789;
d << c;
//cout << c << endl;
string str = d.str();
//cout << str.at(0) << endl;
int size = str.size() - 1;
//cout << size << endl;
ostringstream e;
e << str;
string revStr = e.str();
for (int i = size; size==0; size--) {
//cout << str.at(size);
int j = 0;
revStr.at(j) = str.at(size);
j++;
} // …Run Code Online (Sandbox Code Playgroud) class my_class_t {
private:
uint64_t field1;
uint64_t field2;
};
Run Code Online (Sandbox Code Playgroud)
C++标准是内存的顺序field1和field2保证吗?
UPD.答案field2说它是,但&field2可能不等于&field1 + 1.如何确保field2将在之后立即field1?
我需要使用 C++11 生成随机字符串的帮助。
我不知道如何继续,如果你能帮助我。
#include <random>
char * random_string()
{
static const char alphabet[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
static const MAX_LEN = 32; //MAX LENGTH OF THE NEW CHAR RETURNED
int stringLength = sizeof(alphabet)/sizeof(alphabet[0]);
for (int i = 0; i<=MAX_LEN;i++)
{
//now i don't know what i need to do help!
}
static const char test[MAX_LEN];
return test;
}
Run Code Online (Sandbox Code Playgroud) 我试图模仿RBS英国网站的类似系统.我实际上增加了实验的安全性.所以我在输入页面上使用了员工ID和验证码机制,一旦用户输入了正确的员工ID和验证码,就会要求输入用户名和密码.所以我想知道从安全的角度来看..那里有员工ID以及Captcha它有什么意义吗?或者解释很简单,作为识别用户的另一件事.让我知道你的意见.
困惑?那么好吧.无论如何,谢谢你
我需要在iPhone上运行我在Xcode中创建的应用程序.它在模拟器中工作正常.我有一个开发人员的帐户,但我没有iPhone SDK.这是棘手的部分:
我使用Cocoa-touch开发了iOS SDK应用程序.现在所有那些监狱破坏的东西都不会在那里工作.我的Mac Mini中没有像/ Developer这样的文件夹.
请帮我在iPhone上运行它来测试它在真实设备上的外观,而不是在模拟器上.
请注意,我没有iPHONE SDK,因此所有越狱技术都无效.或者至少我无法实现.