结构向量中的垃圾值 C++

阿森达克

我正在尝试使用结构向量来满足我的需要,并且正在编写一些示例测试代码来理解行为。下面是我写的测试代码:

测试.h

struct Student {
  char *name;
  int id;
  char *section;
};
typedef struct Student student_t;

测试.cc

#include <iostream>
#include <vector>
#include "test.h"

using namespace std;

int main() {
  vector<student_t> vst;
  //vst.resize(2);
  student_t st;
  st.name = "student1";
  st.id = 4503;
  st.section = "secA";
  vst.push_back(st);
  vst.push_back({"student2", 4504, "secA"});
  for(auto const& s:vst) {
    std::cout<< " student: " << std::endl;
    std::cout << "Name : " << s.name <<
        std::cout << " Id : " << s.id <<
        std::cout << " Section : " << s.section << std::endl;
  }

  return 0;
}

不指定向量大小的输出:

student: 
 Name : student10x6040c8 Id : 45030x6040c8 Section : secA
student: 
 Name : student20x6040c8 Id : 45040x6040c8 Section : secA

使用 resize(2) 时:

student: 
 Name : 

我想不通问题!我的初始化有问题吗?

马丁邦纳支持莫妮卡

问题是代码:

   std::cout << "Name : " << s.name <<
        std::cout << " Id : " << s.id <<

如果您删除换行符,我们将获得:

   std::cout << "Name : " << s.name << std::cout << " Id : " << s.id <<

犯错,为什么你想打印std::coutstd::cout将尾随更改<<;或:

   std::cout << "Name : " << s.name
             << " Id : " << s.id
   ...

旁白:你在为自己积蓄各种麻烦,制造namesection成为char *它目前有效,因为您将它们设置为字符串文字(使用已弃用的转换)。一旦您尝试使它们可变,您就必须处理分配和取消分配它们。把所有的悲伤都留给自己,让他们std::string快乐吧。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

指针向量中的C ++垃圾值

来自分类Dev

在C ++中的结构中显示垃圾值

来自分类Dev

C ++结构向量,垃圾字符串值

来自分类Dev

向量在结构中的c ++映射

来自分类Dev

C ++中迭代器值的垃圾值

来自分类Dev

在C ++中的向量中搜索结构的枚举

来自分类Dev

在 c 中写入文件,垃圾值被填充

来自分类Dev

删除结构c ++的向量中的重复项

来自分类Dev

向量中带有模板的C ++结构

来自分类Dev

从C中的结构规范化向量

来自分类Dev

C ++中向量的移位值

来自分类Dev

C++ 11 - 修改结构向量中结构的成员

来自分类Dev

在C#中使用结构实现链表时获取垃圾值(不安全的结构)

来自分类Dev

C ++更改向量内部,结构内部,另一个向量内部的结构的值

来自分类Dev

从C中的数组打印垃圾值而不是最大值

来自分类Dev

从向量C ++中的元素中减去值

来自分类Dev

在C ++中的向量中查找值

来自分类Dev

pop_back中的垃圾值,C ++中的双链表

来自分类Dev

C ++添加2个3D向量将返回垃圾值

来自分类Dev

C ++:结构向量的问题

来自分类Dev

C ++遍历结构向量

来自分类Dev

C ++按值从向量中删除元素

来自分类Dev

C、读取文本文件时字符串中的垃圾/垃圾值

来自分类Dev

访问存储在向量C ++中的结构的多态成员

来自分类Dev

如何在C ++中创建结构的向量图

来自分类Dev

将结构变量插入循环内的C ++向量中

来自分类Dev

将结构变量插入循环内的C ++向量中

来自分类Dev

将结构变量插入循环内的C ++向量中

来自分类Dev

在C#中更改结构的属性值