sizeof相关内容

sizeof运算符在C#中提供了结构的额外大小

我正在尝试使用sizeof运算符检查所有变量(值类型)的大小.我浏览了 msdn文章之一 msdn文章写在哪里 对于所有其他类型(包括结构),sizeof运算符只能在不安全的代码块中使用 结构也不应包含任何引用类型的字段或属性 为此,我在项目属性中启用了不安全的编译并按如下所示创建了结构- struct EmployeeStruct{int empId;高薪} 并按如下方 ..
发布时间:2021-04-18 20:39:34 C#/.NET

在不使用sizeof的情况下找到整数的大小

我正在尝试不使用sizeof函数来查找整数的大小.我写了这样的东西,但是不能正常工作.输出1.请纠正我.这是我的代码. int intSize(){int intArray [10];int * intPtr1;int * intPtr2;intPtr1 = intArray;intPtr2 = intPtr1 +1;返回intPtr2-intPtr1;} 解决方案 在使用指针算法之前, ..
发布时间:2021-04-16 20:58:06 C/C++开发

如何获得“动态"数组的大小?

我有这个代码. int x [5];printf(“%d \ n",sizeof(x));int * a;a = new int [3];printf(“%d \ n",sizeof(* a)); 当我将一个“静态"数组传递给sizeof()时,它将返回声明的数组的尺寸乘以该数据类型在内存中使用的字节数.但是,动态数组似乎有所不同.我的问题是我应该怎么做才能获得“动态"数组的大小? ..
发布时间:2021-04-16 20:26:21 C/C++开发

c中的& a,& a [0],a有什么区别

我得到以下代码的输出-- 6 我对输出感到困惑,所以我更改了一小部分代码并进行了检查. 我将此 int * ptr =(int *)(a + 1)替换为Not clear语句,我的输出为-> 1 .怎么样? 我听说& a , a , a [0] 都是相同的地址?是什么让它与众不同? #includeint main(){int a [] = {1,2,3,4 ..
发布时间:2021-04-16 20:10:23 其他开发

char和int上的C struct位域之间的差异

