字符数组-C++动态创建不定长数组

问题描述

C++动态创建不定长数组

我想通过直接输入一个任意大小的字符串来创建一个字符数组,但又不想浪费多余的空间,要怎么做到呢?新手。。。

解决方案

char * newchar(const char * ps){
char * prt = 0;
if(ps){
int nlen = strlen(ps);
prt = new char[nlen+1];

strcpy(prt,ps);
}
return prt;
}

解决方案二:

直接用指针,可以动态申请大小,且可以将指针当成数据来访问。
如果一定要使用数组,数组的特性就决定了不可能动态分配空间,只能初始化时设定死。

解决方案三:

数组是没有办法动态分配存储空间的。如果想达到你的效果,可以采用指针,利用地址的动态改变来改变数组的长度

解决方案四:

根据你输入的值,用一个变量n保存,然后new char[n],就可以动态分配指定长度的数组了

解决方案五:

直接用vector多好

时间: 2024-12-03 05:03:57

字符数组-C++动态创建不定长数组的相关文章

结构-js 或 php 不定长数组怎样动态嵌套循环

问题描述 js 或 php 不定长数组怎样动态嵌套循环 类似这样结构的数组 :arrobj=[[arr1],[arr2],[arr3]];假如arrobj的长度不确定怎样能得到类似的循环: for(var key1 in arr1){ for(var key2 in arr2){ for(var key3 in arr3){ } } } 解决方案 for..in来循环就行了..你的这个结构只需要2层,下面是js的 <script> var arrobj = [[1, 2, 3, 4], [1]

java-Java不定长数组一般应用于哪些场景?

问题描述 Java不定长数组一般应用于哪些场景? Java不定长数组一般应用于哪些场景? Java不定长数组一般应用于哪些场景? 解决方案 运行前不确定有多少数据,只有在运行后才能知道,比如从10000个数据里寻找自己感兴趣的数据,而这些数据的个数不确定,可能有10000,也可能有几个,所以最好选择动态数组存储 解决方案二: "请从键盘上输入一组数据,输入0表示输入结束" "从文件中读取一组数据" "将数组中>10的数据存入另一个数组" 解

C#怎么调用、接收COM的不定长数组?

问题描述 我的VB做的DLL中,publicfunctiontest1(refages()asinteger)'在此function中返回的ages()的元素个数不确定,可能10个,也可能20个endfunction然后想在C#中调用,该怎么写呢,因为c#中的数组必须定长,而我的VB的DLL中返回的数组个数是不确定的,调用时C#可能会提示下标越界.如果我不想把c#中的数组设得很大,该怎么办呢? 解决方案 解决方案二:http://www.cnblogs.com/angellinby/archiv

java中创建多维数组

在Java里可以方便地创建多维数组:   //: MultiDimArray.java // Creating multidimensional arrays. import java.util.*; public class MultiDimArray { static Random rand = new Random(); static int pRand(int mod) { return Math.abs(rand.nextInt()) % mod + 1; } public stati

oracle中变长数组varray,嵌套表,集合使用方法_oracle

创建变长数组类型 CREATE TYPE varray_type AS VARRAY(2) OF VARCHAR2(50); 这个变长数组最多可以容纳两个数据,数据的类型为 varchar2(50) 更改元素类型的大小或精度 可以更改变长数组类型和嵌套表类型 元素的大小. ALTER TYPE varray_type MODIFY ELEMENT TYPE varchar2(100) CASCADE; CASCADE选项吧更改传播到数据库中的以来对象.也可以用 INVALIDATE 选项使依赖对

PL/SQL变长数组

  PL/SQL变长数组时PL/SQL集合数据类型中的一种,其使用方法与PL/SQL嵌套表大同小异,唯一的区别则是变长数组的元素的最大个数是有限制的.也即是说变长数组的下标固定下限等于1,上限可以扩展.下面给出具体的描述及其使用方法.   一.变长数组语法        TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit) OF  -->type_name 用于指定varray类型名,size_limit 定义varray元素的最大个数 

c++-C++如何创建动态二维数组,然后将二维数组的数保存到一维数组中?

问题描述 C++如何创建动态二维数组,然后将二维数组的数保存到一维数组中? //此程序是我自己编的,但是不能通过,请问这是怎么回事? #include using namespace std; int main() { int n,m,k,i,j,l; cin>>n>>m>>k; int X[][]={0}; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { X[i][j]=i*j; } int Y[]={0}; for(i=1;i

&amp;amp;lt;C++&amp;amp;gt;事先不知道有多少个字符,用户输入任意个字符放入动态字符数组中。

问题描述 <C++>事先不知道有多少个字符,用户输入任意个字符放入动态字符数组中. 目前我的问题是如何在while循环中跳出,尝试了很多方法但是还是没用.求解. 解决方案 应该必须在while里面定义一个跳出的条件,比如输入一个换行符(按回车),或者某个特定字符和符号. 解决方案二: while(ch= getc() != '[特定字符]'){} 直到获取到特定字符为止,跳出循环. 解决方案三: https://code.csdn.net/snippets/480218 解决方案四: http

c/c++ 内存 结构体-在一个结构体中动态创建另一个结构体数组,那么怎样释放内存!求助,谢谢了!

问题描述 在一个结构体中动态创建另一个结构体数组,那么怎样释放内存!求助,谢谢了! struct Link_Info { int Destination_VertexID; int Vertex_To_Vertex_LinkID; int Cost_of_Link; }; struct Vertex_Info { int OutDegree; int Vertex_Num; Link_Info* out = new Link_Info[8]; }; Vertex_Info* Vertex_Cha