表达式块类型有效//堆栈溢出

unix14

试图用C ++为我的大学建立一个项目。尝试使用我在Main.cpp中为MyDate创建的方法时,该方法使我不断出现堆栈o / f和“表达式块类型有效”错误。

main.cpp:

date1.setDay(8);
date1.setMonth(4);
date1.setYear(1994);
date1.setCmnt("Bday");      //problem with chars and pointers..
date1.print();
//Copy Constructor
date2 = date1;
date2.print();

MyDate.h:

void setCmnt(char *cmnt){
    if (cmnt!=nullptr)
        *c = *cmnt;
};

复制常量:

day=Date.day;
month=Date.month;
year=Date.year;
if (Date.c != nullptr)
{
    c = new char[strlen(Date.c) + 1];
    strcpy(c, Date.c);
    //*c = *Date.c;
}

tnx有很多为您服务的人!

亚历山大·托比亚斯·波克斯特勒(Alexander Tobias Bockstaller)

Date::setCmnt您在MyDate.h中定义的函数仅用Date::c输入字符串的第一个字符替换的第一个字符cmnt,而不是整个字符串。可能Date::c甚至还没有初始化,所以您在这里覆盖了一些随机内存。

我强烈建议std::string用于处理字符串。但是,您要指出的是,这是针对大学的,也许您尚未被介绍,std::string或者是出于学术原因,您应该在char*这里工作因此,我将char*在此答案中使用:

Date::setCmnt函数中,您需要像在复制控件中一样复制字符串。另外,如果Date::c已经分配了值(!=nullptr),则应delete[]首先对其进行调用,以免造成内存泄漏。您还需要保证在类的每个构造函数中Date::c均已正确初始化(例如nullptr)。

例如:

void setCmnt(char *cmnt){
    if (c!=nullptr)
        delete[] c;
    if (cmnt!=nullptr){
        c = new char[strlen(cmnt) + 1];
        strcpy(c, cmnt);
    }
    else c = nullptr;
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有效的XPath表达式

来自分类Dev

如何有效地从嵌套表达式生成所有类型的元组?

来自分类Dev

家长不编译有效的表达式?

来自分类Dev

有效的域名正则表达式

来自分类Dev

更有效的正则表达式

来自分类Dev

不是有效的XPath表达式

来自分类Dev

这些cron表达式有效吗?

来自分类Dev

“ expect(9).be> 6”如何是有效表达式?

来自分类Dev

有效的正则表达式?

来自分类Dev

DOMXPath 不能使用有效的表达式

来自分类Dev

检查表达式是否有效

来自分类Dev

正确的表达式在JPQL / HQL查询中不是有效的表达式

来自分类Dev

尽管有效的xpath表达式,操纵up xpath表达式仍失败

来自分类Dev

将简单表达式映射到有效的正则表达式

来自分类Dev

expr:正则表达式未检测到有效表达式

来自分类Dev

JPA EclipseLink - 表达式不是有效的条件表达式

来自分类Dev

输入类型密码有效性模式不匹配状态与正则表达式测试结果不同

来自分类Dev

c#-无法将lambda表达式转换为委托类型;但这在列表函数中有效

来自分类Dev

为什么此F#表达式堆栈溢出

来自分类Dev

Scala正则表达式堆栈溢出

来自分类Dev

为什么此F#表达式堆栈溢出

来自分类Dev

在python中使用正则表达式检查表达式是否有效

来自分类Dev

正则表达式 - 在行首或特定字符之后匹配的最有效表达式

来自分类Dev

有没有办法使此正则表达式更有效?

来自分类Dev

在SQL Server中是否有检查数学表达式并返回有效数字的函数?

来自分类Dev

如何生成所有有效的数字表达式?

来自分类Dev

+ [](){};有什么区别?和(+ [](){});和 以及为什么表达式有效

来自分类Dev

正则表达式匹配给定路径的所有有效URL变体

来自分类Dev

正则表达式拼图找到所有有效的字符串组合

Related 相关文章

  1. 1

    有效的XPath表达式

  2. 2

    如何有效地从嵌套表达式生成所有类型的元组?

  3. 3

    家长不编译有效的表达式?

  4. 4

    有效的域名正则表达式

  5. 5

    更有效的正则表达式

  6. 6

    不是有效的XPath表达式

  7. 7

    这些cron表达式有效吗?

  8. 8

    “ expect(9).be> 6”如何是有效表达式?

  9. 9

    有效的正则表达式?

  10. 10

    DOMXPath 不能使用有效的表达式

  11. 11

    检查表达式是否有效

  12. 12

    正确的表达式在JPQL / HQL查询中不是有效的表达式

  13. 13

    尽管有效的xpath表达式,操纵up xpath表达式仍失败

  14. 14

    将简单表达式映射到有效的正则表达式

  15. 15

    expr:正则表达式未检测到有效表达式

  16. 16

    JPA EclipseLink - 表达式不是有效的条件表达式

  17. 17

    输入类型密码有效性模式不匹配状态与正则表达式测试结果不同

  18. 18

    c#-无法将lambda表达式转换为委托类型;但这在列表函数中有效

  19. 19

    为什么此F#表达式堆栈溢出

  20. 20

    Scala正则表达式堆栈溢出

  21. 21

    为什么此F#表达式堆栈溢出

  22. 22

    在python中使用正则表达式检查表达式是否有效

  23. 23

    正则表达式 - 在行首或特定字符之后匹配的最有效表达式

  24. 24

    有没有办法使此正则表达式更有效?

  25. 25

    在SQL Server中是否有检查数学表达式并返回有效数字的函数?

  26. 26

    如何生成所有有效的数字表达式?

  27. 27

    + [](){};有什么区别?和(+ [](){});和 以及为什么表达式有效

  28. 28

    正则表达式匹配给定路径的所有有效URL变体

  29. 29

    正则表达式拼图找到所有有效的字符串组合

热门标签

归档