在C语言中使用位域时,我发现我所期望的差异与用于声明字段的实际类型无关. 我没有找到任何明确的解释.现在,可以确定问题所在,因此,即使没有明确的答复,该帖子对遇到相同问题的任何人也可能很有用.即使有人可以指出正式的解释,这种说法也很棒. 以下结构占用2个字节的内存. struct {char field0:1;//1位-位0char field1:2;//2位-位2降至1字符字段2 ..
发布时间:2021-04-15 19:50:17 其他开发

如何通过Python Azure SDK知道Azure Blob对象的大小

遵循适用于Python开发人员的Microsoft Azure文档. azure.storage.blob.models.Blob 类确实具有一个称为 __ sizeof __()的私有方法.但是,无论blob为空(0字节)还是1 GB,它都会返回一个恒定值16.是否可以使用Blob对象的任何方法/属性来动态检查对象的大小? 更清楚地说,这就是我的源代码的样子. blobService.l ..
发布时间:2021-04-13 19:19:38 Python

如何以及为什么使用c中的sizeof(a)/sizeof(a [0])计算数组中元素的数量

我是编程的初学者,我不知道sizeof(a)和sizeof(a [0])的确切含义来计算数组中元素的数量.为什么在何处使用此功能?划分它们的目的是什么. 解决方案 根据C标准(6.5.3.4 sizeof和alignof运算符) 2 sizeof运算符产生其操作数的大小(以字节为单位)可以是表达式或类型的括号名称.大小是由操作数的类型确定.结果是一个整数.如果操作数的类型是可变长度数 ..
发布时间:2021-04-09 20:23:38 其他开发

sizeof论点

即使使用 int foo(char str []); ,它将接受初始化为字符串文字大小为sizeof的数组也不起作用.我被要求做类似strlen的事情,而我想采取的方法是在整个字符串上使用sizeof,然后根据某个不常见的标记相应地减去.除了简单地计算所有内容,还可以减少一些操作. 是的,我尝试在数组上使用解引用运算符(也尝试使用指针),但最终只得到第一个数组元素. 如何对传递的参数进 ..
发布时间:2021-04-09 20:08:13 其他开发

C中动态数组的大小不变

我正在获取 realloc():程序的下一个无效大小.所以我只是对此进行编码以了解发生了什么. #include#includeint main(){字符* inp;printf(“%lu",sizeof(inp));char * res =(char *)malloc(15 * sizeof(char *));printf(“%lu",sizeof( ..
发布时间:2021-04-09 20:04:43 其他开发

"sizeof(函数名)"返回什么?

示例代码: int main(void) { printf ("size = %d\n", sizeof(main)); } 应用于函数名称(例如main)的返回值sizeof是什么? 解决方案 C标准禁止使用-用gcc -pedantic编译时,会产生invalid application of ‘sizeof’ to a function type警告. 但是g ..
发布时间:2020-11-11 02:03:42 其他开发

C中整数表达式的大小

使用Xcode编译C(gnu11)让我感到惊讶 #include int main(int argc,char**argv) { short s = 1; printf( "%zd %zd %zd\n", sizeof(s), sizeof(s*s), sizeof(s?s:s)); return 0; } 产生输出 2 4 4 我期 ..
发布时间:2020-11-02 18:40:35 其他开发

包含向量T的结构尺寸为0。 DLL和EXE之间的大小不同

在这种情况下,EXE程序会为单个函数调用导入DLL。它通过传入自定义结构并返回不同的自定义结构来工作。到现在为止,它一直运行良好,直到我希望其中一个结构数据成员成为向量 当我在程序中执行sizeof(vector)时,大小为20,但是当我从DLL内部执行时,大小为20 有人能告诉我为什么向量 ..
发布时间:2020-10-24 02:02:39 其他开发

为什么记录的大小不等于其字段的大小之和?

我有下一个代码: type TRecord1 =记录 myarr:数组[0..31]的单身: 结尾; 类型TRecord2 =记录 b1,b2,b3,b4,b5,b6:字节; 结尾; 类型TRecord3 =记录 myarr:单个数组[0..31]: b1,b2,b3,b4,b5,b6:字节; 结尾; 过程TForm1.FormCreate(Sender:Tobjec ..
发布时间:2020-10-20 02:55:27 其他开发

在C ++中,为什么只包含联合及其基类实例的派生类占用的内存比联合的大小还要多?

更具体地说,从空类继承的类仅包含一个并集,该并集的成员包括无数据基类的实例,该类比仅并集占用更多的内存。为什么会发生这种情况,有什么方法可以避免浪费额外的内存? 以下代码说明了我的问题: #include class empty_class {}; 结构体大:public empty_class { union { int数据[3]; ..
发布时间:2020-10-02 01:13:18 C/C++开发

C ++类的大小

以下是打印不同类的大小的代码 #include 使用命名空间std; classEmptyClass { }; class AbstractClass { public: virtual void funcOne()= 0; virtual void funcTwo()= 0; }; class NotAbstrClas ..
发布时间:2020-10-02 00:24:45 C/C++开发

C:自定义strlen()库函数

我创建了 strlen()函数的版本。 无符号整数my_strlen(char * p) { 无符号整数i = 0; while(* p!=‘\0’) { i ++; p ++; } return i; } 每次运行都会给我正确的输出。但是我的同事说的是这段代码在字符长度大于 1个字节的系统上可能会引起问题。是这样吗? 因此他们修改了 ..
发布时间:2020-09-30 23:04:38 其他开发

如何计算char数组中的元素数?

我试图计算数组中元素的数量,并被告知该行 int r = sizeof (array)/ sizeof(array [0]) 会给我数组中元素的数量。而且我发现该方法确实有效,至少对于int数组有效。但是,当我尝试此代码时,事情就坏了。 #include #include 使用命名空间std; int m ..
发布时间:2020-09-30 23:04:30 C/C++开发

为什么sizeof(char + char)返回4?

char a,b; printf(“%d”,sizeof(a + b)); printf将在屏幕上写入什么? 我以为是因为sizeof(char)= 1,所以sizeof(a + b)也将是1,但结果是4。我不明白这就是为什么如果我们要添加两个字符,它为什么写4? 解决方案 在C语言中,几乎所有算术运算符的操作数都必须服从转换为称为通常的算术转换的隐式 ..
发布时间:2020-09-30 22:45:16 其他开发