Mark只有4个字符,而给了它十个字节的空间,那别的内存区是不是都存成'\0'了?
就像这样
M a r k \0 \0 \0 \0 \0 \0
31 个解决方案
#1
#2
恩 是的 但最后一个‘\0'是系统自动加上去的
#3
- name2 0x0028fd4c "Mark" char [10]
[0] 77 'M' char
[1] 97 'a' char
[2] 114 'r' char
[3] 107 'k' char
[4] 0 char
[5] 0 char
[6] 0 char
[7] 0 char
[8] 0 char
[9] 0 char
[0] 77 'M' char
[1] 97 'a' char
[2] 114 'r' char
[3] 107 'k' char
[4] 0 char
[5] 0 char
[6] 0 char
[7] 0 char
[8] 0 char
[9] 0 char
#4
多谢
#5
你这个是怎么弄得啊
#6
谁删我一楼回复了,为啥删的~~~~
我记得回了个 嗯哪~,这都删,无语了
c/c++板块能人性权变一些吗?
我记得回了个 嗯哪~,这都删,无语了
c/c++板块能人性权变一些吗?
#7
#8
#9
可能版主觉得你回复太简单的了哈哈哈
#10
类似的删回复情况很多,都习惯了~~
水至清则无鱼 人至察则无徒
#11
不都成0, 后面的内容是随机的.
#12
只有第一个0是确定的.
因此操作字符数组时要注意加0,
或者先将数组清0.
#13
我也觉得后面内容是随机的才对,
#14
really?are you sure?
#15
同意楼上,只有头5个字节是确定的“Mark\0”,后面随机。
如果把定义改成 static char name2[10] = "Mark" ;的话就保证后面全零了
如果把定义改成 static char name2[10] = "Mark" ;的话就保证后面全零了
#16
看内存哈.
#17
那是怎么看呢?请问
#18
soga
#19
你用VS的话, 打开内存窗口, 拖进去看就是,
实在不行, 你打印内存嘛, 别把变量看成变量, 一切都是内存.
变量的类型, 只是决定看待内存方式.
#20
问题是这个数组你已经初始了部分数据,其余的默认为0的,
可以自己输出看看。
#21
我用的是vc6.0啊,请问怎么看那?
#22
建议换Visual Studio吧,集成了VC, 有好的工具才能事半功倍.
打印内存, 循环 printf("%x", 数组[下标]);
-------------------------------------------------------------------------------------
好吧, 我承认我是想来拿点分的,不过这也太慢了.
因为,我遇到问题了, 希望大家帮我顶顶, 看能不能顶出个大牛来, 小弟感激不尽.
这是我发的帖子.
http://topic.csdn.net/u/20120323/11/30af6f40-940a-4e63-a477-fc63b6e8981c.html
打印内存, 循环 printf("%x", 数组[下标]);
-------------------------------------------------------------------------------------
好吧, 我承认我是想来拿点分的,不过这也太慢了.
因为,我遇到问题了, 希望大家帮我顶顶, 看能不能顶出个大牛来, 小弟感激不尽.
这是我发的帖子.
http://topic.csdn.net/u/20120323/11/30af6f40-940a-4e63-a477-fc63b6e8981c.html
#23
开始是想学vs的,可是上课和考试都是vc啊,没办法
#24
char str[20] = "hello";
int i;
for (i = 0; i < 20; i++)
putchar(str[i]);
这样打印出来的数据第一'\0'后面的并不是随机的。而是什么也没打印,我想应该都是'\0'吧。
#25
//只要是初始化,那么没有用的空间也自动初始化成为0
//char mark[10] = "ABCD";
char mark[10] = {'A','B'};
//如果没有初始化,那么保留分配时的随机值
//char mark[10];
//mark[0] = 'A';
for (int i =0; i < 10; i++)
{
printf("%d",mark[i]);
}
#26
在内存中查看的时候,里面并没有\0,k后面都是0啊,我用的是VS2010
#27
支持下
#28
应该是随机的!你要是不怕的话可以去访问一下,cout<< name2[6]?看看什么结果!
#29
会崩溃么,为什么要怕
#30
你说的好像很有道理
#31
那我的标题属于没有初始化的,应该是随机值了
#1
#2
恩 是的 但最后一个‘\0'是系统自动加上去的
#3
- name2 0x0028fd4c "Mark" char [10]
[0] 77 'M' char
[1] 97 'a' char
[2] 114 'r' char
[3] 107 'k' char
[4] 0 char
[5] 0 char
[6] 0 char
[7] 0 char
[8] 0 char
[9] 0 char
[0] 77 'M' char
[1] 97 'a' char
[2] 114 'r' char
[3] 107 'k' char
[4] 0 char
[5] 0 char
[6] 0 char
[7] 0 char
[8] 0 char
[9] 0 char
#4
多谢
#5
你这个是怎么弄得啊
#6
谁删我一楼回复了,为啥删的~~~~
我记得回了个 嗯哪~,这都删,无语了
c/c++板块能人性权变一些吗?
我记得回了个 嗯哪~,这都删,无语了
c/c++板块能人性权变一些吗?
#7
#8
#9
可能版主觉得你回复太简单的了哈哈哈
#10
类似的删回复情况很多,都习惯了~~
水至清则无鱼 人至察则无徒
#11
不都成0, 后面的内容是随机的.
#12
只有第一个0是确定的.
因此操作字符数组时要注意加0,
或者先将数组清0.
#13
我也觉得后面内容是随机的才对,
#14
really?are you sure?
#15
同意楼上,只有头5个字节是确定的“Mark\0”,后面随机。
如果把定义改成 static char name2[10] = "Mark" ;的话就保证后面全零了
如果把定义改成 static char name2[10] = "Mark" ;的话就保证后面全零了
#16
看内存哈.
#17
那是怎么看呢?请问
#18
soga
#19
你用VS的话, 打开内存窗口, 拖进去看就是,
实在不行, 你打印内存嘛, 别把变量看成变量, 一切都是内存.
变量的类型, 只是决定看待内存方式.
#20
问题是这个数组你已经初始了部分数据,其余的默认为0的,
可以自己输出看看。
#21
我用的是vc6.0啊,请问怎么看那?
#22
建议换Visual Studio吧,集成了VC, 有好的工具才能事半功倍.
打印内存, 循环 printf("%x", 数组[下标]);
-------------------------------------------------------------------------------------
好吧, 我承认我是想来拿点分的,不过这也太慢了.
因为,我遇到问题了, 希望大家帮我顶顶, 看能不能顶出个大牛来, 小弟感激不尽.
这是我发的帖子.
http://topic.csdn.net/u/20120323/11/30af6f40-940a-4e63-a477-fc63b6e8981c.html
打印内存, 循环 printf("%x", 数组[下标]);
-------------------------------------------------------------------------------------
好吧, 我承认我是想来拿点分的,不过这也太慢了.
因为,我遇到问题了, 希望大家帮我顶顶, 看能不能顶出个大牛来, 小弟感激不尽.
这是我发的帖子.
http://topic.csdn.net/u/20120323/11/30af6f40-940a-4e63-a477-fc63b6e8981c.html
#23
开始是想学vs的,可是上课和考试都是vc啊,没办法
#24
char str[20] = "hello";
int i;
for (i = 0; i < 20; i++)
putchar(str[i]);
这样打印出来的数据第一'\0'后面的并不是随机的。而是什么也没打印,我想应该都是'\0'吧。
#25
//只要是初始化,那么没有用的空间也自动初始化成为0
//char mark[10] = "ABCD";
char mark[10] = {'A','B'};
//如果没有初始化,那么保留分配时的随机值
//char mark[10];
//mark[0] = 'A';
for (int i =0; i < 10; i++)
{
printf("%d",mark[i]);
}
#26
在内存中查看的时候,里面并没有\0,k后面都是0啊,我用的是VS2010
#27
支持下
#28
应该是随机的!你要是不怕的话可以去访问一下,cout<< name2[6]?看看什么结果!
#29
会崩溃么,为什么要怕
#30
你说的好像很有道理
#31
那我的标题属于没有初始化的,应该是随机值了