这是一个简单的程序,我尝试用向量来理解内存分配/自由行为.struct有一个vector<int>as成员.我的理解是clear()对向量的调用将导致向量元素的内存不受影响.但是valgrind标记了内存泄漏.
代码看起来很简单,但是花了很长时间才来到这里.
#include <iostream>
#include <vector>
using namespace std;
struct a {
vector<int> v;
};
int main (void) {
struct a *aptr = (struct a*) calloc(1, sizeof(struct a));
aptr->v.push_back(10);
aptr->v.clear();
free(aptr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
==27649== 4 bytes in 1 blocks are definitely lost in loss record 1 of 1
==27649== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==27649== by 0x4013A7: __gnu_cxx::new_allocator<int>::allocate(unsigned long, void const*) (new_allocator.h:92)
==27649== by 0x4011BE: std::_Vector_base<int, std::allocator<int> >::_M_allocate(unsigned long) (in /homes/dineshb/code_tryout/c++/vectors/a.out)
==27649== by …Run Code Online (Sandbox Code Playgroud) const int z1 = 5;
const int & giveMeNumber1(){
return z1;
}
int z2 = 6;
const int & giveMeNumber2(){
return z2;
}
int main(){
int y = giveMeNumber1();
}
Run Code Online (Sandbox Code Playgroud)
两种函数的返回类型似乎都是const int.我对么?如果是这样,为什么我能分配int y = giveMeNumber1();?
为什么这些函数不返回的实际地址z1和z2分别.我写的时候:
int x = 3; cout << &x << endl;
Run Code Online (Sandbox Code Playgroud)
x打印变量的地址,因此:
cout << giveMeNumber1() << endl;
Run Code Online (Sandbox Code Playgroud)
应该打印地址(const int & return type),但它打印5.
当我在ubuntu中使用arm-none-eabi-g ++工具链尝试以下代码时,我遇到了编译错误:
#include <iostream>
#include <thread> // std::thread
#include <mutex> // std::mutex
mutex mtx; // mutex for critical section
int main ()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
commpile命令:
arm-none-eabi-g++ -Os -Wall -std=c++11 -fno-rtti -fno-exceptions -c mt.cc
Run Code Online (Sandbox Code Playgroud)
编译错误:
mt.cc:5:1:错误:'mutex'没有命名类型mutex mtx; //关键部分的互斥锁
^
gcc版本:
gcc版本4.8.4 20140725(发布)[ARM/embedded-4_8-branch修订版213147](适用于ARM嵌入式处理器的GNU工具)
#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int x;
int y;
cin >> x >> y;
if (x % 5 == 0 && x <= y) {
cout << y - x - 0.50 << "wow"
<< "\n";
} else {
cout << y << "\n";
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输入:
3
30 120.00
42 120.00
300 120.00
Run Code Online (Sandbox Code Playgroud)
输出:(当y为int时)
89.5wow
119.5wow
119.5wow
Run Code Online (Sandbox Code Playgroud)
在这里,即使第二和第三种情况应该给出 false 并运行else ,它也会运行if本身,而且不仅 …
我在使用C++生成二进制随机数时遇到问题.我想创建一个数组,每个元素都包含二进制形式的随机数.我想要将XOR元素放在一起.这是我的代码
void Msg::setXOR(double Code)
{
int array[30];
srand ( time(0) );
for(int j = 0;j<30;j++)
{
i = rand();
array[j]=i
double x = array[j]^ array[j+1]^ array[J+2];
code = x ;
this -> code_var = code
}
}
Run Code Online (Sandbox Code Playgroud)
它不起作用,它不会产生二进制随机数.任何人都可以帮助我如何解决它?
import csv
import datetime as dt
import datetime
import matplotlib.pyplot as plt
x,y = [],[]
csv_reader = csv.reader(open('noneventEventdetect.csv'))
for line in csv_reader:
x.append(line[1])
T = dt.datetime.strptime(line[0],'%Y-%m-%d %H:%M:%S')
#print(T)
y.append(T)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(y,x)
fig.autofmt_xdate()
plt.show()
Run Code Online (Sandbox Code Playgroud)
示例CSV数据(python3.4):
24/5/2013 7:00:00 1
24/5/2013 7:00:00 2
24/5/2013 7:00:00 3
24/5/2013 7:00:00 4
24/5/2013 7:00:00 5
24/5/2013 7:00:00 6
这个错误:
Traceback(最近一次调用最后一次):
文件"C:\ Users\Kitravee\Desktop\New folder(4)\ sdf.py",第12行,in
Run Code Online (Sandbox Code Playgroud)T = dt.datetime.strptime(line[0],'%d-%m-%Y %H:%M:%S')_strptime_datetime中的文件"C:\ Python34\lib_strptime.py",第500行
Run Code Online (Sandbox Code Playgroud)tt, fraction = _strptime(data_string, format)文件"C:\ Python34\lib_strptime.py",第337行,在_strptime中
Run Code Online (Sandbox Code Playgroud)(data_string, format))ValueError:时间数据'2013/05/24 07:00:00'与格式'%d-%m-%Y不匹配 …
#include<iostream>
using namespace std;
int sum(int ,int);
int sum(int ,int );
int main(){
cout<<sum(1,3)<<endl;
}
int sum(int a,int b){
cout<<"hi "<<endl;
return a+b;
}
int sum(int a,int b,char c){
return a+b+c;
}
Run Code Online (Sandbox Code Playgroud)
在上面的程序中,我在 main 之后定义了一个没有原型声明的函数,但是编译器没有产生错误信息。
我尝试在UNIX中执行一个文件.它显示以下错误:
ERROR: Unable to execute 002Sanity: Permission denied
Failed to exec()
Exit Status: 205
Run Code Online (Sandbox Code Playgroud)
怎么解决这个?
我是编程的新手,这可能是一个愚蠢的问题,但我不能让这个简单的代码在Eclipse上工作.我正在使用C++.
int main() {
string fruits[] = {"Apple", "Melon", "Banana". "Orange", "Pineapple"};
cout << "Fruit I want to eat : " << fruit[3] << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不断得到( Statement has no effect 'string')和其他东西错误,帮助?