我想打印print_book()函数中定义的图书记录的内容。这是密码。我的意图是使用该函数打印任何struct类型的图书。
#include <stdio.h>
#include <string.h>
void print_book(struct Book book);
struct Book
{
int id;
char *title;
char *author;
int pages;
};
int main(void)
{
struct Book book_1;
book_1.id = 23;
我有下面的代码片段,我想知道它是纯C语言还是包含一些C++元素。这个问题源于这样一个事实,即我认为它只是C语言,但是一些编译器不接受代码。
// User struct derived from FunctionBlock
struct Function{
// Inputs
int codeGenerationIterator;
int i;
char* s;
// Outputs
// Internal
};
void FunctionCall(struct Fun
我是这个网站的新手,我正在寻找关于一个双向链表的帮助,这个链表存储了MP3的artistname、songname、albumname、date和运行时间。如果你能帮我,我会很感激的。根据我的add函数中的GDB,我得到了一个段错误。
警告也如下所示:
Description Resource Path Location Type
'data' is used uninitialized in this function [-Wuninitialized] Mp3.c /OperatingSystemsLab1
line 7 C/C++ Probl
我想知道如何解决用于重新定义ty胡枝子结构QueueADT的错误。
错误消息
gcc -std=c99 -ggdb -Wall -Wextra -c queueADT.c
queueADT.c:22:3: error: 'QueueADT' redeclared as different kind of symbol
}*QueueADT;
^
In file included from queueADT.c:9:0:
queueADT.h:23:21: note: previous declaration of 'QueueADT' was here
如果我尝试返回一个未初始化的变量,它会保证值始终为空/零吗?
例如:
struct Rect rect_with_zero_value(){
struct Rect aRect;
return aRect; // Will `aRect` always contain 0 value inside the C struct?
}
void * nullPointer(){
void * pointer;
return pointer; // Will `pointer` always be `Null`?
}
更新的
我找到了一种方法来确保除void类型以外
C源文件:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
#include "BmpProcessor.h"
#include "PixelProcessor.h"
/**
* read BMP header of a file. Us
与相似,但不完全相同
A
/ \
B C
\ /
D
我想要的是:
struct A { virtual void func (void) = 0; };
struct B : virtual A { void func (void) {} };
struct C : virtual A { void func (void) {} };
struct D : B,C { void func (void) {} };
int main ()
{
A *p = new D();
((C*) p)->func(); // do C
所以我把这些放在.h里
stable.h
// The symbol table.
typedef struct stable_s *SymbolTable;
// Data stored.
typedef union {
int i;
char *str;
void *p;
} EntryData;
// Return struct for stable_insert.
typedef struct {
int new; // Was a new entry created?
EntryData *data; // Data associated with en
我用C语言写了一个程序来实现一个简单的堆栈。但是我在我的程序中遇到了分段错误,并且发现很难找出哪里出了问题。有人能帮上忙吗,
#include<stdio.h>
#include<stdlib.h>
struct stack_structure{
int stack_array[10];
int stack_pointer;
};
void push_into_stack(struct stack_structure *,int);
int main(){
int no = 8;
struct
我正在尝试从C#向/从Java发送和接收带有JNA的结构数组。在Java语言中,从C#接收可以很好地工作,但是传输到C#只会给出一条线路。我认为问题出在"pointerByReference.setPointer(array.getPointer())".但我不知道如何为数组创建PointerByReference来填充所有项。有人能帮我吗?
C#
using System;
using System.Runtime.InteropServices;
namespace JNATest
{
public class Class1
{
[Stru
我尝试在多个文件中使用我的结构peer_struct.h。它是在main.c中声明的,我通过引用传递了struct。
编译器给了我函数的警告,我真的不明白为什么。
编译器警告:
In file included from first_use.c:1:0:
second_use.h:1:51: warning: ‘struct Peer_Information’ declared inside parameter list will not be visible outside of this definition or declaration
void second_use(char *me
我有一个用来计算后缀表达式的程序。当我在Windows IDE (Codeblock)编译和运行它时,代码完全正常运行,没有编译器警告,但是,当我试图在Linux环境中编译源代码时,我会收到很多警告。它们列于下:
postfix.c: In function ‘infixToPostfix’:
postfix.c:20: warning: passing argument 1 of ‘stackInit’ from incompatible pointer type
stack.h:25: note: expected ‘struct stack *’ but argument is of t
当我使用下面的代码片段时,会得到这些警告。有谁能帮我解决问题吗?
new_str.c: In function ‘main’:
new_str.c:39:25: warning: passing argument 2 of ‘send_to_host’ from incompatible pointer type [-Wincompatible-pointer-types]
39 | send_to_host(MACRO,ram->s1);
| ~~~^~~~
|