我在写模式下打开了一个文件,如下所示:
int a = 10;
char b = 'm';
int y = 0;
char z;
FILE *fp = NULL;
fp = fopen("/config/gps_backup.dat","w");
Run Code Online (Sandbox Code Playgroud)
我正在对文件执行两个变量的 frwite(第一个是整数,第二个是字符),如下所示:
fwrite(&a,1,sizeof(int),fp);
fwrite(&b,1,sizeof(char),fp);
Run Code Online (Sandbox Code Playgroud)
例如:
fread(&y,1,sizeof(int),fp);
fread(&z,1,sizeof(char),fp);
Run Code Online (Sandbox Code Playgroud)
如果连续 fread 操作完成,y 和 z 变量是否可以保存 10 和 'm' 的值。
塔
这是我的示例代码
#include<stdio.h>
void main()
{
int arr[]={1,2,3,4,5,6};
char *ptr,a;
a='c';
ptr=&a;
int *ptr1,a1;
a1=4;
ptr1=&a1;
printf("%d %d %d",sizeof(arr), sizeof(ptr1), sizeof(ptr));
}
Run Code Online (Sandbox Code Playgroud)
现在,据我所知,大小将告诉我存储变量所需的大小,现在这个的输出是
24 4 4
为什么它的大小arr=24只是一个指针而且它的大小应该是4?
谢谢.
我传递一个函数指针到另一个函数,我希望它是默认初始化,这是我正在尝试,但这给出了语法错误
void bar(int i) {}
void foo(void (*default_bar=bar)(int)) {
//
}
Run Code Online (Sandbox Code Playgroud)
错误 :
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/f_13.d" -MT"src/BinarySearchTree_13.d" -o "src/BinarySearchTree_13.o" "../src/f_13.cpp"
In file included from ../src/f_13.cpp:10:
../src/tree.h:51: error: expected `)' before '=' token
../src/tree.h:51: error: 'foo' declared as function returning a function
../src/tree.h:51: error: expected ';' before ')' token
../src/tree.h:60: error: expected `;' before 'void'
make: *** [src/f_13.o] Error 1
Run Code Online (Sandbox Code Playgroud)
只是说这很好用:
void foo(void (*default_bar)(int)) {
Run Code Online (Sandbox Code Playgroud) int x = 3;
int y = 5;
x++ = y;
cout << x << endl;
Run Code Online (Sandbox Code Playgroud)
为什么上面的代码给我一个错误,我得到的具体错误是
左值作为赋值的左操作数.
我正在尝试回顾我的C和C++.从我的理解,上面的代码理论上应该复制y到into 的值x,然后最后增加x复制完成后的值.所以它会打印出"6".
我试图避免使用sem_wait,并且有类似的东西:"在等待信号量时,做一些事情".所以我发现了sem_getvalue,它应该在成功的情况下返回0.
所以我用以下方式启动信号量:
sem_init(&sem1, 0, 0);
Run Code Online (Sandbox Code Playgroud)
而不是
sem_wait(&sem1);
Run Code Online (Sandbox Code Playgroud)
我需要这样的东西:
while(sem_getvalue(&sem1, 2) < 0){
printf("do this\n");
}
Run Code Online (Sandbox Code Playgroud)
我对sem_wait没有任何问题,一切似乎都正常运行.但是第二个,我在执行期间遇到了Segmentation fault错误.
非常感谢任何帮助,谢谢!
我有这个简单的代码,它在 pcm wav 文件中使用 fseek 逐步搜索文件中的“数据”:
FILE * waveFile;
waveFile = fopen ( this->fileLocation.c_str ( ), "rb" );
// ... some other code here between, then ... //
int seekTo = 0;
bool found = false;
char data[4];
rewind ( waveFile );
while ( !found && ( fseek ( waveFile, seekTo, SEEK_SET ) == 0 )) {
fread ( data, sizeof ( data ), 1, waveFile );
if (( std::strcmp ( data, "data" ) == 0 ) || ( std::strcmp …Run Code Online (Sandbox Code Playgroud) 我正在开始使用 freeRTOS。我浏览了 freeRTOS.org 中提供的文档,并对一些演示项目进行了一些练习。我的问题是如何在不使用 win32 端口的情况下安装 freeRTOS(因为它只是一个不提供实时行为的模拟器)?是否可以将 freeRTOS 作为独立操作系统安装,或者是否需要使用 Linux 内核或 Windows?
我有以下代码:
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
void main(void)
{
int data;
char * tmp;
data = strtol("23ef23",&tmp,10);
printf("%d",errno);
getchar();
}
Run Code Online (Sandbox Code Playgroud)
输出为0 ...
为什么?
我使用visual studio 2010 C++代码必须与C89兼容.
假设向量数组按以下规则排序:- A[i] > A[j] 对于 A[i] (a,b) 中的所有对和 A[j] a>c 中的所有对 (c,d) 和b>d。假设输入数组已排序。现在给定一个上述类型的数组,
A[0] = (0,1)
A[1] = (4,3), (2,5)
A[2] = (12,4), (10, 6)
...
Run Code Online (Sandbox Code Playgroud)
现在您将一对作为输入,如何使用内置的lower_bound 函数找到lower_bound。我写了一个代码,但它给了我一些错误。我错过了什么?
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
typedef pair<int,int> mypair;
vector <mypair> A[100008];
mypair B;
bool operator < (const mypair &a1, const mypair &a2){
return (a1.first < a2.first && a1.second < a2.second);
}
bool operator < (const vector<mypair> &a1, const mypair &a2){
for(int i = 0; i< a1.size();i++){
if (a1[i] < …Run Code Online (Sandbox Code Playgroud) 我试图获得从pthread返回值并捕获该值的概念,但我无法理解发生了什么,或者如何使其工作.我有这个简单的程序创建一个单独的线程,这个线程以int值100退出,然后我尝试用pthread_join捕获该值:
#include <stdio.h>
#include <pthread.h>
void *doStuff(void *param) {
int a = 100;
pthread_exit(a);
}
void main() {
pthread_t thread;
int a;
pthread_create(&thread, NULL, doStuff, NULL);
pthread_join(thread, &a);
printf("%d\n", a);
}
Run Code Online (Sandbox Code Playgroud)
它有效,但抛出一些警告:
./teste.c: In function ‘doStuff’:
./teste.c:7:2: warning: passing argument 1 of ‘pthread_exit’ makes pointer from integer without a cast [enabled by default]
In file included from ./teste.c:2:0:
/usr/include/pthread.h:241:13: note: expected ‘void *’ but argument is of type ‘int’
./teste.c: In function ‘main’:
./teste.c:17:2: warning: passing argument 2 of ‘pthread_join’ …Run Code Online (Sandbox Code Playgroud)