幻想@qq 2022-05-13 17:57 采纳率: 0%
浏览 12

C++ 内存的问题,求解释解释


//#include "stdlib.h"
#include <iostream>
#include "Test.h"
Test::Test()
{
    std::cout << "char 类型的空间为:" << sizeof(char) << std::endl; //1  Byte;
    str = (char*)malloc(3);//栈里开辟3 Byte的空间(为啥不报错?)

    std::cout << "重新看一下str的大小:" << sizeof(*str) << std::endl; //1  Byte;
    //std::cout << "重新看一下str的大小:" << sizeof(*str) << std::endl; //1  Byte;

    std::cout << "看一下int的大小,这里我用10000:" << sizeof(10000) << std::endl; //4  Byte;
    *str = 10000; //赋值一个4 Byte的值(为啥不报错?)

    std::cout << "重新看一下str的大小:" << sizeof(*str) << std::endl; //1  Byte;

    //printf("调用构造函数\n");
}
Test::~Test() {
    //delete str;
    printf("调用析构函数\n");
}

下面是头文件

#pragma once
class Test {
public:
    Test();
    ~Test();
private:
    char* str;
};


  • 写回答

1条回答 默认 最新

  • 张十五 2022-05-13 23:35
    关注

    你这么理解,空间是没有类型的,空间内存的数字也只是数字,没有意义。决定它有什么意义的是用的人。

    还有,长度不同的类型转换时,会发生截断和扩充。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月13日

悬赏问题

  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的