C++动态创建数组数组与静态数组看下我创建的是不是

c++里面的静态数组和动态数组有啥区别_百度知道【求助】关于C++静态数组初始值的问题。 - 看雪安全论坛
该主题: "【求助】关于C++静态数组初始值的问题。" 因在一定的时间里没有任何回复而自动关闭。如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。
注册日期: Apr 2011
现金: 155 Kx
致谢数: 71
获感谢文章数:30获会员感谢数:97
, 12:56:19
【求助】关于C++静态数组初始值的问题。
在C++中定义一个int数组,有没有什么办法用一个值初始全部元素?
int&ia[10]&=&{&10&};
这样的的话就只有第一个元素是10。除了用for赋值,还有什么办法么?
注册日期: Dec 2012
现金: 178 Kx
致谢数: 13
获感谢文章数:0获会员感谢数:0
, 13:01:08
int&ia[10]&=&{10,10,10,10,10,10,10,10,10,10}
或者是int&ia[10]&=&{0};&&&//全部是0
注册日期: Dec 2011
现金: 2210 Kx
获感谢文章数:5获会员感谢数:9
, 13:01:11
memset可以的吧?
注册日期: Dec 2012
现金: 178 Kx
致谢数: 13
获感谢文章数:0获会员感谢数:0
, 13:02:10
memset(ia,&*,&10);//
注册日期: Aug 2013
现金: 52 Kx
获感谢文章数:0获会员感谢数:0
, 13:04:22
注册日期: Dec 2011
现金: 2210 Kx
获感谢文章数:5获会员感谢数:9
, 13:12:17
memset(ia,10,10);
注册日期: Apr 2011
现金: 155 Kx
致谢数: 71
获感谢文章数:30获会员感谢数:97
, 14:33:30
最初由 whnet发布
int&ia[10]&=&{10,10,10,10,10,10,10,10,10,10}
或者是int&ia[10]&=&{0};&&&//全部是0
这种的数组小还可以,大的话得写一堆代码。
注册日期: Dec 2012
现金: 178 Kx
致谢数: 13
获感谢文章数:0获会员感谢数:0
, 14:53:54
最初由 bxc发布
这种的数组小还可以,大的话得写一堆代码。
你没看到我第二句么。&写一个0就行了。&全部初始化为0了。
注册日期: Apr 2011
现金: 155 Kx
致谢数: 71
获感谢文章数:30获会员感谢数:97
, 15:17:47
最初由 whnet发布
你没看到我第二句么。&写一个0就行了。&全部初始化为0了。
你的第二句直接写成int&ia[10];就行了,C++自动初始化值就是0。
我想要初始化为其它的值,一般要写的数组有几百上千。
不想一个一个定义,也不想for&memset复制。
有没有办法修改默认初始值为别的值。
注册日期: Dec 2012
现金: 178 Kx
致谢数: 13
获感谢文章数:0获会员感谢数:0
, 15:22:17
最初由 bxc发布
你的第二句直接写成int&ia[10];就行了,C++自动初始化值就是0。
我想要初始化为其它的值,一般要写的数组有几百上千。
不想一个一个定义,也不想for&memset复制。
有没有办法修改默认初始值为别的值。
int&main(int&argc,&char&**argv){
&&int&a[10];
&&printf(&a1:%x,&a2:%x\n&,a[1],&a[2]);
&&getchar();
你去试试这个代码跑出来的效果。&看看是不是自动化初始化为0了。
这也不想那也不想。&&那只能换语言了
注册日期: Apr 2011
现金: 155 Kx
致谢数: 71
获感谢文章数:30获会员感谢数:97
, 16:19:13
最初由 whnet发布
int&main(int&argc,&char&**argv){
&&int&a[10];
&&printf(&a1:%x,&a2:%x\n&,a[1],&a[2]);
&&getchar();
你去试试这个代码跑出来的效果。&看看是不是自动化初始化为0了。
你把数组定义在栈上,怎么可能会初始化。我说的是在代码域外定义的。
存储在.data段中的。
#include&&stdafx.h&
int&iarr[10];
int&_tmain(int&argc,&_TCHAR*&argv[])
&&int&ibrr[10];
&&printf(&%08X\n&,&iarr[1]);
&&printf(&%08X\n&,&ibrr[1]);
&&getchar();
&&return&0;
注册日期: Apr 2008
现金: 214 Kx
获感谢文章数:3获会员感谢数:4
, 16:20:08
就算有一种语法能够让整数数组全部初始化为某非零值,那么在编译器层面也会通过某种手段来实现这种机制。
1、对于0、-1等每一字节都相同的数字来说,可以memset
2、对于其他数字来说,可以编码在可执行文件中,程序启动时映射过来
3、最后就是程序自动用循环来赋值
因此就算编码者省事,编译器也不省事,做出来的程序执行的过程和编码者自己写for是一样的----根本的原因是没有这种硬件指令可以直接实现,只能软实现。
注册日期: Apr 2011
现金: 155 Kx
致谢数: 71
获感谢文章数:30获会员感谢数:97
, 16:22:55
最初由 shilyx发布
就算有一种语法能够让整数数组全部初始化为某非零值,那么在编译器层面也会通过某种手段来实现这种机制。
1、对于0、-1等每一字节都相同的数字来说,可以memset
2、对于其他数字来说,可以编码在可执行文件中,程序启动时映射过来
3、最后就是程序自动用循环来赋值
因此就算编码者省事,编译器也不...
我的意思是代码域外的静态数组,就是存储在.data段中的。必须有初始化值的数组。没初始值就是0的。
注册日期: Feb 2014
现金: 11 Kx
获感谢文章数:0获会员感谢数:0
, 16:32:34
可以用&memset
注册日期: Jun 2011
现金: 52 Kx
获感谢文章数:0获会员感谢数:0
, 19:22:58
int&&a[100];
int&&b&=&10;
memset(a,&b,&100);
该主题: "【求助】关于C++静态数组初始值的问题。" 因在一定的时间里没有任何回复而自动关闭。如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。
您不可以发表主题
您不可以回复帖子
您不可以上传附件
您不可以编辑自己的帖子
论坛论坛启用
用户控制面板
会员在线状态
『看雪众测/众包』
『Android 安全』
『Android 开发』
『iOS安全』
『求助问答』
『经典问答』
『资料导航』
『软件调试逆向』
『密码学』
『编程技术』
『C32Asm』
『MDebug』
『安全工具开发』
『加壳与脱壳』
『CrackMe&ReverseMe』
『资源下载』
『WEB安全』
『漏洞分析』
『外文翻译』
『招聘专区』
『职业生涯』
『15PB培训』
『麦洛克菲培训』
『茶余饭后』
『安全资讯』
『论坛活动』
6)PEDIY Crackme竞赛2009
7)看雪十周年专版
8)腾讯公司2010软件安全竞赛
9)2011 Exploit Me竞赛
『图书项目版』
《加密与解密(第三版)》
《C++反汇编与逆向分析技术揭秘》
《Android软件安全与逆向分析》
『论坛版务』
所有时间均为北京时间, 现在的时间是 .
&&& 看雪学院()
| 提供带宽资源
|&微信公众帐号:c++如何实现动态数组声明,求代码~~ - 开源中国社区
当前访客身份:游客 [
当前位置:
共有9个评论
int **m_AdjM
&&m_AdjMatrix=new int *[m_Size];&&for(int i=0;i&m_Si++)&&{&&&m_AdjMatrix[i]=new int[m_Size];&&}
为什么不用vector等结构
c++就么动态数组~
请注意基本概念:指针和数组其实是一个东西,唯一的区别数组是有大小的。这个大小是编译的时候就定好的。
楼上正解!干嘛不用STL~
重新非配太浪费性能~
楼上的乱扯。
数组名是个指针,但指针绝对不是数组。用申请指针的方式是得不到一个连续分配的内存空间的。
申请一个数组,给数组赋值,如果数组空间不够,再翻倍空间申请数组,使用内存拷贝拷贝过来。反复以上步骤。完成后申请一个合适的数组再内存拷贝一次。
数组就是内存中连续的一段空间(附代码)
int *Icalloc1d(int x)
array=(int *) calloc(x,sizeof(int ));
return(array);
楼上的代码太拖拉了
int *Icalloc1d(int x)
return (int *)calloc(x, sizeof(int));
其实这个Icalloc1d函数都没什么太大的意义,直接使用calloc就是了。
调用函数得到的连续空间,函数内部细节并不明确使用什么方式分配的空间。
p1,p2空间不一定就是连续的(可能凑巧是连续的)。
stl的vector就是连续的空间, 可以使用resize来动态分配空间大小...
c++中还是尽量少用malloc之类, 多用stl的vector, 而且不用操心内存释放的问题.
&* Allocate matrix by specified rows and columns.
template&typename Type&
inline void makeMatrix( Type **&m, int rows, int cols )
&& &m = new Type*[rows];
&& &for( int i=0; i& ++i )
&& & & &m[i] = new Type[cols];
&* Delete the matrix with specified rows.
template&typename Type&
inline void deleteMatrix( Type **&m, int rows )
&& &for( int i=0; i& ++i )
&& & & &delete []m[i];
&& &delete []m;
&& &m = 0;
引用来自#4楼“xyz555”的帖子
楼上的乱扯。
数组名是个指针,但指针绝对不是数组。用申请指针的方式是得不到一个连续分配的内存空间的。
申请一个数组,给数组赋值,如果数组空间不够,再翻倍空间申请数组,使用内存拷贝拷贝过来。反复以上步骤。完成后申请一个合适的数组再内存拷贝一次。
引用来自#3楼“sam_ai”的帖子
c++就么动态数组~
请注意基本概念:指针和数组其实是一个东西,唯一的区别数组是有大小的。这个大小是编译的时候就定好的。
楼上正解!干嘛不用STL~
重新非配太浪费性能~
&指针和数组其实是一个东西 ??那还分开设计干嘛?《《再再论指针》》建议看看。
更多开发者职位上
有什么技术问题吗?
白发膜女的其它问题
类似的话题C++动态创建对象数组的问题?_百度知道

我要回帖

更多关于 使用动态库创建静态库 的文章

 

随机推荐