我们都知道空类的大小或空类的对象将是1个字节.我遇到了sizeof一个类及其对象变为0的东西.该程序在语法上是正确的,因为没有编译或运行时错误.这是未定义的行为吗?我试图执行的用例有意义,看起来像一个有效的用例?不给类中的数组提供精确的下标或大小是一个很大的错误吗?代码段如下:
#include<iostream>
using namespace std;
class A
{
char a[];
};
int main()
{
A b;
cout<<sizeof(A)<<endl;
cout<<sizeof(b)<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
0
0
在sizeof一个空类是一个字节(非零基本)和其中的原因是说,像"为了确保不同的对象有不同的地址."
在这种情况下会发生什么sizeof呢?当班级来零时?注意:也观察到相同的行为int a[].
当没有涉及继承时,是否需要虚拟?根据我的理解和知识水平,我认为虚函数或关键字与继承紧密结合.我对吗?除了继承之外,还有虚拟函数可以使用的地方吗(基类和派生类)?
我正在尝试开发一个Python脚本来下载一堆youtube视频,这些视频是使用youtube-dl模块从csv文件输入的。由于单个视频下载失败,脚本停止。我需要脚本继续下载下一个视频,而忽略了无法下载的视频。有人可以帮我如何在python中处理这个问题吗?
当我们尝试调整malloc使用分配的内存大小时realloc,我们通常会这样做:
char *ptr = (char *)malloc(size_1);
ptr = (char *)realloc(ptr, size_2);
Run Code Online (Sandbox Code Playgroud)
如果size_2可能大于或小于size_1.如果新大小较大,则旧数据不会丢失,新分配的字节未初始化.ptr如果旧地址处没有足够的内存来连续存储所有字节,则包含的起始地址可能会改变.realloc将旧块的内容移动到新块中,并ptr指向该新块的初始字节.
但是,如果使用分配内存calloc,我无法理解realloc函数的行为方式.有人可以给我一个关于如何realloc分配内存的工作的简要概述calloc吗?
c++ ×2
c ×1
calloc ×1
class ×1
inheritance ×1
malloc ×1
object ×1
python-2.7 ×1
realloc ×1
youtube-dl ×1