我似乎找不出为什么我的程序会因为分段错误而崩溃。
char *nom;
char **tmp=&nom;
printf("Creando ruta ...\n");
printf("\nIntrodueix el id de la ruta: ");
int ID=demanaInt();
int existe=checkIfRutaExisteix(ID);
if(existe==1){
printf("Ja existeix una ruta amb aquesta ID (id ha de ser unica)");
在嵌套结构中有灵活的数组成员是有效的C代码吗?那么,下面的示例代码是否可以像预期的那样使用正常的编译器?
#include <stdio.h>
#include <stdlib.h>
struct d {
char c;
int ns[];
};
struct c {
struct d d;
};
struct b {
struct c c;
};
struct a {
int n;
struct b b;
};
int main() {
const int n = 10;
struct a *p
当我编译下面的代码时,会出现以下错误
snippet.c:24:24: error: request for member ‘px’ in something not a structure or union
snippet.c:25:24: error: request for member ‘py’ in something not a structure or union
snippet.c:27:22: error: request for member ‘x’ in something not a structure or union
snippet.c:27:45: error:
我试图使所有的名字在结构小写,以便我可以比较和删除他们。
int removeNameCard(NameCard *idCard, int *size){
char name[80];
char *ptr;
char rubbish;
int a = 0, c = 0;
printf("removeNameCard():\n");
printf("Enter personName:\n");
scanf("%c", &rubbish); // Why is there a '
这里我有一个带有C# C++ WinRT组件的地铁应用程序。我需要在WinRT中做一些事情,比如指定照片的名称/路径,检索照片的缩略图。
首先,我在WinRT C++中编写一个值struct并检索struct数组函数,如下所示。
public value struct Item
{
String^ strName;
String^ strPath;
};
public ref class CTestWinRT sealed
{
public:
CTestWinRT();
void TestOutStructArray(Platform::WriteOnlyArr
我试图将字符类型添加到NSMutableArray,但它显示错误:“参数类型字符不符合预期的类型AnyObject”。
for (i, c) in (str?.characters.enumerate())! {
//c is Character type
if (!((uniqueLetterArray?.containsObject(c)))) { //error when check c in array
uniqueLetterArray?.addObject(c) //error when add c into array
}
我的结构如下,可以有n个vendor,其中可以包含n个test结构。我正在尝试初始化这个结构。这是我正在尝试的示例代码,稍后我想使用宏来创建它,并加载类似X-宏的结构。 我也使用了灵活的结构概念,因为我不知道一个供应商会有多少测试结构。数据应该在一个文件中,结构需要加载那里的所有内容。我已经为SO创建了一个最小的示例代码。下面是我的代码。 #include <stdio.h>
typedef struct test{
int a;
int b;
int c;
}test;
typedef struct vendor{
int size;
test t[0];
}vendor;
目前,我正在深入研究CLR,并试图找到我的托管对象的适当大小。
我有两个简单的类型:
XClass
class XClass
{
public XStruct StructField = new XStruct();
public int IntField;
public double DoubleField;
}
和XStruct
struct XStruct
{
public short ShortField;
public long LongField;
}
此外,在涉及此对象的代码段中,还包括:
static unsafe void Ma
我有一个1x565的结构数组GRID,其中每个结构都有5个字段:
A
B
C
D
E
每个字段都有一些值,现在我需要为GRID中的每个元素添加第六个字段G。我试过了:
GRID(:).G=addfield(G,[])
GRID(:).G=[]
但这并不管用。我需要的是让GRID(1)让步
A
B
C
D
E
G
其中每一个都有一个双精度的值。
在C中,我使用了size来获得结构的大小,但是我得到的结果是出乎意料的。
struct sdshdr {
int len;
int free;
char buf[];
};
int main(){
printf("struct len:%d\n",(sizeof(struct sdshdr)));
return 0;
} //struct len:8, with or without buf
我的问题是,为什么buf不占用任何空间,为什么64位CPU上的int类型的大小仍然是4?
这是gcc -v的输出
Configured with
好了,我继续研究我的小游戏引擎,教会我更多的C#/C++。现在,我正在尝试编写一种我创建的以二进制格式存储数据的方法。(这就是学习,我想自己从头做起)。我想知道的是,在C++中读取结构中的可变长度数组时,最好的处理方法是什么?
例如,这是我目前对我的结构的理解:
[StructLayout(LayoutKind.Sequential)]
public struct FooBinaryHeader
{
public Int32 m_CheckSumLength;
public byte[] m_Checksum;
public I
我知道如何在数组中传递一列值
int[] unit = new int[] {1,-3,3,4};
string[] letter_grade = new string[] {"a+","B","c","W"};
double totalGPA;
GPA get = new GPA();
get.getgpa(unit, letter_grade ,out totalGPA);
但是我想知道如何使用structs传递它,我可以发送单个值,但不知道如何发送值列表
我需要创建一个与具有固定大小数组的C结构相对应的Julia类型:
struct cstruct {
...
int arr[N] //N known at compile time
...
};
我使用如下数组定义了与其他C结构对应的Julia类型:
type jstruct
...
arr::Ptr{Cint}
...
end
但据我所知,只有当arr是一个指针,而不是一个特定大小的数组时,它才能工作。如何确保在两种语言中,arr之后的元素的偏移量保持不变?
我试图使用pinvoke在从C到C#的另一个结构中配置一个结构数组。AFAIK,没有办法。
因此,在C结构中,我向数组声明一个ptr,并声明malloc。问题: 1)如何在C#端声明等价物? 2)如何在C#端分配和使用等值?
//The C code
typedef struct {
int a;
int b; } A;
typedef struct {
int c;
// A myStruct[100]; // can't do this, so:
A *myStruct; } B;
//The c# code:
我并不是一个真正的C爱好者,但是我已经为这个练习做了功课。到目前为止,我得到的是,在C中,初始化一个数组,据我所知,不像JavaScript。C有固定的数组,并且不是由特定值初始化的。因此,在这种情况下,NULL检查将不起作用。
我有一个结构数组。如何知道数组中索引是否为空(是否用结构填充)?
#define LIST_LENGTH 30
//This is the struct that is inserted in the array
typedef struct node{
char fName[30];
char mName[30];
char lName[3
我已经编写了一个代码来打印名称的id和list的元素。
sample_list = [1, 2, 3, 4, 5]
print(f"The id of the name of the list is = {id(sample_list)}")
for i in range(0, len(sample_list)):
print(f"Id of element index {i} is {id(sample_list[i])}")
输出:
The id of the name of the list is = 2874211984576
Id of ele
如果我有这样的代码
struct s { int x; char b[]; };
int main() {
struct s s[10];
}
我用"gcc -O2 -W -Wall -pedantic“来编译,然后我得到:
<source>:4:14: warning: invalid use of structure with flexible array member [-Wpedantic]
4 | struct s s[10];
| ^
gcc是完全正确的。具有灵活数组成员的结构不能那样工作。
在C/
我听说,在C中,包含在结构中的数组可能会在数组的元素之间添加填充。现在很明显,填充的数量不能在任何一对元素之间变化,或者使用简单的指针算法不可能计算数组中的下一个元素。
这个谣言还说,不包含在结构中的数组保证不包含任何填充。我知道至少这部分是真的。
所以,在代码中,传言是:
{
// Given this:
struct { int values[20]; } foo;
int values[20];
// This may be true:
sizeof(values) != sizeof(foo.values);
}
我非常确定,sizeof(va