我是C中的一个完整的新手,但我已经被分配了解C代码的工作.谁能帮助理解以下代码?
memcpy (out, &field_id, sizeof(field_id));
Run Code Online (Sandbox Code Playgroud)
以下是field_id和out的数据类型:
char* out = *out_ptr;
short field_id = column->column_index;
Run Code Online (Sandbox Code Playgroud)
据我所知,命令是将sizeof(field_id)字符数复制&field到out指针.但这对我没有任何意义.另外,据我所知,C不是OOP语言,为什么我们使用类似的东西column->column_index似乎我们试图访问column_index一些名为的对象的属性column.
我拥有Java,Python,C#的高级编程经验,所以即使你没有详细介绍我也能理解,只有提示或链接到有用的文章也可以.
我正在练习Alex Allain的书中的数组和指针.
#include <iostream>
#include <fstream>
using namespace std;
int *growArray (int* p_values, int cur_size);
int main ()
{
int next_element = 0;
int size = 10;
int *p_values = new int[ size ];
int val;
cout << "Please enter a number: ";
cin >> val;
while ( val > 0 )
{
if ( size == next_element + 1 )
{
// now all we need to do is implement growArray
p_values = growArray( p_values, size );
}
p_values[ …Run Code Online (Sandbox Code Playgroud) 我对sscanf函数的使用有疑问.
#include <iostream>
#include <stdio.h>
int main()
{
char a[3];
char b[4];
const char* p = "aaaaaaaaaaaaaaaaaa bbbbbb";
sscanf(p, "%2s %3s", a, b);
std::cout << a << std::endl;
std::cout << b << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
期望的输出是:aa bbb
实际输出是:aa aaa
首先是第一件事.我知道没有办法直接找出方法中传入数组的大小,因为它们是作为指针接收的.我面临的情况类似但性质不同.
我有一个像这样的方法:
void method( int no_of_elements, int arr[])
{
/* checking if array has 'no_of_elements' of elements.
}
Run Code Online (Sandbox Code Playgroud)
我想检查整数数组arr[]是否有no_of_elements.基于此,我的方法将进一步处理.我知道它几乎听起来像找到的大小arr[].至少这是我能想到检查我的要求的唯一方法.任何解决这个问题的方法都将受到赞赏.
我想定义一个列表,其元素是一个3元素数组.下面的代码似乎没问题:
List<dynamic[]> bb = null;
但是当我尝试时:
List<dynamic[3]> bb = null;
它抛出错误.当然我可以为它创建一个类/结构.但有没有办法直接定义它?
我对C很新,我试图理解CI中的按位运算符在我面前找到这个代码(将2转换为37)
int main(void)
{
int x = 2;
x = (x<<x<<x) | (x<<x<<x) | (x << !!x) | !!x ;
printf("%d\n" , x ); // prints 37
}
Run Code Online (Sandbox Code Playgroud)
现在这是我第一次看到这样的东西 (x<<x<<x),我不明白它在做什么.任何人都可以详细解释代码中的第二行吗?
我已经开始编写一个程序,可以在一个结构中读取和存储团队信息和存储,重新排序并打印结果.
首先,我正在尝试阅读团队名称并将其存储在结构中的成员中,然后阅读团队分数并将其存储在另一个成员中.
但是,只要我调试文件,它就会崩溃.它甚至没有正确启动.我收到这个错误
PA2.exe中0xFEFEFEFE处的未处理异常:0xC0000005访问冲突执行位置0xFEFEFEFE.
我已经回溯到足以弄清楚它是在while循环中的某个地方,但无法弄清楚它有什么问题.
我正在使用visual studio 2012,当我构建它时我没有错误.
#include "stdafx.h"
#include "string.h"
#include <stdio.h>
struct team
{
char name[20];
int no_games;
int points;
int goals_scored;
int goals_let;
};
int main(void)
{
FILE *input2a;
FILE *input2b;
int error1;
int error2;
int i;
char team1_name[20];
char team2_name[20];
int team1_goals;
int team2_goals;
struct team teamlist[20];
error1 = fopen_s(&input2a, "C:\\Users\\New PC\\Desktop\\input2a.dat", "r");
i = 0;
while (i < 20)
{
i ++;
fscanf_s(input2a, "%s", teamlist[i].name);
}
error2 = fopen_s(&input2b, "C:\\Users\\New PC\\Desktop\\input2b.dat", "r");
while (fscanf_s(input2b, …Run Code Online (Sandbox Code Playgroud)