标签: structure

Printf似乎搞乱了一个简单的C程序的输出

我有一些代码来添加分数.

#include <stdio.h>
#include <stdlib.h>

struct frac
{
    int enumerator;
    int denominator;
};
typedef struct frac frac_t;


frac_t *Add(frac_t *b1, frac_t *b2)
{
  frac_t rfrac;
  frac_t *p;
  p = &rfrac;
 (*p).enumerator= ((*b1).enumerator* (*b2).denominator) + ((*b2).enumerator* (*b1).denominator);
 (*p).denominator= ((*b1).denominator* (*b2).denominator);
  return p;
}

int main(void)
{
  frac_t b1 = {2,4};
  frac_t b2 = {1,7};
  frac_t *add = Add(&b1, &b2);
  printf("%i %i\n", add->enumerator, add->denominator);
  system("pause");
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

这完全没问题.结果是:3 5,因为它应该是.

如果我添加"printf",它会完全弄乱我的结果:

int main(void)
{
 frac_t b1 = {2,4};
 frac_t b2 = {1,7}; …
Run Code Online (Sandbox Code Playgroud)

c printf pointers structure

1
推荐指数
1
解决办法
629
查看次数

在结构中使用C++向量有什么问题吗?

好的,我是从vb.net到c ++.我试图在结构中使用向量,但编译器对我大喊大叫.当前的陈述有什么问题?

#include <vector>

struct FactorSet
{
 vector<long long> UpperFactor(0);
 vector<long long> LowerFactor(0);
};
Run Code Online (Sandbox Code Playgroud)

输出错误(Visual Studio 2008):

错误1错误C2059:语法错误:'常量'

我冒昧地猜测,我对矢量究竟是什么缺乏了解.在我看来它是一个对象,虽然我认为它的最新名称是模板.像字符串这样的其他对象似乎没有问题.我还假设这也扩展到类定义,因为结构和类是如此相似.

c++ structure vector

1
推荐指数
1
解决办法
1882
查看次数

我的分段错误的原因是什么?

我正在尝试编写一个程序,使用输入重定向将文件中的条目读入动态分配的结构数组中.我的程序编译得很好但是我遇到了分段错误而且我找不到原因.

这是我的计划:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct StudentData
{
char* name;
char* major;
double gpa;
} Student;

int main()
{
Student* data = (Student*)malloc(sizeof(Student)*5);

int i;
for(i = 0; i < 5; i++)
{
 // allocate memory for name and read input
 data[i].name = malloc(50);
 *(data+i)->name == scanf("%s", (char*)&data[i].name);

 // allocate memory for major and read input
 data[i].major = malloc(30);
 *(data+i)->major == scanf("%s", (char*)&data[i].major);

 // read input for gpa
 (data+i)->gpa == scanf("%lf", &data[i].gpa); 

 //print array
 printf("%s\n%s\n%f\n", data[i].name, …
Run Code Online (Sandbox Code Playgroud)

c arrays structure segmentation-fault

1
推荐指数
1
解决办法
378
查看次数

C++没有指针的复制结构

我想将数据结构复制到另一个

struct times{
    QString name;
    double time1;
    double time2;
    double time3;
};

/..../

times *abc = new times[10];
times *abc2 = new times[10];
Run Code Online (Sandbox Code Playgroud)

如何在不复制指针的情况下将abc复制到abc2中?

c++ arrays structure

1
推荐指数
1
解决办法
499
查看次数

如何以pythonic方式停止try/except的for循环代码执行?

我有一些Python代码如下:

for emailCredentials in emailCredentialsList:
   try:
       if not emailCredentials.valid:
           emailCredentials.refresh()
   except EmailCredentialRefreshError as e:
       emailCredentials.active = False
       emailCredentials.save()
       # HERE I WANT TO STOP THIS ITERATION OF THE FOR LOOP 
       # SO THAT THE CODE BELOW THIS DOESN'T RUN ANYMORE. BUT HOW?

   # a lot more code here that scrapes the email box for interesting information
Run Code Online (Sandbox Code Playgroud)

正如我已经在代码中注释的那样,如果EmailCredentialRefreshError抛出,我希望for循环的这个迭代停止并移动到下一个项目emailCredentialsList.我不能使用a,break因为这将停止整个循环,它不会覆盖循环中的其他项目.我当然可以将所有代码包装在try/except中,但我希望将它们保持在一起以便代码保持可读性.

解决这个问题的最恐怖的方法是什么?

python loops structure break try-except

1
推荐指数
1
解决办法
346
查看次数

C++复制指针

我在弄清楚复制指针的语法时遇到了麻烦.

我该怎么做theVar2=theVar

Struct MyStructureType {
    double* theVar2;
}

MyStructureType* myStruct;
double* theVar;

theVar = malloc(sizeof(double));


myStruct->theVar2 = theVar; //segfaults
Run Code Online (Sandbox Code Playgroud)

c++ pointers structure

1
推荐指数
1
解决办法
68
查看次数

在多模块环境中使用依赖注入(通过Guice)

我在涉及Guice并避免使用非Guice单身人士方面有些两难。考虑那里有3个模块的多模块项目:sharedfrontendbackend。无论是frontendbackend使用的一个实例Profiling的类的内部shared模块(其时间的方法,和在整个项目中广泛使用)。

几乎每个类都需要使用此Profiling实例(包括User用户连接时动态创建的对象)。

如果每个单独的类都需要该类的一个实例Profiling,则执行该方法的不同方法会有一些缺点:

解决方案1(在构造函数中,复制到实例字段):

private final Profiling profiling;

@Inject
public User(Profiling profiling, String username)
Run Code Online (Sandbox Code Playgroud)

缺点:您必须Profiling每个构造函数包含一个对象。这很麻烦,而且毫无意义。您还必须Injector静态存储(或注入)Guice ,以便您可以动态创建User对象,而不仅仅是在首次加载程序时。

解决方案2(仅作为实例字段):

@Inject
private Profiling profiling;

public User(String username)
Run Code Online (Sandbox Code Playgroud)

缺点:与上面类似,您必须使用Guice Injector实例化每个对象。这意味着要User动态创建对象,需要在创建User对象的类中使用Injector的实例。

解决方案3(作为一个(主)类中的静态字段,由我们手动创建)

public static final Profiling PROFILING; // Can also use a get method

public Application() {
    Application.PROFILING …
Run Code Online (Sandbox Code Playgroud)

java dependency-injection structure guice

1
推荐指数
1
解决办法
1176
查看次数

C++传递对匿名结构的引用 - 可以吗?

使用下面显示的结构,我可以像这样使用它.

NMEADecodedSentence s;
auto & gga = s.GGA;
auto alt = gga.Alt;
Run Code Online (Sandbox Code Playgroud)

但是是否可以将对匿名结构的引用传递给函数,例如:

SomeFunc(gga);
Run Code Online (Sandbox Code Playgroud)

如果是这样,函数签名会是什么样的?我的想法是没有你不能没有命名结构,但我只是想知道是否有一些聪明的方式,我不知道!

struct NMEADecodedSentence
    {
        GNSSSentenceType Type;
        GNSSTalkerId TalkerId;
        union
        {
            struct
            {
                char Time[10];          // UTC time - hhmmss.ss
                char Lat[13];           // Latitude (degrees & minutes) - ddmm.mmmmm
                char NS;                // North/South indicator
                char Long[14];          // Longitude (degrees & minutes) - dddmm.mmmmm
                char EW;                // East/West indicator
                uint8_t Quality;        // Quality indicator for position fix
                uint8_t NumSV;          // Number of satellites used (0-12)
                float HDOP;             // …
Run Code Online (Sandbox Code Playgroud)

c++ structure anonymous

1
推荐指数
1
解决办法
179
查看次数

#define in C,legal character

有一个C结构

struct a
{
int val1,val2;
}
Run Code Online (Sandbox Code Playgroud)

我已经对代码进行了更改

struct b
{ 
int val2;
}
struct a
{
int val1;
struct b b_obj;
}
Run Code Online (Sandbox Code Playgroud)

现在,在其他C文件中使用val2就像a_obj->val2;.
我想替换它的声明用法,并且它们有很多,所以我在头文件中定义了一个宏,其中struct a定义如下:

#define a_obj->val2 (a_obj->b_obj.val2)
Run Code Online (Sandbox Code Playgroud)

它不起作用.->在宏定义的标识符部分是非法的#define吗?
有人可以告诉我我哪里错了吗?

根据@Basile的建议进行编辑 -
这是一个遗留源代码,一个非常庞大的项目.不确定LOC.
我想做出这样的改变,因为我想让它更模块化.
例如,我想在相同的名称下对结构的类似字段进行分组,这就是我想要创建另一个结构B的原因,该结构B的字段与B功能相关并且也与A共用.
我不能使用其他的查找替换功能文本编辑,我正在使用VIM.

c macros structure

1
推荐指数
2
解决办法
102
查看次数

如何使用结构和数组存储双打组

嘿,我只是想寻求有关如何存储4个双打的建议(C语言新手)。是否有一个数组,其中每个数组元素将容纳另一个双精度数组?这会是什么样子。谢谢!

c arrays double struct structure

1
推荐指数
1
解决办法
83
查看次数