2 qq 34320176 qq_34320176 于 2016.04.07 10:15 提问

c++中不能由输入端来声明共用体个数么

写完了才发现,不能由用户输入个数,来确定申请共用体内存空间的个数。比如int a;cin>>a;union un{...}s [ a ] ;有没有什么解决办法啊。。。

4个回答

qq423399099
qq423399099   Ds   Rxr 2016.04.07 10:22
已采纳

你如果用g++的编译器这种形式是能通过编译的,但如果是VS之类的是过不了编译的,必须指定常量值才行
VS下可以借助malloc或者new动态分配

qq_34320176
qq_34320176 回复小灸舞: new解决了,谢谢回答
2 年多之前 回复
bdmh
bdmh   Ds   Rxr 2016.04.07 10:15

通过指针动态分配,数组定义必须是有常量数据作为分配空间

qq_34320176
qq_34320176 回复bdmh: 嗯。。解决了 谢谢
2 年多之前 回复
qq_34320176
qq_34320176   2016.04.07 10:47

要动态申请内存???

qq_34320176
qq_34320176 回复qq_34320176: 动态内存搞定了,谢谢回答
2 年多之前 回复
CSDNXIAON
CSDNXIAON   2016.04.07 11:44

C和C++语言中字符串的声明
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C++之union联合/共用体声明、定义和使用详解
一、共用体的声明 共用体的语法和结构体的类似,共用体声明格式如下: union uninType {   int fourByte;   char oneByte[4]; }; 定义结构后,就可以创建这种类型的变量了: uninType Test1; uninType Test2; 等 共用体类型数据的特点
union 共用体声明和共用体变量定义
共用体(参考“共用体”百科词条)是一种特殊形式的变量,使用关键字union来定义 共用体(有些人也叫"联合")声明和共用体变量定义与结构体十分相似。其形式为: union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名; 共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且同一时
共用体的初始化与引用
共用体的概念;        共用体又叫联合体 关键字为union    定义: union 共用体名 { 成员表列 }变量表列; 实例:       union      {              int i;             char c;             float b;     } q,r;  共用体几个变量互相覆盖。
【C/C++】C语言union(联合体 共用体)
1、union中可以定义多个成员,union的大小由最大的成员的大小决定。  2、union成员共享同一块大小的内存,一次只能使用其中的一个成员。  3、对某一个成员赋值,会覆盖其他成员的值,因为他们共享一块内存。但前提是成员所占字节数相同,当成员所占字节数不同时只会覆盖相应字节上的值,比如对char成员赋值就不会把整个int成员覆盖掉,因为char只占一个字节,而int占四个字节) 4
C语言之共用体(联合体)
#include<stdio.h>struct data1{ int a;//偏移0 char b;//偏移量:某个成员的实际地址相对于结构体首地址的距离 偏移为4 为char 的4 倍 int c;//偏移为5,不是4的整数倍 字节对齐 系统填充3个字节 故偏移量为8 加上4 结构体长度为12 //结构体大小:等于结构体最后一个成员
关于一个共用体字符串输入的问题
# include # include # include union computerInfo {     char band[20];     float  price; }; void main(void) {     union computerInfo
C++关于共用体的理解
共同的结构与结构的结构类似,但是它的所有成员变量,都只有一个起始地内存地址,储存在同一段内存中。 这样导致的结果就是,你每次只能给一个变量赋值,就算给其他变量赋值,它就会覆盖上一个变量的值。 刚开始的时候理解,很难受,不习惯这种方式,现在想通;对此还是拿代码说; /* * 测试共同体 * Created on: 2016年12月22日 * Author: chenkui
C++中的共用体(union)结构解析与结构体(struct)共用体(union) 的区别
共用体(union) 一、 基础概念 有时需要使几种不同类型的变量存放在同一段内存单元中。虽然在同一段内存中不同数据类型所占字节数不同,但都从同一地址开始存放,也就是使用了覆盖技术,几个变量互相覆盖。这种使几个不同的变量共占一段内存的结构,称为共同体类型的结构(也称为联合类型)。 二、 声明共用体类型的一般形式: union 共用体类型名  {      成员表列 }; 定义共用体
[C++] Union共用体示例讲解
/* * UnionLab.cpp * * Created on: Nov 29, 2014 * Author: sodino */ #include using namespace std; /** * “共用体”是一种特殊的类,在一个“共用体”内可以定义多种不同的数据类型。 * 一个被声明为该“共用体”类型的变量中,允许装入该“共用体”所定义的任何一种类型的
union 共用体 联合体
共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。 1. 共用体声明和共用体变量定义 其形式为:   union 共用体名{   数据类型 成员名;   数据类型 成员名;   ...   } 变量名; 下例表示声明一个共用体foo:   union foo{