| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5172 人关注过本帖
标题:myajax95斑竹,我要求你把那个帖子解开
只看楼主 加入收藏
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

竟然说new int(5)和new int[5]类型会不同,你可不要闹笑话哦


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-24 23:15
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用穆扬在2006-7-24 22:57:07的发言:
具体的类型怎么写
int (*)[10] 吗?
确定吗?

你这样些的话 就要 int(*p)[10] = new int[X][10]了,X代表任意常量整数;
C++中不一定要int(*)[]这种才是指向一行指针
我不明白你的是 []这个符号有什么难以明白的地方??本来 10*sizeof(int)每一份就是int的类型
当你 int *p = new int[10];p [0],p[1].....之类的都是相隔4个字节;
那么获得的值是完全正确的,为什么一定要 int(*p)[]才可以是指向行数组???


c++/C + 汇编 = 天下无敌
2006-07-24 23:16
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-24 23:16
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-24 23:19
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用穆扬在2006-7-24 23:16:38的发言:

p [0],p[1].....之类的都是相隔4个字节;
是因为 int *p
与 = 右边无关
我问你的是
(new int[10]) +1 是否是合法的运算
如果是
(new int[10]) 与 (new int[10]) +1 相差几个字节

(还有,我从来不使用行指针这样不科学的概念)

合法运算,我说了无数次了 你自己看看我的帖子, 关于 new operator 和 operator new的关系,并看看 void *operator new调用的是什么

(new int[10]) 与 (new int[10]) +1 相差几个字节

相差4个字节

[此贴子已经被作者于2006-7-24 23:22:05编辑过]


c++/C + 汇编 = 天下无敌
2006-07-24 23:21
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
new int(5)和new int[5] is not same, take a look here:

[CODE]#include <iostream>
using namespace std;

int main()
{
int * a = new int(5);
cout<<*a<<endl;

int * b = new int[5];
for(int i = 0; i<5; i++)
{
b[i] = i;
cout<<b[i]<<" ";
}
return 0;
}[/CODE]

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-07-24 23:22
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
热情...到我下面发的那个帖子再去看下

2006-07-24 23:22
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用穆扬在2006-7-24 23:19:36的发言:

我没说啊
你为什么总歪曲我的话呢
请你明确指出我哪个帖子中的哪句话是这个意思
让大家评评是我表达不正确
还是你理解不正确

没有话说, int new(5) 和 int new[5]是不同的东西,我相信他打快了而已

穆兄不要吵了,你完全不了解C++的内存模型是没有办法弄清楚一切的,你都是看看C++再说

c++/C + 汇编 = 天下无敌
2006-07-24 23:24
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用穆扬在2006-7-24 23:19:36的发言:

我没说啊
你为什么总歪曲我的话呢
请你明确指出我哪个帖子中的哪句话是这个意思
让大家评评是我表达不正确
还是你理解不正确

没有话说, int new(5) 和 int new[5]是不同的东西,我相信他打快了而已

穆兄不要吵了,你完全不了解C++的内存模型是没有办法弄清楚一切的,你都是看看C++再说

c++/C + 汇编 = 天下无敌
2006-07-24 23:25
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
some important to say, I have said something wrong. Now make a correction.

int (* p)[5] and int * p[5] are not same.

int (*p)[5]; declares a pointer to an array of 5 ints.
int *a[5]; declares an array of 5 pointers to ints.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-07-24 23:30
快速回复:myajax95斑竹,我要求你把那个帖子解开
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032164 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved